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 de CMEK.
Para organizações e pastas, é possível configurar a CMEK como uma configuração de recurso padrão para o Cloud Logging. 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 um bucket de registros, a chave especificada pelas configurações de recurso padrão do Cloud Logging será usada. Para mais informações, consulte Configurar a CMEK para o Cloud Logging.
As informações neste documento não se aplicam a buckets de observabilidade. Se você tiver interesse em buckets de observabilidade, consulte Definir padrões para buckets de observabilidade.
Visão geral
Por padrão, o Cloud Logging criptografa o conteúdo do cliente em repouso. O Logging processa a criptografia para você sem nenhuma ação adicional da sua parte. Essa opção é chamada de criptografia padrão do Google.
Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Logging. Ao usar chaves do Cloud KMS, é possível controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Logging é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Pré-requisitos
Siga estas etapas:
Há algumas limitações ao usar a CMEK. Antes de criar um bucket de registros com a CMEK ativada, consulte as limitações.
No Google Cloud console, ative o Cloud Shell.
Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Configure o Google Cloud projeto em que você planeja criar suas chaves:
-
Para ter as permissões necessárias para criar chaves, peça ao administrador para conceder 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 usando personalizados papéis ou outros predefinidos papéis.
-
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 regiões com suporte, consulte o seguinte:
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 Google Cloud projeto em que planeja criar buckets de registro:
logging.settings.getlogging.buckets.getlogging.buckets.listlogging.buckets.createlogging.buckets.update
Ativar a CMEK
Depois de concluir os passos de pré-requisito, siga estas instruções para ativar a CMEK para um bucket de registros individual.
Determinar o ID da conta de serviço
Para determinar o ID da conta de serviço associada ao Google Cloud recurso para o qual a CMEK será aplicada, faça o seguinte:
Execute o seguinte
gcloud logging settings describecomando:gcloud logging settings describe --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a substituição a seguir:
- BUCKET_PROJECT_ID: nome do Google Cloud projeto em que você planeja criar o bucket de registros.
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
kmsServiceAccountIdlista 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 você estiver usando o VPC Service Controls ou se você ativar o compartilhamento restrito por domínio, determine se é necessário migrar sua conta de serviço CMEK. Para informações sobre quando é necessário migrar e as etapas para realizar a migração, consulte Resolver problemas do VPC Service Controls e do compartilhamento restrito por domínio.
Atribuir o papel criptografador/descriptografador
Ao configurar a CMEK no nível do bucket de registros, 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 Google Cloud projeto e por um número atribuído aleatoriamente, do Google Cloud projeto em execução no Cloud KMS. Para informações sobre como receber esse identificador, consulte Identificação de projetos.
- KMS_SERVICE_ACCT_NAME: o nome da
conta de serviço mostrada no campo
kmsServiceAccountIdda 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 registros e fornecer a chave do Cloud KMS
Para criar um bucket de registros e ativar a CMEK para bucket de registros,
execute o seguinte
gcloud logging buckets create
comando:
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 registros.
- LOCATION: o local do bucket de registros.
- 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 Google Cloud projeto em que o bucket de registros será criado.
Verificar a ativação principal
Para verificar se você criou um bucket de registros com a CMEK ativada,
execute o seguinte
gcloud logging buckets list
comando:
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Antes de executar o comando anterior, faça a substituição a seguir:
- BUCKET_PROJECT_ID: nome do Google Cloud projeto que armazena o bucket de registros.
Na saída tabular, você verá uma coluna chamada CMEK. Se o valor da coluna CMEK for TRUE, a CMEK estará ativada para o bucket de registros.
Para conferir os detalhes de um bucket de registros 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 registros para usar a versão mais recente da chave primária de uma chave do Cloud KMS. Elas também descrevem como alterar, 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 fazer a rotação de uma chave do Cloud KMS manualmente. Cada vez que uma chave é girada, uma nova versão dela é criada.
Se você fizer a rotação de uma chave do Cloud KMS, a nova versão da chave será aplicada apenas aos buckets de registro criados após a rotação de chaves. Se a chave for usada por um bucket de registros atual, a rotação da chave não mudará a forma como o bucket de registros protege os dados.
Por exemplo, suponha que você crie um bucket de registros e ative a CMEK e, em seguida, faça a rotação da chave do Cloud KMS. O bucket de registros criado 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 primária quando o bucket de registros foi criado.
Para atualizar um bucket de registros para usar a versão mais recente da chave primária de uma chave do Cloud KMS, faça o seguinte:
- Identifique a chave do Cloud KMS atual para o bucket de registros. Para mais informações, consulte Verificar a ativação principal.
- Identifique outra chave do Cloud KMS que você possa usar. Se o keyring tiver apenas uma chave, então crie uma chave.
- Mude a chave do Cloud KMS para o bucket de registros para a chave do Cloud KMS criada na etapa anterior.
- Mude a chave do Cloud KMS para o bucket de registros para a chave original do Cloud KMS.
Alterar sua chave do Cloud KMS
Para alterar a chave do Cloud KMS associada ao bucket de registros, crie uma chave e atualize as configurações da 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 registros.
- LOCATION: o local do bucket de registros.
- NEW_KMS_KEY_NAME: nome da nova chave.
- BUCKET_PROJECT_ID: nome do Google Cloud projeto que armazena o bucket de registros.
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 em uma 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 revogará o acesso do BigQuery à mesma chave.
Não é possível revogar o acesso do BigQuery à chave do conjunto de dados vinculado, preservando o acesso do Logging.
Para mais informações sobre o impacto da revogação do acesso, consulte Limitações.
Para remover o acesso do Logging 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 Google Cloud projeto e por um número atribuído aleatoriamente, do Google Cloud projeto em execução no Cloud KMS. Para informações sobre como receber esse identificador, consulte Identificação de projetos.
- KMS_SERVICE_ACCT_NAME: o nome da
conta de serviço mostrada no campo
kmsServiceAccountIdda 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
A seguir estão as limitações conhecidas.
A CMEK desativa o Error Reporting
Se você quiser usar o Error Reporting, não ative as chaves de criptografia gerenciadas pelo cliente (CMEK) nos buckets de registro. Para mais informações, consulte Solução de problemas.
A CMEK não pode ser removida de buckets de registro
Não é possível reconfigurar buckets de registro para mudar ou remover a 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.
O Logging recomenda que você garanta que todas as chaves estejam configuradas corretamente e sempre disponíveis.
Perda de recuperação de desastres
Se houver falhas críticas no armazenamento principal do Cloud Logging, o Logging espelhará os dados de registro em arquivos de recuperação de desastres. Quando a CMEK está 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 registro. No entanto, em caso de desastre de armazenamento, o Cloud Logging poderá não conseguir recuperar registros de recursos cuja CMEK não esteja configurada corretamente.
Restrições de suporte
O Cloud Customer Care não pode ler os registros do recurso se a chave não estiver configurada corretamente ou ficar indisponível.
Desempenho de consulta degradado
Quando uma chave de criptografia gerenciada pelo cliente está inacessível, o Cloud Logging continua criptografando seus dados 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 ficarão disponíveis. No entanto, os dados serão armazenados inicialmente em um estado não otimizado e o desempenho da consulta poderá ser afetado.
Degradação devido à indisponibilidade da chave do Cloud EKM
Quando você usa uma chave do Cloud EKM, 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 Cloud External Key Manager.
Regionalidade
Ao criar um bucket de registros e ativar a CMEK, é necessário usar uma chave cuja região corresponda ao escopo regional dos dados.
Não é possível configurar a CMEK para buckets de registro criados na global
região.
Disponibilidade da biblioteca de cliente
As bibliotecas de cliente do Logging não fornecem métodos para configurar a CMEK.
Cotas
Ao usar a CMEK no Logging, seus projetos podem consumir cotas de solicitações criptográficas do Cloud KMS. Por exemplo, ativar a CMEK em um bucket de registros 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 problemas de configuração da CMEK, consulte Resolver problemas de CMEK e erros de configuração da organização.