Este documento fornece instruções para configurar chaves de criptografia gerenciadas pelo cliente (CMEK) para registros armazenados em buckets de registro. Este documento também descreve como gerenciar essas chaves e as limitações associadas ao uso do CMEK.
É possível configurar a CMEK como uma configuração de recurso padrão para uma organização ou uma pasta. 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. Se você não fornecer uma chave ao criar o bucket de registro, a chave padrão será usada. Para mais informações, consulte Configurar a CMEK para o Cloud Logging.
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. 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 gerenciar suas próprias chaves.
Para informações específicas sobre o uso de CMEK, incluindo vantagens e limitações, consulte Chaves de criptografia gerenciadas pelo cliente.
Para criptografia simétrica, as chaves periódicas e de rotação automática são uma prática recomendada de segurança. Para mais informações, consulte Rotação de chaves.
Pré-requisitos
Siga estas etapas:
Há algumas limitações ao usar o CMEK. Antes de criar um bucket de registro 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 ter as permissões necessárias para criar chaves, peça ao administrador que conceda a você o papel do IAM Administrador do Cloud KMS (
roles/cloudkms.admin
) no projeto ou em um recurso pai. 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 registro, o local dele precisa corresponder ao local da chave. Para informações sobre as regiões com suporte, consulte:
Não é possível ativar a CMEK para buckets de registro criados na região
global
.
-
Verifique se você tem as seguintes permissões do Cloud Logging no projeto do Google Cloud em que você planeja criar buckets de registro:
logging.settings.get
logging.buckets.get
logging.buckets.list
logging.buckets.create
logging.buckets.update
Ativar a CMEK
Depois de concluir as etapas de pré-requisito, siga estas instruções para ativar a CMEK em um bucket de registro individual.
Determinar o ID da conta de serviço
Para determinar o ID da conta de serviço associado ao recurso Google Cloud para o qual a CMEK será aplicada, faça o seguinte:
Execute o seguinte comando
gcloud logging settings describe
:gcloud logging settings describe --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a seguinte substituição:
- BUCKET_PROJECT_ID: nome do projeto do Google Cloud em que você planeja criar o bucket de registro.
O comando anterior gera uma conta de serviço para o recurso especificado, quando ainda não existe uma, e retorna o ID dessa conta de serviço no campo
kmsServiceAccountId
:kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com name: projects/BUCKET_PROJECT_ID/settings
O campo
kmsServiceAccountId
lista a conta de serviço usada pelo Cloud Logging para chamar o Cloud Key Management Service.Se o campo KMS_SERVICE_ACCT_NAME tiver o formato de
cmek-pPROJECT_NUMBER
e se você estiver usando o VPC Service Controls ou se você ativar o compartilhamento restrito de domínio, determine se é necessário migrar sua conta de serviço do CMEK. Para informações sobre quando você precisa migrar e as etapas para realizar a migração, consulte Resolver problemas do VPC Service Controls e do compartilhamento restrito de domínios.
Atribuir o papel criptografador/descriptografador
Ao configurar a CMEK no nível do bucket de registro, 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 identificada pelo campo kmsServiceAccountId
:
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
.
Criar um bucket de registro e fornecer a chave do Cloud KMS
Para criar um bucket de registro e ativar o CMEK para ele,
execute o seguinte comando
gcloud logging buckets create
:
gcloud logging buckets create BUCKET_ID \ --location=LOCATION \ --cmek-kms-key-name=KMS_KEY_NAME \ --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça as seguintes substituições:
- BUCKET_ID: o nome ou ID do bucket de registro.
- LOCATION: o local do bucket de registro.
- 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
. - BUCKET_PROJECT_ID: nome do projeto do Google Cloud em que o bucket de registro será criado.
Verificar a ativação principal
Para verificar se você criou um bucket de registro com a CMEK ativada,
execute o seguinte comando
gcloud logging buckets list
:
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a seguinte substituição:
- BUCKET_PROJECT_ID: nome do projeto do Google Cloud que armazena o bucket de registro.
Na saída tabular, você encontra uma coluna com a identificação CMEK
. Se o valor da coluna CMEK
for TRUE
, a CMEK será ativada para o bucket de registro.
Para conferir os detalhes de um bucket de registro específico, incluindo os detalhes da chave, execute este comando:
gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID
Gerenciar sua chave do Cloud KMS
As seções a seguir descrevem como atualizar um bucket de registro para usar a versão mais recente da chave primária de uma chave do Cloud KMS. Eles também descrevem como mudar, revogar o acesso e desativar a chave do Cloud KMS.
Fazer a rotação da chave do Cloud KMS
Ao criar uma chave do Cloud KMS, é possível configurar um período de rotação. Também é possível girar uma chave do Cloud KMS manualmente. Toda vez que uma chave é rotacionada, uma nova versão dela é criada.
Se você rotacionar uma chave do Cloud KMS, a nova versão da chave será aplicada apenas a buckets de registro criados após a rotação. Se a chave for usada por um bucket de registro, a rotação dela não vai mudar a forma como o bucket protege os dados.
Por exemplo, suponha que você crie um bucket de registro, ative a CMEK e gire a chave do Cloud KMS. O bucket de registro que você criou não usa a nova versão da chave. Em vez disso, ele continua protegendo os dados com a versão da chave marcada como principal quando o bucket de registro foi criado.
Para atualizar um bucket de registro e usar a versão mais recente da chave primária de uma chave do Cloud KMS, faça o seguinte:
- Identifique a chave atual do Cloud KMS para o bucket de registro. Para mais informações, consulte Verificar a ativação da chave.
- Identifique outra chave do Cloud KMS que você pode usar. Se o keyring tiver apenas uma chave, crie uma chave.
- Altere a chave do Cloud KMS para o bucket de registro para a chave do Cloud KMS criada na etapa anterior.
- Altere a chave do Cloud KMS para o bucket de registro para a chave original do Cloud KMS.
Alterar sua chave do Cloud KMS
Para mudar a chave do Cloud KMS associada ao bucket de registros, crie uma chave e atualize as configurações do CMEK para o bucket de registros:
gcloud logging buckets update BUCKET_ID --location=LOCATION \ --cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
- BUCKET_ID: o nome ou ID do bucket de registro.
- LOCATION: o local do bucket de registro.
- NEW_KMS_KEY_NAME: nome da nova chave.
- BUCKET_PROJECT_ID: nome do projeto do Google Cloud que armazena o bucket de registro.
Revogar acesso à chave do Cloud KMS
Para revogar o acesso do Logging à chave do Cloud KMS a qualquer momento, 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 alteração entre em vigor.
Se você tiver um conjunto de dados do BigQuery vinculado, o BigQuery não poderá usar esse acesso para aplicar a chave a uma nova tabela do BigQuery. Se você quiser usar uma chave na tabela do BigQuery que não esteja vinculada ao Logging, siga a documentação do BigQuery para fazer isso. Se você revogar o acesso do Logging a uma chave e tiver um conjunto de dados do BigQuery vinculado, também vai revogar o acesso do BigQuery à mesma chave.
Não é possível revogar o acesso do BigQuery à chave do conjunto de dados vinculado e preservar o acesso do Logging.
Para mais informações sobre o impacto da revogação do acesso, consulte Limitações.
Para remover o acesso de registro a uma chave, execute o seguinte comando:
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
.
Limitações
Confira a seguir as limitações conhecidas.
A CMEK desativa o Error Reporting
Se você quiser usar o recurso de Relatório de erros, não ative as chaves de criptografia gerenciadas pelo cliente (CMEK) nos seus buckets de registro. Para mais informações, consulte Solução de problemas.
Não é possível remover o CMEK dos buckets de registro
Não é possível reconfigurar buckets de registro para alterar ou remover o CMEK.
Degradação devido à indisponibilidade da chave do Cloud KMS
Uma chave do Cloud KMS é considerada disponível e acessível pelo Logging se ambos os itens a seguir forem verdadeiros:
- A chave está ativada.
- A conta de serviço do Logging tem permissões de criptografia e descriptografia na chave.
A geração de registros recomenda que todas as chaves sejam corretamente configuradas e sempre disponíveis.
Perda da recuperação de desastres
Se houver falhas críticas no armazenamento primário do Cloud Logging, o Logging vai espelhar os dados de registro em arquivos de recuperação de desastres. Quando a CMEK é ativada para um recurso, como uma Google Cloud organização, os registros pertencentes a esse recurso são protegidos pela chave CMEK configurada. Se a chave CMEK não estiver acessível, os arquivos de recuperação de desastres não poderão ser gravados para esse recurso.
A perda de arquivos de recuperação de desastres não afeta as operações normais de geração de registros. No entanto, em caso de desastre de armazenamento, o Cloud Logging talvez não consiga recuperar registros de recursos com o CMEK não configurado corretamente.
Suporte a restrições
O Cloud Customer Care não consegue ler os registros do recurso se a chave não estiver configurada corretamente ou se ficar indisponível.
Desempenho da consulta degradado
Quando uma chave de criptografia gerenciada pelo cliente fica inacessível, o Cloud Logging continua criptografando e armazenando dados em buckets de registro. No entanto, o Cloud Logging não pode realizar otimizações em segundo plano nesses dados. Se o acesso à chave for restaurado, os dados vão ficar disponíveis. No entanto, eles serão armazenados inicialmente em um estado não otimizado, e o desempenho da consulta pode ser afetado.
Degradação devido à indisponibilidade da chave do Cloud EKM
Quando você usa uma chave do Cloud EKM,o Google Cloud não tem controle sobre a disponibilidade da sua chave gerenciada externamente no sistema de parceiros de gerenciamento de chaves externas. Para a CMEK no nível do bucket, se 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 registros.
Para mais considerações e possíveis alternativas ao usar chaves externas, consulte a documentação do gerenciador de chaves externas do Cloud.
Regionalidade
Ao criar um bucket de registro e ativar a CMEK, use uma chave com a região que corresponde ao escopo regional dos seus dados.
Não é possível configurar a CMEK para buckets de registro criados na região global
.
Disponibilidade da biblioteca de cliente
As bibliotecas de cliente do Logging não fornecem métodos para configurar a CMEK.
Cotas
Quando você usa a CMEK no Logging, seus projetos podem consumir cotas de solicitações criptográficas do Cloud KMS. Por exemplo, ativar o CMEK em um bucket de registro pode consumir essas cotas. As operações de criptografia e descriptografia que usam chaves CMEK só afetam as cotas do Cloud KMS se você usar chaves de hardware (Cloud HSM) ou externas (Cloud EKM). Para mais informações, consulte Cotas do Cloud KMS.
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 erros de configuração do CMEK e da organização.