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:
Antes de criar um bucket de registros com o CMEK ativado, consulte as limitações.
In the Google Cloud console, 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.
Configure o projeto do Google Cloud em que você planeja criar as chaves:
-
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.
-
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
.
-
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:
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para saber como conseguir esse identificador, consulte Como conseguir o ID da organizaçã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 comandogcloud 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
- Abra o navegador de chaves do Cloud Key Management Service no Console do Google Cloud.
Abrir o navegador de Chaves do Cloud KMS Selecione o nome do keyring que contém a chave.
Marque a caixa de seleção da chave.
A guia Permissões fica disponível.
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.
Na lista suspensa Selecionar um papel, escolha Criptografador/Descriptografador do Cloud KMS CryptoKey.
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íticaDeny
para a restriçãoconstraints/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:
-
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.
- Selecione a organização.
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:
- 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.
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.
- Por padrão, o BigQuery criptografa o conteúdo do cliente armazenado em repouso. Para mais detalhes, consulte Como proteger dados com chaves do Cloud Key Management Service.
- Por padrão, o Pub/Sub criptografa o conteúdo do cliente armazenado em repouso. Para detalhes, consulte Como configurar a criptografia de mensagens.
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 comandogcloud 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:
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para saber como conseguir esse identificador, consulte Como conseguir o ID da organizaçã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 comandogcloud 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.