Proteggere i dati è una priorità assoluta per qualsiasi organizzazione, e la crittografia è uno dei modi più efficaci per proteggere i dati. Ma come esattamente? Google Cloud Platform (GCP) fornisce un servizio di gestione chiavi chiamato Google Key Management Service (KMS), che ti consente di creare e gestire rapidamente chiavi di crittografia.
In questo tutorial, imparerai come creare e utilizzare una chiave in GCP KMS. Passerai anche attraverso alcuni concetti importanti legati alla gestione delle chiavi, come chiavi, anelli delle chiavi e versioni delle chiavi.
Pronto? Continua a leggere e porta la sicurezza dei tuoi dati al livello successivo!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Per seguirla, assicurati di avere un account GCP con fatturazione attiva, ma una prova gratuita sarebbe sufficiente.
A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.
Per creare un nuovo progetto Google Cloud:
1. Apri il tuo browser web preferito e accedi alla Console GCP. Come la console AWS, la console GCP è un’interfaccia basata su web per gestire le risorse nel Google Cloud.
2. Nella tua console GCP, vai alla pagina Gestisci risorse, dove puoi vedere e gestire tutti i tuoi progetti esistenti.
3. Successivamente, clicca sul pulsante CREA PROGETTO per creare un nuovo progetto.

Infine, configura le seguenti impostazioni per il tuo nuovo progetto e clicca su CREA per creare il tuo progetto.
- Nome del progetto – Inserisci un nome per il tuo progetto, che non deve essere unico e può essere modificato in seguito. La scelta del nome del progetto per questo tutorial è gcp-kms-demo.
- Posizione – Seleziona l’organizzazione genitore o la cartella in cui desideri che questo progetto venga creato. Il tuo progetto appena creato sarà il genitore superiore. Ma puoi saltare questo campo se non hai un’organizzazione.
Il campo Posizione potrebbe non comparire se usi un account di prova.

Se avrai successo, vedrai elencato il tuo nuovo progetto Google Cloud appena creato, come mostrato di seguito.

Abilitazione dell’API Cloud KMS per il progetto Google Cloud
Hai appena creato il tuo primo Se avrai successo, vedrai elencato il tuo nuovo progetto Google Cloud appena creato, come mostrato di seguito.progetto Cloud e di solito non puoi lasciarlo non protetto. Non preoccuparti! L’API Cloud KMS è un insieme di API di crittografia fornite da Google che puoi utilizzare per proteggere i tuoi dati.
Per utilizzare l’API Cloud KMS, devi abilitarla per il tuo progetto:
1. Vai alla pagina del selettore del progetto Google e seleziona il tuo progetto Google Cloud (gcp-kms-demo).

2. Successivamente, vai alla pagina Abilita accesso all’API e clicca AVANTI per confermare l’abilitazione dell’API per il progetto selezionato.

3. Ora, clicca ABILITA per abilitare l’API Cloud KMS.

A questo punto, l’API Cloud KMS è abilitata per il tuo progetto. Ora puoi iniziare a utilizzare l’API Cloud KSM per creare e gestire le chiavi di crittografia.

Avviare la Cloud Shell per creare chiavi e keyring
L’abilitazione dell’API Cloud KMS ti prepara per creare chiavi e keyring per crittografare e decrittografare i tuoi dati. Le chiavi e i keyring sono concetti fondamentali in Cloud KMS.
Key | A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys. |
Keyring | A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location. |
Ma prima di creare chiavi e keyring, devi avviare la Cloud Shell. La Cloud Shell è una shell gratuita e interattiva che puoi utilizzare per eseguire comandi sulla piattaforma Google Cloud senza installare alcun strumento sul tuo computer.
1. Nella console GCP, fai clic sul pulsante Attiva Cloud Shell (in alto a destra), come mostrato di seguito, per avviare la Cloud Shell.

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

2. Successivamente, esegui il seguente comando gcloud nel Cloud Shell per creare un nuovo keyring chiamato kms-demo-keyring nella posizione globale.
–location “global”
Quando richiesto, fai clic su AUTORIZZA per continuare l’esecuzione del comando.

