Creare chiavi di crittografia con Cloud KMS

Questa guida rapida mostra come creare e utilizzare le chiavi di crittografia con Cloud Key Management Service in un progetto di tua proprietà. Queste istruzioni utilizzano la Cloud de Confiance console per creare keyring, chiavi e versioni delle chiavi in Cloud KMS. Per istruzioni che utilizzano altri metodi, consulta Panoramica di Autokey, Creare un key ring e Creare una chiave.

Questa guida rapida utilizza la riga di comando per inviare richieste all'API Cloud KMS. Per esempi di programmazione che utilizzano le librerie client per inviare richieste all'API Cloud KMS, consulta Crittografia e decrittografia.

Prima di iniziare

  1. Installa Google Cloud CLI.

  2. Configura gcloud CLI per utilizzare la tua identità federata.

    Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un Cloud de Confiance progetto.

    Ruoli richiesti per selezionare o creare un progetto

    • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.
    • Crea un Cloud de Confiance progetto:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il Cloud de Confiance progetto che stai creando.

    • Seleziona il Cloud de Confiance progetto che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del Cloud de Confiance progetto.

  5. Verifica che la fatturazione sia abilitata per il tuo Cloud de Confiance progetto.

  6. Abilita l'API Cloud KMS:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l' serviceusage.services.enable autorizzazione. Scopri come concedere i ruoli.

    gcloud services enable cloudkms.googleapis.com
  7. Concedi i ruoli al tuo account utente. Esegui il seguente comando una volta per ciascuno dei seguenti ruoli IAM: roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Sostituisci quanto segue:

Keyring e chiavi

Per criptare e decriptare i contenuti, avrai bisogno di una chiave Cloud KMS, che fa parte di un keyring.

Crea un keyring denominato test e una chiave denominata quickstart. Per saperne di più su questi oggetti e sul loro rapporto, consulta la panoramica della gerarchia degli oggetti per maggiori informazioni.

gcloud kms keyrings create "test" \
    --location "global"
gcloud kms keys create "quickstart" \
    --location "global" \
    --keyring "test" \
    --purpose "encryption"

Puoi utilizzare l'opzione list per visualizzare il nome e i metadati della chiave appena creata.

gcloud kms keys list \
    --location "global" \
    --keyring "test"

Dovresti vedere:

NAME                                                                      PURPOSE          PRIMARY_STATE
projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart  ENCRYPT_DECRYPT  ENABLED

Criptare i dati

Ora che hai una chiave, puoi utilizzarla per criptare testo o contenuti binari.

Archivia del testo da criptare in un file denominato "mysecret.txt".

echo -n "Some text to be encrypted" > mysecret.txt

Per criptare i dati con gcloud kms encrypt, fornisci le informazioni della chiave, specifica il nome del file di testo non crittografato da criptare e il nome del file che conterrà i contenuti criptati:

gcloud kms encrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --plaintext-file ./mysecret.txt \
    --ciphertext-file ./mysecret.txt.encrypted

Il metodo encrypt salva i contenuti criptati nel file specificato dal flag --ciphertext-file.

Decriptare il testo crittografato

Per decriptare i dati con gcloud kms decrypt, fornisci le informazioni della chiave, specifica il nome del file criptato (file di testo criptato) da decriptare e il nome del file che conterrà i contenuti decriptati:

gcloud kms decrypt \
    --location "global" \
    --keyring "test" \
    --key "quickstart" \
    --ciphertext-file ./mysecret.txt.encrypted \
    --plaintext-file ./mysecret.txt.decrypted

Il metodo decrypt salva i contenuti decriptati nel file specificato dal flag --plaintext-file.

Per decriptare i contenuti criptati, devi utilizzare la stessa chiave utilizzata per criptare i contenuti.

Libera spazio

Per evitare che al tuo Cloud de Confiance account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il Cloud de Confiance progetto con le risorse.

Elenca le versioni disponibili per la chiave:

gcloud kms keys versions list \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

Per eliminare una versione, esegui il seguente comando, dove 1 è il numero della versione della chiave che vuoi eliminare:

gcloud kms keys versions destroy 1 \
    --location "global" \
    --keyring "test" \
    --key "quickstart"

Passaggi successivi