Ruotare una chiave

Questa pagina mostra come ruotare automaticamente o manualmente una chiave. Per ulteriori informazioni sulla rotazione della chiave in generale, consulta Rotazione delle chiavi.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per ruotare le chiavi, chiedi all'amministratore di concederti i seguenti ruoli IAM sulla chiave:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per la rotazione delle chiavi. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per ruotare le chiavi sono necessarie le seguenti autorizzazioni:

  • Modifica la versione chiave primaria: cloudkms.cryptoKeys.update
  • Modificare o disattivare la rotazione automatica: cloudkms.cryptoKeys.update
  • Crea una nuova versione della chiave: cloudkms.cryptoKeyVersions.create
  • Disabilita le versioni precedenti della chiave: cloudkms.cryptoKeyVersions.update
  • Ricripta i dati:
    • cloudkms.cryptoKeyVersions.useToDecrypt
    • cloudkms.cryptoKeyVersions.useToEncrypt

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Un singolo utente con un ruolo personalizzato contenente tutte queste autorizzazioni può ruotare le chiavi e ricriptare i dati autonomamente. Gli utenti con il ruolo Amministratore Cloud KMS e il ruolo Utilità di crittografia/decrittografia CryptoKey di Cloud KMS possono collaborare per ruotare le chiavi e ricriptare i dati. Segui il principio del privilegio minimo quando assegni i ruoli. Per maggiori dettagli, vedi Autorizzazioni e ruoli.

Quando ruoti una chiave, i dati criptati con le versioni precedenti della chiave non vengono criptati di nuovo automaticamente. Per saperne di più, vedi Decrittografare e ricrittografare. La rotazione di una chiave non disabilitaelimina automaticamente le versioni della chiave esistenti. L'eliminazione delle versioni delle chiavi non più necessarie contribuisce a ridurre i costi.

Configurare la rotazione automatica

Crea una nuova chiave con una pianificazione della rotazione personalizzata

Per configurare la rotazione automatica durante la creazione di una nuova chiave:

Console

Quando utilizzi la console Google Cloud per creare una chiave, Cloud KMS imposta automaticamente il periodo di rotazione e l'ora della rotazione successiva. Puoi scegliere di utilizzare i valori predefiniti o specificare valori diversi.

Per specificare un periodo di rotazione e un orario di inizio diversi, quando crei la chiave, ma prima di fare clic sul pulsante Crea:

  1. Per Periodo di rotazione della chiave, seleziona un'opzione.

  2. Per A partire dal giorno, seleziona la data in cui vuoi che avvenga la prima rotazione automatica. Puoi lasciare A partire dal giorno al valore predefinito per avviare la prima rotazione automatica un periodo di rotazione della chiave dopo la creazione della chiave.

gcloud

Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di 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

Sostituisci quanto segue:

  • KEY_NAME: il nome della chiave.
  • KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.
  • LOCATION: la posizione di Cloud KMS delle chiavi automatizzate.
  • ROTATION_PERIOD: l'intervallo di rotazione della chiave, ad esempio 30d per ruotare la chiave ogni 30 giorni. Il periodo di rotazione deve essere di almeno 1 giorno e al massimo 100 anni. Per saperne di più, consulta CryptoKey.rotationPeriod.
  • NEXT_ROTATION_TIME: il timestamp in cui completare la prima rotazione, ad esempio 2023-01-01T01:02:03. Puoi omettere --next-rotation-time per programmare la prima rotazione per un periodo di rotazione dal momento in cui esegui il comando. Per saperne di più, vedi CryptoKey.nextRotationTime.

Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.

C#

Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.


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

public class CreateKeyRotationScheduleSample
{
    public CryptoKey CreateKeyRotationSchedule(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring",
      string id = "my-key-with-rotation-schedule")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the parent key ring name.
        KeyRingName keyRingName = new KeyRingName(projectId, locationId, keyRingId);

        // Build the key.
        CryptoKey key = new CryptoKey
        {
            Purpose = CryptoKey.Types.CryptoKeyPurpose.EncryptDecrypt,
            VersionTemplate = new CryptoKeyVersionTemplate
            {
                Algorithm = CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm.GoogleSymmetricEncryption,
            },

            // Rotate the key every 30 days.
            RotationPeriod = new Duration
            {
                Seconds