Questo prompt compare la prima volta che esegui il comando gcloud nella Cloud Shell, chiedendoti di autorizzare lo strumento gcloud ad accedere all’API KSM.

Come mostrato di seguito, non ci sono messaggi di output quando il portachiavi viene creato con successo.
Utilizza le chiavi di crittografia come un professionista con AWS Key Management
Nota che la posizione (global) deve essere la stessa impostata per il portachiavi.
–location “global” \
–keyring “kms-demo-keyring” \

–purpose “encryption”
Ogni volta che crei o ruoti una chiave, Cloud KMS ne crea una nuova versione. Questa funzionalità ti permette di tornare facilmente a una versione precedente se necessario.
PURPOSE | ENCRYPT_DECRYPT | Indicates the purpose of the key (encryption and decryption). |
ALGORITHM | GOOGLE_SYMMETRIC_ENCRYPTION | Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys. |
PROTECTION_LEVEL | SOFTWARE | Indicates the key is software-protected. |
LABELS | You can add labels to keys to categorize them or to add additional information. | |
PRIMARY ID | 1 | Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.
Note that you can have only one primary key per keyring. |
PRIMARY STATE | ENABLED | Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose. |

Come per la creazione di un portachiavi, non ci sono messaggi di output quando la chiave viene creata con successo.
Ma a questo punto, hai un portachiavi e una chiave che puoi usare per criptare e decriptare i tuoi dati.
4. Ora, esegui il comando seguente per elencare le chiavi in un –keyring (kms-demo-keyring).
Riceverai un output simile allo screenshot sottostante con le seguenti informazioni:
Crittografia e Decrittografia Dati con GCP KMS

1. Esegui il comando sottostante, che non fornisce output, ma crea un file di testo (gcp-kms-demo.txt) con alcuni testi da crittografare.
2. Successivamente, esegui ciascun comando sottostante per elencare (ls) il file di testo (gcp-kms-demo.txt) e visualizzare (cat) il suo contenuto per verificare i dati.

# Elenca il file di testo
# Visualizza il contenuto del file di testo
3. Una volta verificato, esegui il comando sottostante per crittografare i dati nel tuo file (gcp-kms-demo.txt) usando la tua chiave (kms-demo-key01). I dati crittografati saranno quindi memorizzati in un nuovo file chiamato gcp-kms-demo.txt.encrypted.

–location “globale” \
–keyring “kms-demo-keyring” \

–key “kms-demo-key01” \
–plaintext-file ./gcp-kms-demo.txt \

–ciphertext-file ./gcp-kms-demo.txt.encrypted
4. Ora esegui il seguente comando per provare a visualizzare i dati del file criptato (gcp-kms-demo.txt.encrypted).
Vedrai simboli rotti, strani e illeggibili, come mostrato di seguito. Questo output indica che il file è stato criptato con successo.
È necessario conservare questo file criptato in una posizione sicura. Ad esempio, è possibile conservare copie multiple in AWS S3, GCP Cloud Storage o Azure Blob Storage. Google Cloud non salva la versione in chiaro dei tuoi dati. Pertanto, se perdi il file criptato, è impossibile decifrarlo per ripristinare i dati originali.

Come caricare un file su S3 con AWS CLI
5. Una volta criptati, esegui il comando seguente per decifrare i tuoi dati (gcp-kms-demo.txt.encrypted) utilizzando la stessa chiave (kms-demo-key01). Ma questa volta, i dati decifrati vengono salvati in un nuovo file chiamato gcp-kms-demo.txt.decrypted.
Come per la criptazione, questo comando non fornisce output, ma verificherai la decifratura nel passaggio successivo.
–location “global” \
–keyring “kms-demo-keyring” \

–key “kms-demo-key01” \

–ciphertext-file ./gcp-kms-demo.txt.encrypted \
–plaintext-file ./gcp-kms-demo.txt.decrypted

6. Infine, esegui il seguente comando per visualizzare (cat) il file decriptato (gcp-kms-demo.txt.decrypted) e verificare che i dati siano stati decriptati con successo.
Di seguito, puoi vedere i dati originali che hai salvato sul file di testo. Congratulazioni! Hai cifrato e decifrato con successo i dati utilizzando Google Cloud KMS.
Pulizia delle risorse di Google Cloud