Configurar a CMEK para o Cloud Logging

Neste documento, você vai aprender a configurar e gerenciar chaves de criptografia gerenciadas pelo cliente (CMEK) para o Cloud Logging e atender às necessidades de conformidade da sua organização. É possível configurar a CMEK como uma configuração de recurso padrão para uma organização, uma pasta ou ambas. Quando configurado, o Cloud Logging garante que todos os novos buckets de registros na organização ou pasta sejam criptografados com uma chave gerenciada pelo cliente.

É possível configurar configurações padrão para uma organização e para pastas. Quando você cria novos recursos, eles herdam as configurações padrão do elemento pai. Por exemplo, se você configurar a CMEK como uma configuração de recurso padrão para uma organização, todos os novos buckets de registros _Default e _Required criados em projetos, pastas ou contas de faturamento nessa organização serão criptografados com a chave padrão. Além disso, se você criar um bucket de registros personalizado em um projeto filho dessa organização, a chave padrão será usada automaticamente, a menos que você forneça uma chave diferente ao criar o bucket de registros.

As instruções neste guia usam a Google Cloud CLI.

Visão geral

Por padrão, o Cloud Logging criptografa o conteúdo do cliente armazenado em repouso. Os dados armazenados em buckets de registros pelo Logging são criptografados usando chaves de criptografia de chaves, um processo conhecido como criptografia de envelope. Para acessar os dados de registro, é preciso ter acesso a essas chaves de criptografia de chaves. Por padrão, eles são Google-owned and Google-managed encryption keys e não exigem nenhuma ação da sua parte.

Sua organização pode ter requisitos de criptografia regulamentares, relacionados à conformidade ou avançados que nossa criptografia em repouso padrão não oferece. Para atender aos requisitos da sua organização, em vez de usar Google-owned and Google-managed encryption keys, você pode configurar as CMEKs para controlar e gerenciar sua própria criptografia.

Para informações específicas sobre CMEK, incluindo vantagens e limitações, consulte Chaves de criptografia gerenciadas pelo cliente.

Quando você configura a CMEK como uma definição de recurso padrão para o Logging, acontece o seguinte:

  • Os novos buckets de registros na organização ou pasta são criptografados automaticamente com a chave configurada. No entanto, é possível mudar essa chave ou criar buckets de registros e especificar uma chave diferente. Para mais informações, consulte Configurar a CMEK para buckets de registros.
  • Se você usa a Análise de dados de registros e consulta vários buckets de registros, a chave padrão pode ser usada para criptografar dados temporários. Para mais informações, consulte Restrições do Log Analytics.

Antes de começar

