Este documento descreve como configurar e gerir as chaves de encriptação geridas pelo cliente (CMEK) para o Cloud Logging de modo a cumprir os requisitos de conformidade da sua organização. Pode configurar a CMEK como uma predefinição de recursos para uma organização, uma pasta ou ambas. Quando configurado, o Cloud Logging garante que todos os novos contentores de registos na organização ou na pasta são encriptados com uma chave gerida pelo cliente.
Pode configurar definições predefinidas para uma organização e para pastas. Quando cria novos recursos, esses recursos herdam as definições predefinidas do respetivo recurso principal. Por exemplo, se configurar a CMEK como uma definição de recurso predefinida para uma organização, todos os novos contentores de registos _Default
e _Required
criados em projetos, pastas ou contas de faturação nessa organização são encriptados com a chave predefinida.
Além disso, se criar um contentor de registos personalizado num projeto que seja filho dessa organização, a chave predefinida é usada automaticamente, a menos que forneça uma chave diferente quando criar o contentor de registos.
As instruções neste guia usam a CLI do Google Cloud.
Vista geral
Por predefinição, o Cloud Logging encripta o conteúdo do cliente em repouso. O registo processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.
Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Logging. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização, autorizações de acesso e limites criptográficos. A utilização do Cloud KMS também permite ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.
Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos de registo é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).
Quando configura as CMEK como uma predefinição de recursos para o Logging, ocorrem os seguintes eventos:
- Os novos contentores de registos na organização ou na pasta são encriptados automaticamente com a chave configurada. No entanto, pode alterar essa chave ou criar contentores de registo e especificar uma chave diferente. Para mais informações, consulte o artigo Configure as CMEK para contentores de registos.
- Se usar o Log Analytics e consultar vários contentores de registos, a chave predefinida pode ser usada para encriptar dados temporários. Para mais informações, consulte o artigo Restrições do Log Analytics.
Antes de começar
Para começar, conclua os seguintes passos:
Antes de criar um contentor de registos com as CMEK ativadas, reveja 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 Google Cloud projeto onde planeia criar as chaves:
-
Para receber as autorizações de que precisa para criar chaves, peça ao seu administrador para lhe conceder a função administrador do Cloud KMS (
roles/cloudkms.admin
) da IAM no seu projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie um conjunto de chaves e chaves.
O Cloud Logging permite-lhe usar uma chave de qualquer região. No entanto, quando cria um contentor de registos, a localização do contentor de registos tem de corresponder à localização da chave. Para informações sobre as regiões suportadas, consulte o seguinte:
Se configurar a CMEK como uma predefinição de recursos para o Logging através dos passos descritos neste documento, os novos contentores de registos criados na organização ou na pasta são configurados automaticamente para a CMEK. Além disso, uma vez que a localização de um contentor de registos tem de corresponder à localização da chave, depois de configurar o CMEK como uma predefinição de recurso, não pode criar contentores de registos na região
global
.
-
Certifique-se de que a sua função de IAM na organização ou na pasta cujas predefinições quer configurar inclui as seguintes autorizações do Cloud Logging:
logging.settings.get
logging.settings.update
- FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.
- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- KMS_SERVICE_ACCT_NAME: o nome da conta de serviço apresentado 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 conjunto de chaves do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - Na Google Cloud consola, aceda à página Gestão de chaves.
Selecione o nome do conjunto de chaves que contém a chave.
Selecione a caixa de verificação da chave.
O separador Permissões fica disponível.
Na caixa de diálogo Adicionar membros, especifique o endereço de email da conta de serviço de registo que está a conceder acesso.
No menu pendente Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.
Clique em Adicionar.
Quando
logging.googleapis.com
está na lista de serviços da políticaDeny
para a restriçãoconstraints/gcp.restrictNonCmekServices
, o Logging recusa-se a criar novos contentores definidos pelo utilizador que não estejam protegidos pela CMEK. No entanto, esta restrição não impede que o Cloud Logging crie os contentores de registos_Required
e_Default
, que são criados quando um projetoGoogle Cloud é criado.Quando a
constraints/gcp.restrictCmekCryptoKeyProjects
é aplicada, o Logging cria recursos protegidos pela CMEK que são protegidos por uma CryptoKey de um projeto, uma pasta ou uma organização permitidos.-
Na Google Cloud consola, aceda à página Políticas da organização:
Aceda a Políticas da organização
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é IAM e administração.
- Selecione a sua organização.
Valide e, se necessário, atualize as restrições específicas da CMEK.
Para obter informações sobre como modificar uma política de organização, consulte o artigo Criar e editar políticas.
- FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.
- KMS_KEY_LOCATION: a região da chave do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.
- KMS_KEY_LOCATION: a região da chave do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - KMS_KEY_RING: o nome do conjunto de chaves do Cloud KMS.
- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.
Os contentores de registos do Cloud Logging podem ser configurados para encriptar dados com CMEK. Quando configura a CMEK como uma predefinição para uma organização ou uma pasta, os novos contentores de registos na organização ou na pasta usam automaticamente a CMEK. Pode alterar a chave destes contentores de registos e criar contentores de registos que usam uma chave do KMS diferente da especificada pelas predefinições.
Para obter informações sobre as CMEK aplicadas aos contentores de registos, incluindo como alterar as chaves e as limitações quando ativa as CMEK num contentor de registos, consulte o artigo Configure as CMEK para contentores de registos.
O Cloud Storage suporta CMEK para registos de encaminhamento. Para obter instruções sobre como configurar as CMEK para o Cloud Storage, consulte o artigo Usar chaves de encriptação geridas pelo cliente.
Se os dados forem perdidos devido à indisponibilidade da chave ao encaminhar dados de registos para o Cloud Storage, pode copiar retroativamente os registos em massa para o Cloud Storage quando esses registos também estiverem armazenados num contentor de registos. Para ver detalhes, consulte o artigo Copie entradas do registo.
- Por predefinição, o BigQuery encripta o conteúdo do cliente armazenado em repouso. Para ver detalhes, consulte o artigo Proteger dados com chaves do Cloud Key Management Service.
- Por predefinição, o Pub/Sub encripta o conteúdo do cliente armazenado em repouso. Para ver detalhes, consulte o artigo Configurar a encriptação de mensagens.
- KMS_PROJECT_ID: o identificador alfanumérico exclusivo, composto pelo nome do seu Google Cloud projeto e um número atribuído aleatoriamente, do projeto Google Cloud que executa o Cloud KMS. Para obter informações sobre como obter este identificador, consulte o artigo Identificar projetos.
- KMS_SERVICE_ACCT_NAME: o nome da conta de serviço apresentado 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 conjunto de chaves do Cloud KMS.
- KMS_KEY_NAME:
O nome da chave do Cloud KMS. Tem o seguinte formato:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - FOLDER_ID: o identificador numérico exclusivo da pasta. Para ver informações sobre a utilização de pastas, consulte o artigo Criar e gerir pastas.
- ORGANIZATION_ID: o identificador numérico exclusivo da organização. Para obter informações sobre como receber este identificador, consulte o artigo Receber o ID da sua organização.
- A chave está ativada.
- A conta de serviço indicada no campo
kmsServiceAccountId
da resposta do comandogcloud logging settings describe
tem autorizações de encriptação e desencriptação na chave.
Ative as CMEK para uma organização ou uma pasta
Siga estas instruções para ativar as CMEK para a sua Google Cloud pasta ou organização.
Determine o ID da conta de serviço
Para determinar o ID da conta de serviço associado à organização ou à pasta
à qual a CMEK se aplica, execute o seguinte comando
gcloud logging settings describe
:
FOLDER
gcloud logging settings describe --folder=FOLDER_ID
Antes de executar o comando anterior, faça a seguinte substituição:
ENTIDADE
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de executar o comando anterior, faça a seguinte substituição:
O comando anterior gera contas de serviço para a organização ou a pasta, quando não existem. O comando também devolve os IDs de duas contas de serviço, uma no campo kmsServiceAccountId
e a outra no campo loggingServiceAccountId
. Para configurar a CMEK como uma predefinição, use o valor no campo kmsServiceAccountId
.
A imagem seguinte ilustra uma resposta de exemplo ao comando anterior quando é especificada uma organização:
kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com name: organizations/ORGANIZATION_ID/settings
Execute o processo de aprovisionamento uma vez por recurso. A execução do comando describe
várias vezes devolve o mesmo valor para o campo kmsServiceAccountId
.
Se não conseguir usar a CLI do Google Cloud, execute o método da API Cloud Logging getSettings
.
Atribua a função de encriptador/desencriptador
Para usar a CMEK, conceda à conta de serviço autorização para usar o seu Cloud KMS atribuindo a função Encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço:
gcloud
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:
Consola
Configure as políticas da organização
O registo em registo suporta políticas da organização que podem exigir a proteção CMEK e podem limitar as CryptoKeys do Cloud KMS que podem ser usadas para a proteção CMEK:
Para mais informações acerca das CMEK e das políticas da organização, consulte o artigo Políticas da organização de CMEK.
Quando existe uma política da organização que especifica uma restrição de CMEK, certifique-se de que essas restrições são consistentes com as definições predefinidas do Logging para uma organização ou uma pasta. Além disso, se planear modificar as definições predefinidas, antes de atualizar as definições predefinidas, reveja e, se necessário, atualize as políticas da organização.
Para ver ou configurar políticas da organização, faça o seguinte:
Configure o Cloud Logging com a chave do Cloud KMS
Para configurar as CMEK como uma predefinição de recursos para o registo,
execute o seguinte comando
gcloud logging settings update
:
FOLDER
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
Antes de executar o comando anterior, faça as seguintes substituições:
O comando anterior atualiza as predefinições para armazenar informações sobre a chave do Cloud KMS. Tem de garantir que a localização de armazenamento predefinida da pasta está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:
--storage-location = KMS_KEY_LOCATION
A flag --storage-location
permite-lhe definir ou atualizar a localização de armazenamento predefinida da pasta.
ENTIDADE
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
Antes de executar o comando anterior, faça as seguintes substituições:
O comando anterior atualiza as predefinições para armazenar informações sobre a chave do Cloud KMS. Tem de garantir que a localização de armazenamento predefinida da organização está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:
--storage-location = KMS_KEY_LOCATION
A flag --storage-location
permite-lhe definir ou atualizar a localização de armazenamento predefinida para a organização.
Depois de a chave ser aplicada, os novos contentores de registos na organização ou na pasta são configurados para encriptar os respetivos dados em repouso através desta chave. Também pode alterar chaves para contentores de registos individuais. Não pode criar contentores de registos na região global
porque tem de usar uma chave cuja região corresponda ao âmbito regional dos seus dados.
Se não conseguir usar a CLI do Google Cloud, execute o método da API Cloud Logging updateSettings
.
Valide a ativação da chave
Para verificar se ativou com êxito a CMEK para uma organização ou uma pasta, execute o seguinte comando:gcloud logging settings describe
FOLDER
gcloud logging settings describe --folder=FOLDER_ID
Antes de executar o comando anterior, faça a seguinte substituição:
ENTIDADE
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de executar o comando anterior, faça a seguinte substituição:
Quando o comando anterior devolve o nome da chave do Cloud KMS, o campo kmsKeyName
é preenchido, o que significa que a CMEK está ativada para a organização ou a pasta:
kmsKeyName: KMS_KEY_NAME kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
Encaminhe registos para destinos suportados
Faça a gestão da sua chave do Cloud KMS
As secções seguintes explicam como alterar, revogar o acesso ou desativar a chave do Cloud KMS.
Altere a sua chave do Cloud KMS
Para alterar a chave do Cloud KMS associada a uma organização ou a uma pasta, crie uma chave e, de seguida, execute o comando gcloud logging settings update
e faculte informações sobre a nova chave do Cloud KMS:
FOLDER
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
Tem de garantir que a localização de armazenamento predefinida da pasta está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:
--storage-location = NEW_KMS_KEY_LOCATION
ENTIDADE
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
Tem de garantir que a localização de armazenamento predefinida da organização está definida para o valor de KMS_KEY_LOCATION. Se não tiver definido a localização de armazenamento predefinida ou se o valor dessa localização não corresponder ao valor de KMS_KEY_LOCATION, acrescente o seguinte ao comando anterior:
--storage-location = NEW_KMS_KEY_LOCATION
Revogue o acesso à chave do Cloud KMS
Pode revogar o acesso do Logging à chave do Cloud KMS removendo a autorização do IAM da conta de serviço configurada para essa chave.
Se remover o acesso do Logging a uma chave, a alteração pode demorar até uma hora a entrar em vigor.
Para revogar o acesso do Logging à chave do Cloud KMS, execute o seguinte comando da CLI do Google Cloud:
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:
Desative as CMEK
A desativação da 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 as CMEK num recurso que tenha as CMEK configuradas como uma definição de recurso predefinida, execute o seguinte comando da CLI do Google Cloud:
FOLDER
gcloud logging settings update --folder=FOLDER_ID --clear-kms-key
Antes de executar o comando anterior, faça a seguinte substituição:
ENTIDADE
gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key
Antes de executar o comando anterior, faça a seguinte substituição:
Se quiser destruir a sua chave, consulte o artigo Destruir e restaurar versões de chaves.
Considerações sobre a rotação de chaves do Cloud KMS
O Cloud Logging não alterna automaticamente a chave de encriptação para ficheiros temporários de recuperação de desastres quando a chave do Cloud KMS associada à Google Cloud organização ou à pasta é alternada. Os ficheiros de recuperação existentes continuam a usar a versão da chave com a qual foram criados. Os novos ficheiros de recuperação usam a versão atual da chave principal.
Limitações
Seguem-se as limitações conhecidas quando configura a CMEK como uma definição de recurso predefinida para o Logging.
Indisponibilidade de ficheiros de recuperação de desastres
Uma chave do Cloud KMS é considerada disponível e acessível pelo Logging quando ambas as seguintes condições se aplicam:
Se o Logging perder o acesso à chave do Cloud KMS, o Logging não consegue escrever ficheiros temporários de recuperação de desastres e, para os utilizadores, as consultas deixam de funcionar. O desempenho das consultas pode permanecer degradado mesmo após o acesso à chave ser restaurado.
O encaminhamento de registos para o Cloud Storage também pode ser afetado porque o Logging não consegue escrever os ficheiros temporários necessários para facilitar o encaminhamento. Se for detetado um erro ao encriptar ou desencriptar dados, é enviada uma notificação para o Google Cloud projeto que contém a chave do Cloud KMS.
Disponibilidade da biblioteca cliente
As bibliotecas cliente de registo não fornecem métodos para configurar o CMEK.
Degradação devido à indisponibilidade da chave do Cloud EKM
Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente no sistema de parceiros de gestão de chaves externo.
Quando a CMEK está configurada como a definição de recurso predefinida para uma organização ou uma pasta, se uma chave gerida externamente estiver indisponível, o Cloud Logging tenta continuamente aceder à chave. O Cloud Logging também armazena em buffer os dados de registo recebidos durante um máximo de uma hora. Após uma hora, se o Cloud Logging ainda não conseguir aceder à chave gerida externamente, começa a rejeitar os dados.
Se a CMEK for aplicada a um contentor de registos e se uma chave gerida externamente estiver indisponível, o Cloud Logging continua a armazenar registos em contentores de registos, mas os utilizadores não vão poder aceder a esses dados.
Consulte a documentação do Cloud External Key Manager para ver mais considerações e potenciais alternativas quando usar chaves externas.
Limitações em contentores de registos
Para ver as limitações quando usa as CMEK com contentores de registos, consulte as Limitações.
Quotas
Para ver detalhes sobre os limites de utilização do registo, consulte o artigo Quotas e limites.
Resolva problemas de erros de configuração
Para obter informações sobre a resolução de problemas de erros de configuração da CMEK, consulte o artigo Resolva problemas de erros da CMEK e da predefinição.