Configurar a CMEK para o Cloud Logging

Este documento descreve como configurar e gerenciar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) para o Cloud Logging a fim de 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 para ambos. Quando configurado, o Cloud Logging garante que todos os novos buckets de registro na organização ou pasta sejam criptografados com uma chave gerenciada pelo cliente.

É possível definir 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 registro _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 que seja 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 registro 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. Elas são gerenciadas pelo Google Cloud sem que você precise realizar nenhuma ação.

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 deixar que o Google Cloud gerencie as chaves de criptografia que protegem seus dados, configure as CMEKs para controlar e gerenciar sua própria criptografia.

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

Quando você configura a CMEK como uma configuração de recurso padrão para a geração de registros, o seguinte ocorre:

  • Os novos buckets de registro na organização ou pasta são criptografados automaticamente com a chave configurada. No entanto, é possível mudar essa chave ou criar buckets de registro e especificar uma chave diferente. Para mais informações, consulte Configurar CMEK para buckets de registro.
  • Se você usar a Análise de dados de registros e consultar vários buckets de registro, a chave padrão poderá 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 o CMEK ativado, 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.

      O Cloud Logging permite usar uma chave de qualquer região. No entanto, ao criar um bucket de registros, o local bucket de registros precisa corresponder ao local da chave. Para informações sobre as 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 registro 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 será possível criar buckets de registro na região global.

  4. Verifique se a sua função do IAM na organização ou pasta que tem as configurações padrão que você quer configurar inclui as seguintes permissões do Cloud Logging:

    • logging.settings.get
    • logging.settings.update

Ativar o CMEK para uma organização ou pasta

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

Determinar o ID da conta de serviço

Para determinar o ID da conta de serviço associado à 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:

  • FOLDER_ID: o identificador numérico exclusivo da pasta. Para informações sobre o uso de pastas, consulte Criar e gerenciar pastas.

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 a outra no campo loggingServiceAccountId. Para configurar o CMEK como uma configuração padrão, use o valor no campo kmsServiceAccountId.

Confira a seguir um exemplo de resposta para o 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 do Google Cloud e por um número atribuído aleatoriamente, do projeto do Google Cloud que executa o Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Como identificar projetos.
  • KMS_SERVICE_ACCT_NAME: o nome da conta de serviço mostrado 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. Abra o navegador de chaves do Cloud Key Management Service no Console do Google Cloud.
    Abrir o navegador de Chaves do Cloud KMS
  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 registro de atividades é compatível com políticas da organização que podem exigir proteção CMEK e limitar quais chaves criptográficas do Cloud KMS podem ser usadas para proteção CMEK:

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

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

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

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

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

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

    Acesse 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 do CMEK.

    Para saber 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 o CMEK como uma configuração de recurso padrão para o registro, 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 o uso de pastas, consulte 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 do Google Cloud e por um número atribuído aleatoriamente, do projeto do Google Cloud que executa o Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Como 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 saber como conseguir esse identificador, consulte Como conseguir o ID da sua 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 do Google Cloud e por um número atribuído aleatoriamente, do projeto do Google Cloud que executa o Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Como 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 registro 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 registro individuais. Não é possível criar buckets de registro na região global porque é necessário usar uma chave com uma região que 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:

  • FOLDER_ID: o identificador numérico exclusivo da pasta. Para informações sobre o uso de pastas, consulte Criar e gerenciar pastas.

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, o CMEK é ativado 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 registro do Cloud Logging podem ser configurados para criptografar dados com a CMEK. Quando você configura o CMEK como uma configuração padrão para uma organização ou pasta, os novos buckets de registro na organização ou pasta usam o CMEK automaticamente. É possível mudar a chave desses buckets de registro e criar buckets de registro que usam uma chave do KMS diferente da especificada pelas configurações padrão.

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

  • O Cloud Storage é compatível com CMEK para roteamento de registros. Para instruções sobre como configurar o 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 esses registros também estiverem 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 a uma pasta, crie uma chave e execute o comando gcloud logging settings update e forneça 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

É possível revogar o acesso do Logging à chave do Cloud KMS removendo 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 alteração 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 do Google Cloud e por um número atribuído aleatoriamente, do projeto do Google Cloud que executa o Cloud KMS. Para informações sobre como conseguir esse identificador, consulte Como identificar projetos.
  • KMS_SERVICE_ACCT_NAME: o nome da conta de serviço mostrado 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 uma pasta remove a aplicação da política da CMEK apenas para operações futuras. As configurações aplicadas anteriormente permanecem intactas.

Para desativar o CMEK em um recurso que tenha o CMEK configurado como uma configuraçã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:

  • FOLDER_ID: o identificador numérico exclusivo da pasta. Para informações sobre o uso de pastas, consulte Criar e gerenciar pastas.

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 de recuperação de desastres temporários quando a chave do Cloud KMS associada à organização ou pasta do 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 forem verdadeiros:

  • A chave está ativada.
  • A conta de serviço listada no campo kmsServiceAccountId da resposta do comando gcloud logging settings describe tem criptografia e descriptografia com permissões 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, para os usuários, as consultas 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 registro não consegue gravar arquivos temporários necessários para facilitar o roteamento. Se um erro for encontrado ao criptografar ou descriptografar dados, uma notificação será enviada ao projeto do 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 configuração de recurso padrão de uma organização ou uma 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 registro 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 o CMEK for aplicado a um bucket de registros e uma chave gerenciada externamente não estiver disponível, o Cloud Logging continuará armazenando registros em buckets de registro, 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 registro

Para saber mais sobre as limitações ao usar a CMEK com buckets de registro, 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 do CMEK, consulte Resolver problemas de CMEK e erros de configuração padrão.