Neste documento, descrevemos como configurar e gerenciar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) do Cloud Logging para atender às necessidades de compliance da sua organização. É possível definir a CMEK como uma configuração de recurso padrão para uma organização, uma pasta ou para ambas. Quando configurado, o Cloud Logging garante que todos os novos buckets de registro na organização ou na pasta sejam criptografados com uma chave gerenciada pelo cliente.
Visão geral
Por padrão, o Cloud Logging criptografa o conteúdo do cliente armazenado em repouso. Os dados armazenados em buckets de registros 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, em vez de o Google gerenciar as chaves de criptografia que protegem seus dados, é possível configurar a CMEK para controlar e gerenciar sua própria criptografia.
Para informações específicas sobre a CMEK, incluindo as vantagens e limitações, consulte Chaves de criptografia gerenciadas pelo cliente.
Quando você define a CMEK como uma configuração de recurso padrão para o Logging, os novos buckets de registro na organização ou na pasta são criptografados automaticamente com a chave configurada. No entanto, é possível alterar essa chave ou criar buckets de registros e especificar uma chave diferente. Para mais informações, consulte Configurar CMEK para buckets de registros.
Pré-requisitos
Para começar, 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
Este guia fornece instruções para usar a Google Cloud CLI.
Encontre os identificadores da organização ou pasta em que você quer ativar a CMEK:
- ORGANIZATION_ID é o identificador numérico exclusivo da organização do Google Cloud em que você está ativando a CMEK. Esse valor não é necessário se você planeja configurar a CMEK apenas para uma pasta. Para informações sobre como conseguir esse identificador, consulte Como conseguir o ID da organização.
- FOLDER_ID é o identificador numérico exclusivo da pasta do Google Cloud em que você está ativando a CMEK. Esse valor não é necessário se você planeja configurar a CMEK para uma organização. Para mais informações sobre o uso de pastas, consulte Como criar e gerenciar pastas.
-
Para receber 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 como conceder papéis, consulte Gerenciar acesso.Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Verifique se você tem as seguintes permissões do Cloud Logging para a organização:
logging.settings.get
logging.settings.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.
O Cloud Logging permite usar uma chave de qualquer região. No entanto, quando você cria um bucket de registros, o local do bucket de registros precisa corresponder ao local da chave. Para informações sobre regiões compatíveis, consulte:
Se você definir 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 na 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 registros na região
global
.Identifique os valores dos seguintes parâmetros do Cloud KMS:
- 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. Para informações sobre como conseguir esse identificador, consulte Identificar projetos.
- 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
Ativar CMEK para uma organização ou pasta
Depois de concluir os passos de pré-requisito, siga estas instruções para ativar a CMEK para sua 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
a que a CMEK será aplicada, execute o seguinte
comando
gcloud logging settings describe
:
PASTA
gcloud logging settings describe --folder=FOLDER_ID
ORGANIZAÇÃO
gcloud logging settings describe --organization=ORGANIZATION_ID
A execução do comando anterior gera uma conta de serviço para a organização
ou pasta, quando ainda não houver uma,
e retorna o ID no campo kmsServiceAccountId
.
Confira a seguir um exemplo de resposta ao comando anterior quando uma organização é especificada:
kmsServiceAccountId: cmek-p12345@gcp-sa-logging.iam.gserviceaccount.com name: organizations/ORGANIZATION_ID/settings
Neste exemplo, o valor de SERVICE_ACCT_NAME é cmek-p12345
.
Executar o processo de provisionamento apenas 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: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 da seguinte maneira:
Substitua SERVICE_ACCT_NAME pelo valor
serviceAccountId
que você determinou na etapa anterior.Substitua as outras variáveis pelos valores determinados nas etapas de pré-requisito.
Console
- Abra o navegador de chaves do Cloud Key Management Service no Console do Google Cloud.
Abrir o navegador de Chaves do Cloud KMS Clique no nome do keyring que contém a chave que você quer.
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 Add.
Configurar as políticas da organização
O Logging é compatível com políticas da organização que podem exigir proteção de CMEK e limitar quais CryptoKeys do Cloud KMS podem ser usadas para proteção de CMEK:
Quando
logging.googleapis.com
está na lista de serviços da políticaDeny
para a restriçãoconstraints/gcp.restrictNonCmekServices
, o Logging se recusa a criar novos buckets definidos pelo usuário que não sejam protegidos pela CMEK. No entanto, essa restrição não impede que o Cloud Logging crie os buckets de registro_Required
e_Default
, que são gerados quando um projeto do Google Cloud é criado.Quando
constraints/gcp.restrictCmekCryptoKeyProjects
é aplicado, o Logging cria recursos protegidos por CMEKs que são protegidos por uma CryptoKey a partir de um projeto, uma pasta ou uma organização permitida.
Para mais informações sobre a CMEK e as políticas da organização, consulte Políticas da organização da CMEK.
Quando houver uma política da organização que especifique uma restrição de CMEK, verifique se essas restrições são consistentes com as configurações de recursos padrão do Logging para uma organização ou pasta. Além disso, se você planeja modificar as configurações padrão de recursos, revise e, se necessário, atualize as políticas da organização antes de atualizá-las.
Para visualizar ou configurar políticas da organização, faça o seguinte:
-
No console do Google Cloud, acesse a página Políticas da organização:
Acessar 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 da CMEK.
Para informações sobre como modificar uma política da organização, consulte Como criar e editar políticas.
Configurar o Cloud Logging com a chave do Cloud KMS
Para definir CMEK como uma configuração de recurso padrão para o Logging, 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
O comando anterior atualiza as configurações de recurso 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 dele não corresponder ao valor de KMS_KEY_LOCATION, anexe o seguinte ao comando anterior:
--storage-location = KMS_KEY_LOCATION
A sinalização --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
O comando anterior atualiza as configurações de recurso padrão para armazenar informações sobre a chave do Cloud KMS. É preciso garantir que o local de armazenamento padrão da organização esteja definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor dele não corresponder ao valor de KMS_KEY_LOCATION, anexe o seguinte ao comando anterior:
--storage-location = KMS_KEY_LOCATION
A sinalização --storage-location
permite definir ou atualizar o local de armazenamento padrão da organização.
Depois que a chave é aplicada, novos buckets de registro na organização ou na pasta
são configurados para criptografar os dados em repouso usando essa chave. Também é possível alterar as chaves de buckets de registros individuais. Não é possível criar buckets de registro na região global
porque é necessário usar uma chave cuja região corresponda ao escopo regional dos 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 com êxito 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
ORGANIZAÇÃO
gcloud logging settings describe --organization=ORGANIZATION_ID
O comando anterior retorna o nome da chave do Cloud KMS:
kmsKeyName: KMS_KEY_NAME kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
Se o campo kmsKeyName
for preenchido, a CMEK será ativada para a
organização ou pasta.
Encaminhar registros para destinos compatíveis
Os buckets de registro do Cloud Logging podem ser configurados para criptografar dados com CMEK. Quando você configura a CMEK como uma configuração de recurso padrão para uma organização ou pasta, os novos buckets de registro na organização ou na pasta usam automaticamente a CMEK. É possível alterar a chave desses buckets de registro e criar buckets de registro que usem uma chave KMS diferente da especificada pelas configurações de recurso padrão.
Para informações sobre a CMEK aplicada a buckets de registros, incluindo como alterar chaves e limitações ao ativar a CMEK em um bucket de registros, consulte Configurar CMEK para buckets de registro.
O Cloud Storage é compatível com CMEK para roteamento de registros. Para instruções sobre como configurar a CMEK para o Cloud Storage, consulte Como usar chaves de criptografia gerenciadas pelo cliente.
Se os dados forem perdidos devido à indisponibilidade de chaves ao rotear os dados de registros para o Cloud Storage, será possível copiar retroativamente os registros em massa para o Cloud Storage quando eles 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 alterar a chave do Cloud KMS associada a uma organização ou pasta, crie uma chave e atualize as configurações da CMEK com o novo nome da 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 dele não corresponder ao valor de KMS_KEY_LOCATION, anexe 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
É preciso garantir que o local de armazenamento padrão da organização esteja definido como o valor de KMS_KEY_LOCATION. Se você não tiver definido o local de armazenamento padrão ou se o valor dele não corresponder ao valor de KMS_KEY_LOCATION, anexe 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:SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Desativar a CMEK
Desativar a CMEK para uma organização ou uma pasta remove a aplicação da política de CMEK apenas para operações futuras. Todas as configurações aplicadas anteriormente permanecem intactas.
Para desativar a CMEK em um recurso que a tenha 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
ORGANIZAÇÃO
gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key
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 faz a rotação automática da 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 rotaciona. 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
As limitações a seguir são conhecidas quando você configura 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 ambas as condições são verdadeiras:
- A chave está ativada.
- A conta der serviço do Logging criptografou e descriptografou as permissões na chave.
Se o Logging perder o 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 deixarão de funcionar. O desempenho da consulta pode permanecer degradado mesmo após o acesso à chave ser restaurado.
O roteamento de registros para o Cloud Storage também pode ser afetado, porque o Logging não grava os 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 for definida como configuração de recurso padrão para uma organização ou uma pasta, se uma chave gerenciada externamente não estiver disponível, o Cloud Logging tentará acessar a chave continuamente. O Cloud Logging também armazena em buffer os dados de registro recebidos por até uma hora. Após uma hora, se o Cloud Logging ainda não conseguir acessar a chave gerenciada externamente, ele começará a descartar os dados.
Se a CMEK for aplicada a um bucket de registros e uma chave gerenciada externamente não estiver disponível, o Cloud Logging continuará armazenando registros em buckets de registros, 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 em buckets de registros
Para saber as limitações ao usar CMEK com buckets de registros, consulte Limitações.
Cotas
Para detalhes sobre os limites de uso do Logging, consulte Cotas e limites.
Resolver problemas de configuração
Saiba como solucionar erros de configuração de CMEK em Resolver problemas de CMEK e erros de configuração padrão.