Usar CMEK

Esta página descreve como criar, configurar e aplicar chaves de criptografia gerenciadas pelo cliente (CMEK) no AlloyDB para PostgreSQL.

Para saber mais sobre a CMEK, consulte Sobre a CMEK.

Criar e autorizar uma chave CMEK para o AlloyDB

  1. Crie uma chave no Cloud Key Management Service (Cloud KMS). O AlloyDB oferece suporte aos seguintes tipos de chaves:

    A chave precisa estar no mesmo local que o cluster do AlloyDB. Por exemplo, um cluster do AlloyDB localizado em us-west1 só pode usar chaves em us-west1.

    Se você já tiver uma chave do Cloud KMS no local correto, pule esta etapa.

  2. Conceda ao AlloyDB acesso à chave.

    1. Usando a CLI do Google Cloud, crie e mostre o agente de serviço ou mostre-o se a conta já existir:

      gcloud beta services identity create --service=alloydb.googleapis.com \
          --project=PROJECT

      O comando gcloud services identity cria ou recebe o agente de serviço que o AlloyDB pode usar para acessar a chave do Cloud KMS em seu nome.

      O ID da conta de serviço se parece com um endereço de e-mail:

      Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
      
    2. Conceda o papel cloudkms.cryptoKeyEncrypterDecrypter à conta de serviço:

      gcloud kms keys add-iam-policy-binding KEY \
          --location REGION \
          --keyring KEYRING \
          --project=PROJECT \
          --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter

      Substitua:

      • KEY: o ID do Cloud KMS da chave
      • REGION: a região da chave, por exemplo, us-central1
      • PROJECT: o ID do projeto da chave
      • KEYRING: o ID do keyring do Cloud KMS da chave

      Essa função garante que a conta de serviço tenha permissão para criptografar e descriptografar com a chave do Cloud KMS. Para mais informações, consulte Permissões e papéis do Cloud KMS.

Criar um cluster criptografado por CMEK

Ao criar um novo cluster, você pode escolher criptografá-lo com a criptografia padrão gerenciada pelo Google ou usar uma chave CMEK. Para mais informações, consulte Criar um cluster e a instância principal.

Conferir o método de criptografia e a chave CMEK de um cluster

Console

A coluna Criptografia da página Clusters mostra se cada cluster no seu projeto usa a criptografia gerenciada pelo Google ou a CMEK.

Acessar a página de Clusters

Para conferir os principais detalhes de um cluster que usa a CMEK, clique no nome dele na coluna Nome do recurso. O campo Chave de criptografia da página de detalhes subsequente contém uma descrição da chave, incluindo um link para a página de detalhes do Cloud KMS.

gcloud

Chame o comando gcloud alloydb clusters describe:

gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION

Substitua:

  • CLUSTER: o ID do cluster a ser descrito
  • PROJECT: o ID do projeto do cluster
  • REGION: a região do cluster, por exemplo, us-central1

A saída inclui um campo encryptionInfo com um resumo da criptografia do cluster.

Aplicar a CMEK aos backups

Ao criar um novo backup, você pode escolher criptografá-lo com a criptografia padrão gerenciada pelo Google ou usar uma chave CMEK. Para mais informações, consulte Criar um backup sob demanda ou Programar backups automáticos.

Você também tem a opção de aplicar uma chave CMEK ao cluster criado ao restaurar de um backup, independentemente do método de criptografia desse backup. Para mais informações, consulte Restaurar um cluster.

Conferir o método de criptografia e a chave CMEK de um backup

Console

A coluna Criptografia da página Backups mostra se cada cluster no seu projeto usa a criptografia gerenciada pelo Google ou a CMEK.

Acessar a página "Backups"

Para conferir os principais detalhes de um backup usando CMEK, clique em Restaurar. O campo Chave de criptografia do painel de detalhes subsequente contém uma descrição da chave, incluindo um link para a página de detalhes do Cloud KMS.

gcloud

Chame o comando gcloud alloydb backups describe:

gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION

Substitua:

  • CLUSTER: o ID do backup a ser descrito
  • PROJECT: o ID do projeto do backup
  • REGION: a região do backup, por exemplo, us-central1

A saída inclui um campo encryptionInfo com um resumo da criptografia do backup.

Desativar uma chave

A desativação da chave CMEK de um cluster torna os dados desse cluster inacessíveis até que você ative a chave novamente.

No entanto, a desativação de uma chave pode levar até três horas para se propagar ao cluster do AlloyDB. Para desativar uma chave e impedir o acesso aos seus dados imediatamente, siga estas etapas:

  1. Exclua a instância principal do cluster. Isso não afeta os dados do seu cluster. É possível criar uma nova instância principal depois de reativar a chave, conforme descrito na próxima seção.

  2. Use o Cloud KMS para desativar a chave.

Ativar uma chave

Para ativar uma chave, siga estas etapas:

  1. Use o Cloud KMS para ativar a chave.

  2. Se você excluiu a instância principal do cluster antes de desativar a chave, crie uma nova instância principal.

A ativação de uma chave pode levar até três horas para ser propagada ao cluster. Os dados do cluster ficam acessíveis assim que essa propagação acontece.

Visualizar registros de auditoria para chave do Cloud KMS

Para conferir os registros de auditoria associados a uma chave CMEK específica, siga estas etapas:

  1. Verifique se a geração de registros está ativada para a API Cloud KMS no seu projeto.

  2. Acesse o Explorador de registros no Console do Google Cloud:

    Acesse o Explorador de registros

  3. Limite as entradas de registro na chave do Cloud KMS adicionando as seguintes linhas ao criador de consultas:

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    Substitua:

    • REGION: a região da chave, por exemplo, us-central1
    • KEYRING: o ID do keyring do Cloud KMS da chave
    • KEY: o ID do Cloud KMS da chave
  4. Em operações normais, as operações de criptografia e descriptografia são registradas com a gravidade INFO. Essas entradas são registradas quando as instâncias no cluster do AlloyDB validam a chave {kms_name_short}}, o que ocorre a cada cinco minutos.

  5. Se o AlloyDB não conseguir acessar a chave, as operações serão registradas como ERROR.

Conferir as justificativas de acesso de uma chave do Cloud EKM

Se você usar uma chave do Cloud EKM, poderá usar as justificativas de acesso às chaves para conferir o motivo de cada solicitação do Cloud EKM. Além disso, com base na justificativa fornecida, é possível aprovar ou negar automaticamente uma solicitação. Para mais informações, consulte Acessar e agir com base em justificativas.