Proteger dados com chaves de criptografia

Nesta página, descrevemos como criar, configurar e aplicar chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) 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 oferece suporte aos seguintes tipos de chaves:

    A chave precisa estar no mesmo local do 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, você pode pular esta etapa.

  2. Conceda acesso do 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 é semelhante a 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 da chave do Cloud KMS
    • REGION: a região da chave, por exemplo, us-central1
    • PROJECT: o ID do projeto da chave
    • KEYRING: o ID do keyring da chave do Cloud KMS

    Esse papel 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, você pode escolher se quer 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 dele.

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 detalhes da chave de um cluster usando 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 gcloud alloydb clusters describe comando:

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 a backups

Ao criar um 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 tem a opção de aplicar uma chave CMEK ao cluster criado ao restaurar um backup, independentemente do método de criptografia desse backup. Para mais informações, consulte Restaurar um cluster.

Fazer a rotação de 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ê faz a rotação de uma chave CMEK, o seguinte acontece com os dados 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, nem desativada nem excluída.

  • A nova criptografia completa dos dados é manual: para que todos os dados do AlloyDB estejam na versão mais recente da chave primária, é necessário criptografá-los novamente.

Para criptografar novamente o cluster com uma nova versão da chave CMEK, é necessário realizar uma operação de backup e restauração:

  1. Crie um backup do cluster.

  2. Restaure o backup em um novo cluster, especificando a nova versão da chave primária 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 uma sobrecarga operacional significativa. Como os dados atuais não são criptografados novamente de forma automática e a nova criptografia manual envolve um backup completo e a 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 versões antigas da chave CMEK no Cloud KMS depois de confirmar que todos os dados relevantes do AlloyDB foram criptografados novamente de forma manual e que os dados usam uma versão mais recente da chave.

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 Backups

Para conferir os detalhes da chave de um backup usando a 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 gcloud alloydb backups describe comando:

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 ser propagada ao cluster do AlloyDB. Para desativar uma chave e impedir o acesso aos dados imediatamente, siga estas etapas:

  1. Exclua a instância principal do cluster. Isso não afeta os dados do cluster. Você pode 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 visualizar 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 a Análise de registros no Google Cloud console do.

    Acesse a Análise 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 da chave do Cloud KMS
    • KEY: o ID da chave do Cloud KMS
  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 do Cloud KMS, 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 justificativas de acesso de visualização para 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, você pode aprovar ou negar uma solicitação de forma automática. Para mais informações, consulte Conferir e agir com base em justificativas.