Esta página mostra como rodar uma chave automaticamente ou manualmente. Para mais informações sobre a rotação de chaves em geral, consulte Rotação de chaves.
Funções necessárias
Para obter as autorizações de que precisa para alternar chaves, peça ao seu administrador que lhe conceda as seguintes funções do IAM na sua chave:
-
Administrador do Cloud KMS (
roles/cloudkms.admin) -
Reencriptar dados:
Encriptador/desencriptador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para rodar as chaves. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para alternar chaves:
-
Altere a versão da chave principal:
cloudkms.cryptoKeys.update -
Altere ou desative a rotação automática:
cloudkms.cryptoKeys.update -
Crie uma nova versão da chave:
cloudkms.cryptoKeyVersions.create -
Desative as versões antigas das chaves:
cloudkms.cryptoKeyVersions.update -
Reencriptar dados:
-
cloudkms.cryptoKeyVersions.useToDecrypt -
cloudkms.cryptoKeyVersions.useToEncrypt
-
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Um único utilizador com uma função personalizada que contenha todas estas autorizações pode rodar as chaves e voltar a encriptar os dados de forma autónoma. Os utilizadores com a função de administrador do Cloud KMS e a função de encriptador/desencriptador de CryptoKey do Cloud KMS podem trabalhar em conjunto para rodar as chaves e voltar a encriptar os dados. Siga o princípio do menor privilégio ao atribuir funções. Para ver mais detalhes, consulte o artigo Autorizações e funções.
Quando alterna uma chave, os dados que foram encriptados com versões anteriores da chave não são reenviados automaticamente. Para saber mais, consulte os artigos desencriptar e voltar a encriptar. A rotação de uma chave não desativa nem destrói automaticamente as versões de chaves existentes. Destruir versões de chaves que já não são necessárias ajuda a reduzir os custos.
Configure a rotação automática
Crie uma nova chave com um agendamento de rotação personalizado
Para configurar a rotação automática quando cria uma nova chave:
Consola
Quando usa a Google Cloud consola para criar uma chave, o Cloud KMS define automaticamente o período de rotação e a hora da próxima rotação. Pode optar por usar os valores predefinidos ou especificar valores diferentes.
Para especificar um período de rotação e uma hora de início diferentes, quando estiver a criar a chave, mas antes de clicar no botão Criar:
Para Período de rotação de chaves, selecione uma opção.
Em A partir de, selecione a data em que quer que ocorra a primeira rotação automática. Pode deixar a opção A partir de no valor predefinido para iniciar a primeira rotação automática um período de rotação de chaves a partir do momento em que cria a chave.
gcloud
Para usar o Cloud KMS na linha de comandos, primeiro instale ou atualize para a versão mais recente da CLI do Google Cloud.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--rotation-period ROTATION_PERIOD \
--next-rotation-time NEXT_ROTATION_TIME
Substitua o seguinte:
KEY_NAME: o nome da chave.KEY_RING: o nome do conjunto de chaves que contém a chave.LOCATION: a localização do Cloud KMS do conjunto de chaves.ROTATION_PERIOD: o intervalo para alternar a chave, por exemplo,30dpara alternar a chave a cada 30 dias. O período de rotação tem de ser, pelo menos, de 1 dia e, no máximo, de 100 anos. Para mais informações, consulte o artigo CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: a data/hora em que a primeira rotação deve ser concluída, por exemplo,2023-01-01T01:02:03. Pode omitir--next-rotation-timepara agendar a primeira rotação para um período de rotação a partir do momento em que executa o comando. Para mais informações, consulteCryptoKey.nextRotationTime.
Para ver informações sobre todas as flags e valores possíveis, execute o comando com a flag --help.
C#
Para executar este código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK C# do Cloud KMS.
Go
Para executar este código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK Go do Cloud KMS.
Java
Para executar este código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK Java do Cloud KMS.
Node.js
Para executar este código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Node.js do Cloud KMS.
PHP
Para executar este código, saiba primeiro como usar o PHP no Google Cloud e instale o SDK PHP do Cloud KMS.
Python
Para executar este código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK Python do Cloud KMS.
Ruby
Para executar este código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK Ruby do Cloud KMS.