Neste documento, descrevemos como configurar e gerenciar chaves de criptografia gerenciadas pelo cliente (CMEK) para o Cloud Logging para atender às necessidades de conformidade 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 registros 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 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, 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 CMEK, incluindo vantagens e limitações, consulte Chaves de criptografia gerenciadas pelo cliente.
Quando você configura CMEK como uma configuração de recurso padrão para o Logging, novos buckets de registro na organização ou pasta são automaticamente criptografados 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, acesse 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
Neste guia, fornecemos instruções para usar a Google Cloud CLI.
Encontre os identificadores da organização ou pasta para ativar a CMEK:
- ORGANIZATION_ID é o identificador numérico exclusivo da organização do Google Cloud que você está ativando a CMEK. Esse valor não é necessário se você planeja configurar a CMEK para uma pasta. Para mais 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 será 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 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 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 chaves de qualquer região. No entanto, quando você cria um bucket de registros, o local dele 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 neste 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 definir CMEK como uma configuração de recurso padrão, não será possível criar buckets de registro na região
global
.Identifique valores para os 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 mais 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 a 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 existe,
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
.
Execute 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 Adicionar.
Configurar as políticas da organização
O Logging oferece suporte a políticas da organização que podem exigir proteção de CMEK e pode limitar quais CryptoKeys do Cloud KMS podem ser usadas para proteção de CMEK:
Quando
logging.googleapis.com
está na lista de políticasDeny
de serviços para a restriçãoconstraints/gcp.restrictNonCmekServices
, o Logging se recusa a criar novos buckets definidos pelo usuário que não são protegidos pela CMEK. No entanto, essa restrição não impede que o Cloud Logging crie os buckets de registros_Required
e_Default
gerados quando um projeto do Google Cloud é gerado.Quando
constraints/gcp.restrictCmekCryptoKeyProjects
é aplicado, o Logging cria recursos protegidos pela CMEK 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 existir, verifique se essas restrições são consistentes com as configurações de recurso padrão do Logging para uma organização ou uma pasta. Além disso, se você planeja modificar as configurações de recursos padrão, revise e, se necessário, atualize as políticas da organização antes de atualizá-las.
Para visualizar ou configurar as políticas da organização, faça o seguinte:
-
No painel de navegação do console do Google Cloud, selecione IAM e administrador e, em seguida, Políticas da organização:
- Selecione a organização.
Verifique e, se necessário, atualize as restrições específicas da CMEK.
Para mais 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 a 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 padrão do recurso 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, anexe 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
O comando anterior atualiza as configurações padrão do recurso para armazenar informações sobre a chave do Cloud KMS. Verifique se o local de armazenamento padrão para a 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, 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 registros na organização ou 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 registros na região global
porque você precisa 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 com êxito a CMEK para uma organização ou
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 registros do Cloud Logging podem ser configurados para criptografar dados com CMEKs. Quando você define a CMEK como uma configuração de recurso padrão para uma organização ou pasta, novos buckets de registro na organização ou pasta usam automaticamente a CMEK. É possível alterar a chave desses buckets de registros e criar buckets de registros que usam uma chave KMS diferente da especificada pelas configurações de recursos padrão.
Para informações sobre a CMEK aplicada a buckets de registros, incluindo como alterar chaves e limitações ao ativar CMEK em um bucket de registros, consulte Configurar CMEK para buckets de registros.
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 da chave ao rotear dados de registros para o Cloud Storage, será possível copiar de forma retroativa 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 de 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, 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
Verifique se o local de armazenamento padrão para a 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, anexe o seguinte ao comando anterior:
--storage-location = NEW_KMS_KEY_LOCATION
Revogar acesso à chave do Cloud KMS
Para revogar o acesso do Logging à chave do Cloud KMS, remova a permissão do IAM da conta de serviço configurada.
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. As configurações aplicadas anteriormente permanecem intactas.
Para desativar a CMEK em um recurso que tenha a CMEK configurada 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 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 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
Veja a seguir as limitações 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 as duas afirmações a seguir 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 temporários de recuperação de desastres e, para os usuários, as consultas pararã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 consegue gravar arquivos temporários necessários para facilitar o roteamento. Se for encontrado um erro ao criptografar ou descriptografar dados, uma notificação será enviada para o 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. Depois de 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 se 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 nos buckets de registros
Para conferir as limitações de uso da 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
Para saber como solucionar erros de configuração de CMEK, consulte Resolver problemas de CMEK e erros de configuração padrão.