Configurar CMEK para o Cloud Logging

Neste documento, descrevemos como configurar e gerenciar de criptografia gerenciadas pelo cliente (CMEK) para Cloud Logging para atender às suas às necessidades de compliance da organização. É possível definir a CMEK como uma configuração de recurso padrão para um organização, uma pasta, ou para ambos. Quando configurado, o Cloud Logging garante que todos os novos buckets de registro na organização ou na pasta são 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 com o 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 deixar que o Google gerencie de criptografia de chaves 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 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 Logging, 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 Configure a CMEK para buckets de registros.

Pré-requisitos

Para começar, siga estas etapas:

  1. Há algumas limitações ao usar a CMEK. Antes de criar bucket de registros com a CMEK ativada, analise as Limitações.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

    Este guia fornece instruções usando a Google Cloud CLI.

  3. Encontre os identificadores da organização ou pasta para ativar a CMEK:

    • ORGANIZATION_ID é o identificador numérico exclusivo do Organização do Google Cloud em que você vai ativar as CMEKs. Esse valor não é necessário se você só planeja configurar a CMEK para um do Compute Engine. Para informações sobre como conseguir esse identificador, consulte Encontrando o ID da organização.
    • FOLDER_ID é o identificador numérico exclusivo do Pasta do Google Cloud em que você está ativando a CMEK. Esse valor não é necessário se você planeja configurar a CMEK apenas para em uma organização. Para mais informações sobre o uso de pastas, consulte Como criar e gerenciar pastas.
  4. Para ter as permissões necessárias para criar chaves, peça ao administrador para conceder a você 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 com papéis personalizados ou outros papéis predefinidos.

  5. Verifique se você tem as seguintes permissões do Cloud Logging para o organização:

    • logging.settings.get
    • logging.settings.update
  6. Ative a API Cloud KMS para o projeto do Google Cloud que executa o Cloud KMS.

  7. 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 dele precisa ser corresponder ao local da chave. Para informações sobre regiões com suporte, consulte o seguinte:

    Se você definir a CMEK como uma configuração de recurso padrão do Logging usando as etapas neste documento, os novos buckets de registro criados na organização ou na pasta configuradas automaticamente para CMEK. Além disso, como a localização de um bucket de registros precisa corresponder ao local da chave. a CMEK como uma configuração de recurso padrão, não é possível criar buckets de registros na região global.

  8. 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 do projeto do Google Cloud em execução no Cloud KMS. Para informações sobre como conseguir esse identificador, ver Como identificar projetos.
    • KMS_KEY_LOCATION é o valor da chave do Cloud KMS na mesma região.
    • KMS_KEY_RING é o keyring do Cloud KMS. nome.
    • 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

Determinar o ID da conta de serviço associado à organização ou à pasta para qual CMEK será aplicada, execute o seguinte gcloud logging settings describe comando:

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, caso ainda não exista um, e retorna o ID no campo kmsServiceAccountId. Veja a seguir um exemplo de resposta ao comando anterior quando um 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. Como executar o describe várias vezes retorna o mesmo valor para o parâmetro 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 que você determinou no pré-requisitos.

Console

  1. Abra o navegador de chaves do Cloud Key Management Service no Console do Google Cloud.
    Abrir o navegador de Chaves do Cloud KMS
  2. Clique no nome do keyring que contém a chave que você quer.

  3. Marque a caixa de seleção da chave.

    A guia Permissões fica disponível.

  4. 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.

  5. Na lista suspensa Selecionar um papel, escolha Criptografador/Descriptografador do Cloud KMS CryptoKey.

  6. Clique em Adicionar.

Configurar as políticas da organização

