Proteger dados com chaves de criptografia

Nesta página, descrevemos como criar, configurar e aplicar chaves de criptografia gerenciadas pelo cliente (CMEK) para o AlloyDB para PostgreSQL.

Para mais informações 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 é compatível com os 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 acesso ao AlloyDB à chave.

    1. Usando a Google Cloud CLI, 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
    
    1. 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 concede à conta de serviço permissão para criptografar e descriptografar usando a chave do Cloud KMS. Para mais informações, consulte Permissões e papéis do Cloud KMS.

Criar um cluster criptografado com CMEK

Ao criar um cluster, é possível escolher se ele será criptografado com a criptografia padrão gerenciada pelo Google ou com uma chave CMEK. Para mais informações, consulte Criar um cluster e a instância principal dele.

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

Console

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

Acessar a página de Clusters

Para conferir os detalhes principais 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 resultante 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 se quer criptografá-lo usando a criptografia padrão gerenciada pelo Google ou uma chave CMEK. Para mais informações, consulte Criar um backup sob demanda ou Programar backups automáticos.

Você também pode aplicar uma chave CMEK ao cluster criado ao restaurar de um backup, independente do método de criptografia dele. Para mais informações, consulte Restaurar um cluster.

Alternar chaves usando a criptografia CMEK

É importante entender as implicações da rotação das chaves de criptografia gerenciadas pelo cliente (CMEK) no Cloud Key Management Service (Cloud KMS) quando usadas com clusters do AlloyDB.

Quando você gira uma chave de CMEK, o seguinte acontece com seus dados atuais do AlloyDB:

  • O acesso imediato continua: os dados permanecem criptografados com a versão original da chave de criptografia de dados (DEK, na sigla em inglês), desde que a versão anterior da chave ainda esteja disponível no KMS, sem estar desativada nem excluída.

  • A recriptografia completa dos dados é manual: para ter todos os dados do AlloyDB na versão mais recente da chave primária, é necessário recriptografá-los.

Para criptografar novamente o cluster atual com uma nova versão da chave CMEK, faça uma operação de backup e restauração:

  1. Crie um backup do cluster atual.

  2. Restaure o backup para um novo cluster, especificando a nova versão da chave primária de CMEK durante o processo de restauração.

Para mais informações, consulte Restauração de cluster.

A rotação frequente de chaves CMEK com o AlloyDB exige um overhead operacional significativo. Como os dados atuais não são criptografados novamente de forma automática e a recriptografia manual envolve um backup completo e restauração para um novo cluster, as rotações frequentes podem ser complicadas e afetar a disponibilidade ou a complexidade do gerenciamento.

Você só pode excluir com segurança as versões antigas da chave CMEK no Cloud KMS depois de confirmar que todos os dados relevantes do AlloyDB foram recriptografados manualmente e que os dados usam uma versão de chave mais recente.

Ver 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 detalhes principais 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 dele inacessíveis até que você ative a chave novamente.

No entanto, a desativação de uma chave pode levar até três horas para ser propagada para o 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 cluster. É possível criar uma nova instância principal depois de reativar a chave, conforme descrito na seção a seguir.

  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 ver 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 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 gravidade INFO. Essas entradas são registradas quando as instâncias no cluster do AlloyDB validam a chave do Cloud KMS, o que acontece a cada cinco minutos.

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

Ver justificativas de acesso para uma chave do Cloud EKM

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