Fazer rotação de uma chave

Nesta página, mostramos como fazer a rotação de uma chave de maneira automática ou manual. Para mais informações sobre a rotação de chaves em geral, consulte Rotação de chaves.

Funções exigidas

Para receber as permissões necessárias para fazer a rotação de chaves, peça ao administrador que conceda a você os seguintes papéis do IAM na sua chave:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para fazer a rotação de chaves. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para fazer a rotação de chaves:

  • Mudar a versão da chave primária: cloudkms.cryptoKeys.update
  • Mudar ou desativar o giro automático: cloudkms.cryptoKeys.update
  • Crie uma nova versão da chave: cloudkms.cryptoKeyVersions.create
  • Desative as versões antigas da chave: cloudkms.cryptoKeyVersions.update
  • Criptografar os dados novamente:
    • cloudkms.cryptoKeyVersions.useToDecrypt
    • cloudkms.cryptoKeyVersions.useToEncrypt

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Um único usuário com uma função personalizada que contenha todas essas permissões pode fazer a rotação de chaves e a recriptografia de dados por conta própria. Os usuários com a função de administrador do Cloud KMS e a função de criptografador/descriptografador do Cloud KMS CryptoKey podem trabalhar juntos para girar chaves e criptografar novamente os dados. Siga o princípio de privilégio mínimo ao atribuir papéis. Para mais detalhes, consulte Permissões e papéis.

Quando você faz a rotação de uma chave, os dados que foram criptografados com versões anteriores não são criptografados novamente de maneira automática. Para saber mais, consulte descriptografar e recriptografar. Fazer a rotação de uma chave não desativa ou destrói automaticamente nenhuma versão de chave atual. Destruir versões de chave que não são mais necessárias ajuda a reduzir custos.

Configurar a rotação automática

Criar uma chave com uma programação de rotação personalizada

Para configurar a rotação automática ao criar uma nova chave:

Console

Quando você usa o console Google Cloud para criar uma chave, o Cloud KMS define automaticamente o período de rotação e o próximo tempo de rotação. Você pode usar os valores padrão ou especificar outros.

Para especificar um período de rotação e um horário de início diferentes, siga as etapas abaixo quando estiver criando a chave, antes de clicar no botão Criar:

  1. Em Período de rotação de chaves, selecione uma opção.

  2. Em A partir de, selecione a data em que você quer que a primeira rotação automática aconteça. Você pode deixar A partir de no valor padrão para iniciar a primeira rotação automática um período de rotação de chaves depois da criação da chave.

gcloud

Para usar o Cloud KMS na linha de comando, primeiro instale ou faça upgrade para a versão mais recente da Google Cloud CLI.

gcloud kms keys create KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --purpose "encryption" \
    --rotation-period ROTATION_PERIOD \
    --next-rotation-time NEXT_ROTATION_TIME

Substitua:

  • KEY_NAME: o nome da chave;
  • KEY_RING: o nome do keyring que contém a chave.
  • LOCATION: o local do Cloud KMS do keyring.
  • ROTATION_PERIOD: o intervalo para alternar a chave. Por exemplo, 30d para alternar a chave a cada 30 dias. O período de rotação precisa ser de pelo menos um dia e no máximo 100 anos. Para mais informações, consulte CryptoKey.rotationPeriod.
  • NEXT_ROTATION_TIME: o carimbo de data/hora em que a primeira rotação será concluída, por exemplo, 2023-01-01T01:02:03. Você pode omitir --next-rotation-time para programar a primeira rotação por um período a partir do momento em que você executar o comando. Para ver mais informações, consulte CryptoKey.nextRotationTime.

Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

C#

Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.


using Google.Cloud.Kms.V1;
using Google.Protobuf.WellKnownTypes;
using System;

public class CreateKeyRotationScheduleSample
{
    public CryptoKey CreateKeyRotationSchedule(
      string projectId = "my-project", string locationId =