O Logging oferece suporte às políticas da organização que podem exigir CMEK e pode limitar quais CryptoKeys do Cloud KMS são usadas para Proteção de CMEK:

  • Quando logging.googleapis.com está na lista de serviços da política Deny para o restrição constraints/gcp.restrictNonCmekServices, Logging se recusa a criar novos buckets definidos pelo usuário que não sejam protegidos pelo CMEK. No entanto, essa restrição não impede que o Cloud Logging crie a buckets de registro _Required e _Default, que são criados quando O projeto do Google Cloud é criado.

  • Quando constraints/gcp.restrictCmekCryptoKeyProjects é aplicado, O Logging cria recursos protegidos por CMEKs que são protegidas 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 houver uma política da organização que especifique uma restrição de CMEK, verifique se se essas restrições são consistentes com a de recursos padrão de uma organização ou pasta. Além disso, se você planeja modificar as configurações padrão de recursos, atualizar as configurações padrão de recursos, revisar e, se necessário, atualizar as políticas da organização.

Para visualizar ou configurar políticas da organização, faça o seguinte:

  1. 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.

  2. Selecione a organização.
  3. Verifique e, se necessário, atualize as restrições específicas da CMEK.

    Para saber 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 do Logging, execute o seguinte gcloud logging settings update comando:

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. Você deve garantir que o local de armazenamento padrão da pasta é 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

Com a sinalização --storage-location, é possível definir ou atualizar 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. Você deve garantir que o local de armazenamento padrão da organização é 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

Com a sinalização --storage-location, é possível definir ou atualizar local de armazenamento padrão da organização.

Depois que a chave for aplicada, novos buckets de registro na organização ou na pasta estão configurados para criptografar os dados em repouso usando essa chave. Você também pode mudar chaves de buckets de registros individuais. Não é possível criar buckets de registros a região global porque é preciso usar uma chave cuja region corresponde 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 a CMEK para uma organização ou uma pasta, execute o seguinte gcloud logging settings describe comando:

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 estiver preenchido, a CMEK será ativada para 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. Ao definir a CMEK como uma configuração de recurso padrão em uma organização ou pasta, os novos buckets na organização ou na pasta usam a CMEK automaticamente. É possível alterar a chave esses buckets de registro, e você pode criar buckets de registro que usam um chave KMS que a especificada pelas configurações de recurso padrão.

    Para mais informações sobre a CMEK aplicada a buckets de registros, incluindo como alterar ao ativar a CMEK em um bucket de registros, consulte Configure a CMEK para buckets de registros.

  • O Cloud Storage é compatível com CMEK para roteamento de registros. Para instruções sobre como para 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 dados de registros para no Cloud Storage, será possível copiar retroativamente os registros em massa Cloud Storage quando esses registros também são 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 a um do Cloud, 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

Você deve garantir que o local de armazenamento padrão da pasta é 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

Você deve garantir que o local de armazenamento padrão da organização é 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

É possível revogar o acesso do Logging à chave do Cloud KMS removendo os dados da conta de serviço permissão do IAM 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

A desativação da CMEK para uma organização ou uma pasta remove a aplicação da política de CMEK somente para operações futuras. todas as configurações aplicadas anteriormente permanecem intactas.

Para desativar a CMEK em um recurso que a tenha configurada como padrão do recurso, 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 criptografia para arquivos temporários de recuperação de desastres quando a chave do Cloud KMS associados à organização ou à rotação de pastas do Google Cloud. 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

Confira a seguir as limitações conhecidas definir 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 Registro quando ambas as condições a seguir forem 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, A geração de registros não consegue gravar arquivos de recuperação de desastres temporários e, para os usuários, as consultas param 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 os dados, uma notificação é enviada ao projeto do Google Cloud que contém as 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 é definida como a configuração de recurso padrão para uma organização ou em uma pasta, se uma chave gerenciada externamente não estiver disponível, O Cloud Logging tenta acessar a chave continuamente. 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 o chave gerenciada, o Cloud Logging 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 continua armazenando registros em buckets, mas os usuários não terão acesso a eles.

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

Para saber como solucionar erros de configuração de CMEKs, consulte Resolver erros de CMEK e configuração padrão.