Configurar a CMEK para buckets de registro

Este documento fornece instruções para configurar a criptografia gerenciada 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 registro na organização ou na pasta são criptografados com uma chave gerenciada pelo cliente. Se você não fornecer uma chave ao criar o bucket de registros, o é usada a chave padrão. Para mais informações, consulte Configure a 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 registros pelo Logging são criptografados com 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 deixar que o Google gerencie de criptografia de chaves que protegem seus dados, é possível gerenciar as chaves.

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:

  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 para usar a Google Cloud CLI.

  3. Crie ou identifique o projeto do Google Cloud em que você quer executar o Cloud KMS.

  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 por meio de papéis personalizados ou de outros papéis predefinidos.

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

    Para alinhar os domínios de falha, é preciso usar um keyring com a localização corresponde ao escopo regional dos seus dados:

    Não é possível ativar a CMEK para buckets de registros criados na região global.

  8. Identifique os valores das 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 em um 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 do projeto do Google Cloud em execução no Cloud KMS.
    • KMS_KEY_LOCATION é o valor da chave do Cloud KMS na mesma região.
    • 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 a localização de identificadores de recursos, consulte Como 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 registro individual.

Determinar o ID da conta de serviço

Para determinar o ID da conta de serviço associado ao Google Cloud a que a CMEK será aplicada, faça o seguinte:

  1. Execute o comando a seguir: gcloud logging settings describe comando:

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    O comando anterior gera uma conta de serviço para o recurso, quando ainda não houver um, e ela retornará o ID desse 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 O campo KMS_SERVICE_ACCT_NAME é service-PROJECT_NUMBER ou cmek-pPROJECT_NUMBER.

  2. Se o campo KMS_SERVICE_ACCT_NAME tiver o formato cmek-pPROJECT_NUMBER, e se você usa o VPC Service Controls ou se ativar o compartilhamento restrito de domínio, Depois determine se é necessário migrar a conta de serviço da CMEK. Confira informações sobre quando é preciso migrar e as etapas necessárias a migração, 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, dê permissão da conta de serviço para usar o Cloud KMS atribuindo o Criptografador/Descriptografador de CryptoKey do Cloud KMS para a 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 da seguinte maneira:

  • Substitua KMS_SERVICE_ACCT_NAME pelo valor kmsServiceAccountId. que você determinou 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 esse bucket, execute o seguinte gcloud logging buckets create comando:

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 chamada CMEK. Se o valor de a coluna CMEK for TRUE, a CMEK será ativada para o bucket de registros.

Para conferir os detalhes de um bucket de registro específico, incluindo os detalhes da chave, execute este comando:

gcloud logging buckets describe BUCKET_ID

Gerenciar sua chave do Cloud KMS

As seções a seguir descrevem como atualizar um bucket de registro para usar a versão mais recente da chave primária de uma chave do Cloud KMS. Eles também descrevem como alterar, revogar o acesso e desativar sua 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. Você também pode rotacionar uma chave do Cloud KMS manualmente. Cada vez que uma chave é girada, uma nova versão é criada.

Se você alternar uma chave do Cloud KMS, a nova versão da chave será aplicada apenas aos buckets de registros criados após a rotação de chaves. Se a chave for usada por um bucket de registro, a rotação dela não vai mudar a forma como o bucket protege os dados.

Por exemplo, suponha que você crie um bucket de registro, ative a CMEK e gire a chave do Cloud KMS. O bucket de registros que você criado não usa a nova versão da chave. Em vez disso, continua a proteger dados com a versão da chave que foi marcada como primária quando o bucket de registros foi criados.

Para atualizar um bucket de registros para usar a versão mais recente da chave primária de um chave do Cloud KMS, faça o seguinte:

  1. Identifique a chave atual do Cloud KMS do bucket de registros. Para mais informações, consulte Verificar a ativação da chave.
  2. Identifique outra chave do Cloud KMS que você pode usar. Se as o keyring tem apenas uma chave, e em Criar uma chave.
  3. Altere a chave do Cloud KMS do bucket de registros para o Chave do Cloud KMS criada na etapa anterior.
  4. Altere a chave do Cloud KMS do bucket de registros para o chave original do Cloud KMS.

Alterar sua chave do Cloud KMS

Para alterar a chave do Cloud KMS associada ao bucket de registros: criar uma chave e atualizar Configurações da CMEK 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 do BigQuery vinculado, o BigQuery não poderá usar esse acesso para aplicar a chave a uma nova tabela do BigQuery. Se você quiser usar uma chave na tabela do BigQuery que não vinculada ao Logging, siga Documentação do BigQuery para fazer isso. Se você revogar o acesso do Logging a uma chave e se tiver um conjunto de dados vinculado do BigQuery; você também revoga 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 de acesso, consulte Limitações.

Para remover o acesso de registro 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 quiser usar o Error Reporting, não ativar as chaves de criptografia gerenciadas pelo cliente (CMEK) nos buckets de registros. Para mais informações, consulte Solução de problemas.

Não é possível remover a CMEK dos buckets de registros

Não é possível reconfigurar buckets de registro para alterar ou remover o CMEK.

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 criptografia e descriptografia permissões na chave.

O Logging recomenda garantir que todas as chaves sejam configuradas e sempre disponíveis.

Perda da recuperação de desastres

Se houver falhas críticas no armazenamento primário do Cloud Logging, o Logging vai espelhar os dados de registro em arquivos de recuperação de desastres. Quando a CMEK é 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, em caso de um desastre de armazenamento, o Cloud Logging pode não conseguir recuperar registros de recursos com CMEKs não configuradas corretamente.

Restrições de suporte

O Cloud Customer Care não poderá ler os registros do recurso se a chave não está configurada corretamente ou fica indisponível.

Desempenho de consulta degradado

Quando uma chave de criptografia gerenciada pelo cliente está inacessível, o Cloud Logging vai continuar criptografando seus dados e armazenando-os 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, inicialmente os dados são armazenados em um estado não otimizado, o desempenho pode ser afetado.

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 for indisponível, o Cloud Logging vai continuar armazenando registros em buckets mas os usuários não têm acesso a eles.

Para mais considerações e possíveis alternativas, ao usar chaves externas, consulte a documentação do Cloud External Key Manager.

Regionalidade

Ao criar um bucket de registros e ativar a CMEK, você precisa usar uma chave com região corresponde ao escopo regional dos seus dados. Não é possível configurar a CMEK para buckets de registros criados no global região.

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 CMEKs, consulte Resolver erros de configuração de organização e CMEK