Para começar, siga estas etapas:

  1. Antes de criar um bucket de registros com a CMEK ativada, consulte as limitações.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Configure o projeto do Google Cloud em que você planeja criar as chaves:

    1. Para receber as permissões necessárias para criar chaves, peça ao administrador para conceder a você o papel do IAM de Administrador do Cloud KMS (roles/cloudkms.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

      Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

    2. Ative a API Cloud KMS.

    3. Crie um keyring e chaves.

      Com o Cloud Logging, é possível usar uma chave de qualquer região. No entanto, ao criar um bucket de registros, o local dele precisa corresponder ao local da chave. Para informações sobre regiões com suporte, consulte:

      Se você configurar a CMEK como uma configuração de recurso padrão para o Logging usando as etapas deste documento, os novos buckets de registros criados na organização ou pasta serão configurados automaticamente para a CMEK. Além disso, como o local de um bucket de registros precisa corresponder ao local da chave, depois de configurar a CMEK como uma configuração de recurso padrão, não é possível criar buckets de registros na região global.

  4. Verifique se seu papel do IAM na organização ou pasta cujas configurações padrão você quer configurar inclui as seguintes permissões do Cloud Logging:

    • logging.settings.get
    • logging.settings.update
  5. Ativar o CMEK para uma organização ou pasta

    Siga estas instruções para ativar a CMEK na sua pasta ou organizaçãoGoogle Cloud .

    Determinar o ID da conta de serviço

    Para determinar o ID da conta de serviço associada à organização ou pasta em que a CMEK será aplicada, execute o seguinte comando gcloud logging settings describe:

    PASTA

     gcloud logging settings describe --folder=FOLDER_ID
    

    Antes de executar o comando anterior, faça a seguinte substituição:

    ORGANIZAÇÃO

    gcloud logging settings describe --organization=ORGANIZATION_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    O comando anterior gera contas de serviço para a organização ou pasta, quando elas não existem. O comando também retorna os IDs de duas contas de serviço, uma no campo kmsServiceAccountId e outra no campo loggingServiceAccountId. Para configurar a CMEK como uma configuração padrão, use o valor no campo kmsServiceAccountId.

    Confira a seguir um exemplo de resposta ao comando anterior quando uma organização é especificada:

    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    name: organizations/ORGANIZATION_ID/settings
    

    Execute o processo de provisionamento uma vez por recurso. Executar o comando describe várias vezes retorna o mesmo valor para o campo kmsServiceAccountId.

    Se não for possível usar a Google Cloud CLI, execute o método getSettings da API Cloud Logging.

    Atribuir o papel criptografador/descriptografador

    Para usar a CMEK, conceda à conta de serviço permissão para usar o Cloud KMS atribuindo o papel Criptografador/Descriptografador de CryptoKey do Cloud KMS à conta de serviço:

    gcloud

    gcloud kms keys add-iam-policy-binding \
    --project=KMS_PROJECT_ID \
    --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --location=KMS_KEY_LOCATION \
    --keyring=KMS_KEY_RING \
    KMS_KEY_NAME

    Antes de executar o comando anterior, faça as seguintes substituições:

    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do projeto Google Cloud e um número atribuído aleatoriamente, do projeto Google Cloud em execução no Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Identificar projetos.
    • KMS_SERVICE_ACCT_NAME: o nome da conta de serviço mostrada no campo kmsServiceAccountId da resposta do comando gcloud logging settings describe.
    • KMS_KEY_LOCATION: a região da chave do Cloud KMS.
    • KMS_KEY_RING: o nome do keyring do Cloud KMS.
    • KMS_KEY_NAME: o nome da chave do Cloud KMS. Ele é formatado assim: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Console

    1. No console Google Cloud , acesse a página Gerenciamento de chaves.

      Acessar "Gerenciamento de chaves"

    2. Selecione o nome do keyring que contém a chave.

    3. Marque a caixa de seleção da chave.

      A guia Permissões fica disponível.

    4. Na caixa de diálogo Adicionar membros, especifique o endereço de e-mail da conta de serviço do Logging que você está concedendo acesso.

    5. Na lista suspensa Selecionar um papel, escolha Criptografador/Descriptografador do Cloud KMS CryptoKey.

    6. Clique em Adicionar.

    Configurar as políticas da organização

    O Logging é compatível com políticas da organização que podem exigir proteção CMEK e limitar quais CryptoKeys do Cloud KMS podem ser usadas para proteção CMEK:

    • Quando logging.googleapis.com estiver na lista de serviços Deny da restrição constraints/gcp.restrictNonCmekServices, o Logging se recusará a criar novos buckets definidos pelo usuário que não estejam protegidos por CMEK. No entanto, essa restrição não impede que o Cloud Logging crie os buckets de registros _Required e _Default, que são criados quando um projetoGoogle Cloud é criado.

    • Quando constraints/gcp.restrictCmekCryptoKeyProjects é aplicada, o Logging cria recursos protegidos por CMEK que são protegidos por uma CryptoKey de um projeto, pasta ou organização permitida.

    Para mais informações sobre a CMEK e as políticas da organização, consulte Políticas da organização de CMEK.

    Quando houver uma política da organização que especifica uma restrição de CMEK, verifique se essas restrições são consistentes com as configurações padrão do Logging para uma organização ou pasta. Além disso, se você planeja modificar as configurações padrão, revise e atualize as políticas da organização antes de fazer isso.

    Para ver ou configurar políticas da organização, faça o seguinte:

    1. No console Google Cloud , acesse a página Políticas da organização:

      Acessar Políticas da organização

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.

    2. Selecione a organização.
    3. Verifique e, se necessário, atualize as restrições específicas da CMEK.

      Para informações sobre como modificar uma política da organização, consulte Criar e editar políticas.

    Configurar o Cloud Logging com a chave do Cloud KMS

    Para configurar a CMEK como uma configuração de recurso padrão para o Logging, execute o seguinte comando gcloud logging settings update:

    PASTA

    gcloud logging settings update \
        --folder=FOLDER_ID \
        --kms-location=KMS_KEY_LOCATION \
        --kms-key-name=KMS_KEY_NAME \
        --kms-keyring=KMS_KEY_RING \
        --kms-project=KMS_PROJECT_ID
    

    Antes de executar o comando anterior, faça as seguintes substituições:

    • FOLDER_ID: o identificador numérico exclusivo da pasta. Para informações sobre como usar pastas, consulte Como criar e gerenciar pastas.
    • KMS_KEY_LOCATION: a região da chave do Cloud KMS.
    • KMS_KEY_NAME: o nome da chave do Cloud KMS. Ele é formatado assim: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
    • KMS_KEY_RING: o nome do keyring do Cloud KMS.
    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do projeto Google Cloud e um número atribuído aleatoriamente, do projeto Google Cloud em execução no Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Identificar projetos.

    O comando anterior atualiza as configurações padrão para armazenar informações sobre a chave do Cloud KMS. Verifique se o local de armazenamento padrão da pasta está definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor desse local não corresponder ao valor de KMS_KEY_LOCATION, adicione o seguinte ao comando anterior:

    --storage-location = KMS_KEY_LOCATION
    

    A flag --storage-location permite definir ou atualizar o local de armazenamento padrão da pasta.

    ORGANIZAÇÃO

    gcloud logging settings update \
        --organization=ORGANIZATION_ID \
        --kms-location=KMS_KEY_LOCATION \
        --kms-key-name=KMS_KEY_NAME \
        --kms-keyring=KMS_KEY_RING \
        --kms-project=KMS_PROJECT_ID
    

    Antes de executar o comando anterior, faça as seguintes substituições:

    • ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para informações sobre como conseguir esse identificador, consulte Como conseguir o ID da organização.
    • KMS_KEY_LOCATION: a região da chave do Cloud KMS.
    • KMS_KEY_NAME: o nome da chave do Cloud KMS. Ele é formatado assim: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
    • KMS_KEY_RING: o nome do keyring do Cloud KMS.
    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do projeto Google Cloud e um número atribuído aleatoriamente, do projeto Google Cloud em execução no Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Identificar projetos.

    O comando anterior atualiza as configurações padrão para armazenar informações sobre a chave do Cloud KMS. Verifique se o local de armazenamento padrão da organização está definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor desse local não corresponder ao valor de KMS_KEY_LOCATION, adicione o seguinte ao comando anterior:

    --storage-location = KMS_KEY_LOCATION
    

    A flag --storage-location permite definir ou atualizar o local de armazenamento padrão da organização.

    Depois que a chave é aplicada, os novos buckets de registros na organização ou pasta são configurados para criptografar os dados em repouso usando essa chave. Também é possível mudar as chaves de buckets de registros individuais. Não é possível criar intervalos de registros na região global porque é necessário usar uma chave cuja região corresponda ao escopo regional dos seus dados.

    Se não for possível usar a Google Cloud CLI, execute o método updateSettings da API Cloud Logging.

    Verificar a ativação principal

    Para verificar se você ativou a CMEK para uma organização ou uma pasta, execute o seguinte comando gcloud logging settings describe:

    PASTA

    gcloud logging settings describe --folder=FOLDER_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    ORGANIZAÇÃO

    gcloud logging settings describe --organization=ORGANIZATION_ID

    Antes de executar o comando anterior, faça a seguinte substituição:

    Quando o comando anterior retorna o nome da chave do Cloud KMS no campo kmsKeyName, a CMEK é ativada para a organização ou pasta:

    kmsKeyName: KMS_KEY_NAME
    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    

    Encaminhar registros para destinos compatíveis

    • Os buckets de registros do Cloud Logging podem ser configurados para criptografar dados com a CMEK. Quando você configura a CMEK como uma definição padrão para uma organização ou pasta, os novos buckets de registros na organização ou pasta usam a CMEK automaticamente. É possível mudar a chave desses buckets de registros e criar buckets que usam uma chave do KMS diferente da especificada pelas configurações padrão.

      Para informações sobre a CMEK aplicada a buckets de registros, incluindo como mudar chaves e limitações ao ativar a CMEK em um bucket de registros, consulte Configurar a CMEK para buckets de registros.

    • O Cloud Storage é compatível com CMEK para roteamento de registros. Para instruções sobre como configurar a CMEK para o Cloud Storage, consulte Como usar chaves de criptografia gerenciadas pelo cliente.

      Se os dados forem perdidos devido à indisponibilidade da chave ao rotear dados de registros para o Cloud Storage, será possível copiar retroativamente os registros em massa para o Cloud Storage quando eles também forem armazenados em um bucket de registros. Veja mais detalhes em Copiar entradas de registro.

    Gerenciar sua chave do Cloud KMS

    As seções a seguir explicam como alterar, revogar o acesso ou desativar a chave do Cloud KMS.

    Alterar sua chave do Cloud KMS

    Para mudar a chave do Cloud KMS associada a uma organização ou pasta, crie uma chave e execute o comando gcloud logging settings update, fornecendo informações sobre a nova chave do Cloud KMS:

    PASTA

    gcloud logging settings update \
        --folder=FOLDER_ID
        --kms-key-name=NEW_KMS_KEY_NAME
        --kms-location=NEW_KMS_KEY_LOCATION \
        --kms-keyring=NEW_KMS_KEY_RING \
        --kms-project=NEW_KMS_PROJECT_ID

    Verifique se o local de armazenamento padrão da pasta está definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor desse local não corresponder ao valor de KMS_KEY_LOCATION, adicione o seguinte ao comando anterior:

    --storage-location = NEW_KMS_KEY_LOCATION
    

    ORGANIZAÇÃO

    gcloud logging settings update \
        --organization=ORGANIZATION_ID
        --kms-key-name=NEW_KMS_KEY_NAME
        --kms-location=NEW_KMS_KEY_LOCATION \
        --kms-keyring=NEW_KMS_KEY_RING \
        --kms-project=NEW_KMS_PROJECT_ID

    Verifique se o local de armazenamento padrão da organização está definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor desse local não corresponder ao valor de KMS_KEY_LOCATION, adicione o seguinte ao comando anterior:

    --storage-location = NEW_KMS_KEY_LOCATION
    

    Revogar acesso à chave do Cloud KMS

    Para revogar o acesso do Logging à chave do Cloud KMS, remova a permissão do IAM da conta de serviço configurada para essa chave.

    Se você remover o acesso do Logging a uma chave, poderá levar até uma hora para que a mudança entre em vigor.

    Para revogar o acesso do Logging à chave do Cloud KMS, execute o seguinte comando da Google Cloud CLI:

    gcloud kms keys remove-iam-policy-binding \
        --project=KMS_PROJECT_ID \
        --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --location=KMS_KEY_LOCATION \
        --keyring=KMS_KEY_RING \
        KMS_KEY_NAME

    Antes de executar o comando anterior, faça as seguintes substituições:

    • KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do projeto Google Cloud e um número atribuído aleatoriamente, do projeto Google Cloud em execução no Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Identificar projetos.
    • KMS_SERVICE_ACCT_NAME: o nome da conta de serviço mostrada no campo kmsServiceAccountId da resposta do comando gcloud logging settings describe.
    • KMS_KEY_LOCATION: a região da chave do Cloud KMS.
    • KMS_KEY_RING: o nome do keyring do Cloud KMS.
    • KMS_KEY_NAME: o nome da chave do Cloud KMS. Ele é formatado assim: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Desativar a CMEK

    Desativar a CMEK para uma organização ou pasta remove a aplicação da política da CMEK apenas para operações futuras. As configurações aplicadas anteriormente permanecem intactas.

    Para desativar a CMEK em um recurso que a tem configurada como uma definição de recurso padrão, execute o seguinte comando da Google Cloud CLI:

    PASTA

    gcloud logging settings update --folder=FOLDER_ID --clear-kms-key

    Antes de executar o comando anterior, faça a seguinte substituição:

    ORGANIZAÇÃO

    gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key

    Antes de executar o comando anterior, faça a seguinte substituição:

    Para destruir a chave, consulte Como destruir e restaurar versões de chave.

    Considerações sobre a rotação de chaves do Cloud KMS

    O Cloud Logging não alterna automaticamente a chave de criptografia para arquivos temporários de recuperação de desastres quando a chave do Cloud KMS associada à organização ou pasta Google Cloud é alternada. Os arquivos de recuperação existentes continuam a usar a versão da chave com a qual foram criados. Novos arquivos de recuperação usam a versão atual da chave primária.

    Limitações

    Confira a seguir as limitações conhecidas ao configurar a CMEK como uma configuração de recurso padrão para o Logging.

    Indisponibilidade do arquivo de recuperação de desastres

    Uma chave do Cloud KMS é considerada disponível e acessível pelo Logging quando ambos os itens a seguir são verdadeiros:

    • A chave está ativada.
    • A conta de serviço listada no campo kmsServiceAccountId da resposta do comando gcloud logging settings describe tem permissões de criptografia e descriptografia na chave.

    Se o Logging perder acesso à chave do Cloud KMS, ele não poderá gravar arquivos de recuperação de desastres temporários e as consultas dos usuários vão parar de funcionar. O desempenho da consulta pode permanecer degradado mesmo após o acesso à chave ser restaurado.

    Os registros de roteamento para o Cloud Storage também podem ser afetados porque o Logging não consegue gravar arquivos temporários necessários para facilitar o roteamento. Se for encontrado um erro ao criptografar ou descriptografar dados, uma notificação será enviada ao projeto Google Cloud que contém a chave do Cloud KMS.

    Disponibilidade da biblioteca de cliente

    As bibliotecas de cliente do Logging não fornecem métodos para configurar a CMEK.

    Degradação devido à indisponibilidade da chave do Cloud EKM

    Quando você usa uma chave do Cloud EKM, o Google não tem controle sobre a disponibilidade da sua chave gerenciada externamente no sistema de parceiros de gerenciamento de chaves externas.

    Quando a CMEK é configurada como a definição de recurso padrão para uma organização ou pasta, se uma chave gerenciada externamente não estiver disponível, o Cloud Logging vai tentar acessar a chave continuamente. O Cloud Logging também armazena em buffer os dados de registros recebidos por até uma hora. Depois de uma hora, se o Cloud Logging ainda não conseguir acessar a chave gerenciada externamente, o Cloud Logging começará a descartar os dados.

    Se a CMEK for aplicada a um bucket de registros e uma chave gerenciada externamente não estiver disponível, o Cloud Logging vai continuar armazenando registros em buckets de registros, mas os usuários não poderão acessar esses dados.

    Consulte a documentação do gerenciador de chaves externas do Cloud para mais considerações e possíveis alternativas ao usar chaves externas.

    Limitações nos buckets de registros

    Para limitações ao usar a CMEK com buckets de registros, consulte Limitações.

    Cotas

    Para detalhes sobre os limites de uso do Logging, consulte Cotas e limites.

    Resolver problemas de configuração

    Para informações sobre como resolver erros de configuração da CMEK, consulte Resolver erros de configuração padrão e da CMEK.