Neste documento, apresentamos instruções para configurar chaves de criptografia gerenciadas pelo cliente (CMEK) para registros armazenados em buckets de registros. Este documento também descreve como gerenciar essas chaves e as limitações associadas ao uso da CMEK.
É possível definir 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 registros na organização ou na pasta sejam criptografados com uma chave gerenciada pelo cliente. Se você não fornecer uma chave ao criar o bucket de registros, a chave padrão será usada. Para mais informações, consulte Configurar 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. Elas são gerenciadas pelo Google 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, é possível gerenciá-las em vez de deixar que o Google gerencie as chaves de criptografia que protegem os dados.
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 a CMEK. Antes de criar um bucket de registros com a CMEK ativada, consulte as Limitações.
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
Neste guia, fornecemos instruções para usar a Google Cloud CLI.
Crie ou identifique o projeto do Google Cloud em que você quer executar o Cloud KMS.
-
Para ter 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 ou em um recurso pai. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Verifique se você tem as seguintes permissões do Cloud Logging:
logging.settings.get
logging.buckets.get
logging.buckets.list
logging.buckets.create
logging.buckets.update
Ative a API Cloud KMS para o projeto do Google Cloud que executa o Cloud KMS.
Crie um keyring e chaves para o projeto do Google Cloud que executa o Cloud KMS.
Para alinhar domínios de falha, use um keyring com um local que corresponda ao escopo regional dos dados:
Não é possível ativar a CMEK em buckets de registros criados na região
global
.Identifique valores para as seguintes variáveis:
- BUCKET_ID é o identificador numérico exclusivo do bucket do Logging a ser criado.
- BUCKET_PROJECT_ID é o nome do projeto do Google Cloud que contém o novo bucket de registros.
- KMS_PROJECT_ID é o identificador alfanumérico exclusivo, composto pelo nome do projeto do Google Cloud e um número atribuído aleatoriamente, do projeto do Google Cloud que executa o Cloud KMS.
- KMS_KEY_LOCATION é a região da chave do Cloud KMS.
- KMS_KEY_RING é o nome do keyring do Cloud KMS.
- KMS_KEY_NAME pelo nome da chave do Cloud KMS.
Ele é formatado assim:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY
Para informações sobre como localizar identificadores de recursos, consulte Identificar projetos.
Ativar a CMEK
Depois de concluir as etapas de pré-requisito, siga estas instruções para ativar a CMEK em um bucket de registros individual.
Determinar o ID da conta de serviço
Para determinar o ID da conta de serviço associado ao recurso do Google Cloud a que a CMEK será aplicada, faça o seguinte:
Execute o seguinte comando
gcloud logging settings describe
:gcloud logging settings describe --project=BUCKET_PROJECT_ID
O comando anterior gera uma conta de serviço para o recurso especificado, quando ainda não existe, 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. O formato do campo KMS_SERVICE_ACCT_NAME éservice-PROJECT_NUMBER
oucmek-pPROJECT_NUMBER
.Se o campo KMS_SERVICE_ACCT_NAME tiver o formato
cmek-pPROJECT_NUMBER
e se você estiver usando o VPC Service Controls ou ativar o compartilhamento restrito de domínio, determine se é necessário migrar sua conta de serviço da CMEK. Para informações sobre quando você precisa migrar e as etapas para executá-la, consulte Resolver problemas do VPC Service Controls e do compartilhamento restrito de domínio.
Atribuir o papel criptografador/descriptografador
Ao configurar a CMEK no nível do bucket de registros, conceda permissão à conta de serviço para usar o Cloud KMS atribuindo o papel Criptografador/Descriptografador da 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
Defina as variáveis no comando anterior desta forma:
Substitua KMS_SERVICE_ACCT_NAME pelo valor
kmsServiceAccountId
determinado na etapa anterior.Substitua as outras variáveis pelos valores determinados nas etapas de pré-requisito.
Crie um bucket de registros e forneça a chave do Cloud KMS
Para criar um bucket de registros e ativar a 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
Verificar a ativação principal
Para verificar se você criou um bucket de registros com a CMEK ativada, execute o seguinte comando:
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Na saída tabular, você vê uma coluna rotulada CMEK
. Se o valor da coluna CMEK
for TRUE
, a CMEK será ativada para o bucket de registros.
Para ver os detalhes de um bucket de registros específico, incluindo os detalhes da chave, execute este comando:
gcloud logging buckets describe BUCKET_ID
Gerenciar sua chave do Cloud KMS
Nas seções a seguir, descrevemos como atualizar um bucket de registros para usar a versão mais recente de uma chave do Cloud KMS. além de como alterar, revogar o acesso e desativar a chave do Cloud KMS.
Alternar a 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 é criada para ela.
Se você fizer a rotação de uma chave do Cloud KMS, a nova versão da chave se aplicará apenas aos buckets de registros 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, ative a CMEK e, em seguida, faça a rotação da chave do Cloud KMS. O bucket de registros que você criou não usa a nova versão da chave. Em vez disso, continua a proteger os dados com a versão da chave que foi marcada como principal quando o bucket de registros foi criado.
Para atualizar um bucket de registros para usar a versão mais recente de uma chave do Cloud KMS, faça o seguinte:
- Identifique a chave atual do Cloud KMS referente ao bucket de registros. Para mais informações, consulte Verificar a ativação da chave.
- Identifique outra chave do Cloud KMS que você possa usar. Se o keyring tiver apenas uma chave, crie uma chave.
- Altere a chave do Cloud KMS do bucket de registros para a chave do Cloud KMS criada na etapa anterior.
- Altere a chave do Cloud KMS do 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 de CMEKs para o bucket de registros:
gcloud logging buckets update BUCKET_ID --cmek-kms-key-name=NEW_KMS_KEY_NAME
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 vinculado do BigQuery, o BigQuery não poderá usar esse acesso para aplicar à chave uma nova tabela do BigQuery. Para usar uma chave na tabela do BigQuery que não esteja vinculada ao Logging, siga a documentação do BigQuery. Se você revogar o acesso do Logging a uma chave e tiver um conjunto de dados vinculado do BigQuery, também 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 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
Limitações
Confira a seguir 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, na sigla em inglês) nos buckets de registros. Para mais informações, consulte Solução de problemas.
Não é possível remover CMEKs de buckets de registros
Não é possível reconfigurar buckets de registros para mudar ou remover as CMEKs.
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 garantir 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 espelha os dados de registro em arquivos de recuperação de desastres. Quando CMEK está ativada para um recurso, como uma organização do Google Cloud, 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, no caso de um desastre de armazenamento, o Cloud Logging pode não conseguir recuperar registros de recursos com uma CMEK que não está configurada corretamente.
Restrições de suporte
O Cloud Customer Care não poderá 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 e armazenando dados em buckets de registros. 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, eles serão armazenados inicialmente em um estado não otimizado e o desempenho da consulta poderá ser prejudicado.
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. Para CMEKs no nível do bucket, se uma chave gerenciada externamente estiver indisponível, o Cloud Logging continuará armazenando registros em buckets de registros, mas os usuários não poderão acessá-los.
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 registros e ativar a CMEK, você precisa usar uma chave cuja região corresponda ao escopo regional dos seus dados.
Não é possível configurar a CMEK para buckets de registros 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
Para detalhes sobre os limites de uso do Logging, consulte Cotas e limites.
Resolver problemas de configuração
Para saber como solucionar erros de configuração de CMEK, consulte Resolver problemas de CMEK e erros de configuração da organização.