1. Introduzione
Cloud KMS Autokey semplifica la creazione e l'utilizzo delle chiavi di crittografia gestite dal cliente (CMEK) automatizzando il provisioning e l'assegnazione. Con Autokey, le chiavi automatizzate, le chiavi normali e i service account non devono essere pianificati e sottoposti a provisioning prima di essere necessari. Autokey genera invece le chiavi on demand durante la creazione delle risorse, basandosi su autorizzazioni delegate anziché sugli amministratori Cloud KMS.
L'utilizzo di chiavi generate da Autokey può aiutarti ad allinearti costantemente agli standard di settore e alle pratiche consigliate per la sicurezza dei dati, tra cui il livello di protezione HSM, la separazione delle responsabilità, la rotazione delle chiavi, la località e la specificità delle chiavi. Autokey crea chiavi che seguono sia le linee guida generali sia quelle specifiche per il tipo di risorsa per i servizi Google Cloud che si integrano con Cloud KMS Autokey. Una volta create, le chiavi richieste utilizzando la funzione Autokey si comportano in modo identico alle altre chiavi Cloud HSM con le stesse impostazioni.
Cosa creerai
In questo codelab, avvierai risorse protette utilizzando Autokey di Cloud KMS creando:
- una risorsa cartella
- un progetto che conterrà le chiavi
- un service agent che funga da assistente per la gestione delle chiavi
- un progetto che ospiterà le risorse protette
- Set di dati BigQuery, dischi permanenti e bucket Cloud Storage criptati con Cloud KMS Autokey
Che cosa ti serve
- Organizzazione Google Cloud
- Per completare questo lab, il tuo principal Google Cloud deve disporre dei seguenti ruoli a livello di organizzazione:
- Cloud KMS Autokey Admin (roles/cloudkms.autokeyAdmin)
- Amministratore IAM cartella (roles/resourcemanager.folderIamAdmin)
- Utente account di fatturazione (roles/billing.user)
- Progetti Google Cloud con fatturazione abilitata
- Esperienza di base con Linux
2. Creare una cartella
Le cartelle sono nodi nella gerarchia delle risorse di Cloud Platform. Una cartella può contenere progetti, altre cartelle o una combinazione di entrambi. Le risorse dell'organizzazione possono utilizzare le cartelle per raggruppare i progetti sotto il nodo della risorsa dell'organizzazione in una gerarchia. Per creare una cartella:
- Vai alla pagina Gestisci risorse nella console Google Cloud.
- Assicurati che il nome della risorsa dell'organizzazione sia selezionato nell'elenco a discesa dell'organizzazione nella parte superiore della pagina.
- Fai clic su Crea cartella.

- Seleziona Cartella standard

- Nella casella Nome cartella, inserisci il nome della nuova cartella. Per questo lab, considera "Autokey-Folder"
- In Destinazione, fai clic su Sfoglia, quindi seleziona la risorsa organizzazione o la cartella in cui vuoi creare la nuova cartella.
- Fai clic su Crea.
3. Creare un progetto di risorse
È importante creare un progetto di risorse che contenga le risorse, ad esempio set di dati BigQuery, dischi permanenti e bucket Cloud Storage, che vuoi criptare con Cloud KMS Autokey. Se tenti di creare risorse protette da Autokey nel progetto chiave, Autokey rifiuta la richiesta di una nuova chiave. Per creare il progetto risorsa:
- Vai alla pagina Gestisci risorse nella console Google Cloud.
- Fai clic su Crea progetto.

- Nell'elenco a discesa Seleziona organizzazione nella parte superiore della pagina, seleziona la cartella "Autokey-Folder".
- Nella finestra Nuovo progetto visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione appropriato. Per questo lab, prendi in considerazione "Autokey Encrypted Resources"
- Nella casella Posizione, seleziona la cartella "Autokey-Folder". Questa risorsa sarà l'entità padre gerarchica di un nuovo progetto. Le impostazioni dovrebbero essere simili a queste:

- Copia l'ID progetto (nell'esempio precedente è "causal-hour-43319-m4", ma il tuo ID sarà diverso) nell'editor di testo che preferisci.
- Fai clic su Crea
- Seleziona l'icona di Cloud Shell nell'angolo in alto a destra dello schermo.

- Una volta attivata Cloud Shell, salva l'ID progetto Autokey come variabile eseguendo questo comando:
export RESOURCE_PROJECT=<paste your Resource Project ID>
Poiché il mio ID progetto è "key-management-433319", il mio comando ha il seguente aspetto:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- Esegui questo comando per eseguire i comandi dal tuo progetto chiave:
gcloud config set project $RESOURCE_PROJECT
Quando richiesto, autorizza Cloud Shell facendo clic su "Autorizza".

- Poiché questo progetto conterrà risorse, dobbiamo abilitare le API per i servizi che Autokey proteggerà. Esegui questo comando:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. Crea un progetto chiave
Ti consigliamo di creare un progetto che contenga le risorse Cloud KMS create da Autokey. In futuro, questo progetto verrà chiamato "progetto chiave". Il progetto chiave può essere creato all'interno della stessa cartella in cui prevedi di attivare Autokey. Non devi creare altre risorse all'interno del progetto chiave. Se tenti di creare risorse protette da Autokey nel progetto chiave, Autokey rifiuta la richiesta di una nuova chiave. Per creare il progetto della chiave:
- Vai alla pagina Gestisci risorse nella console Google Cloud.
- Fai clic su Crea progetto.

- Nell'elenco a discesa Seleziona organizzazione nella parte superiore della pagina, seleziona la cartella "Autokey-Folder".
- Nella finestra Nuovo progetto visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione appropriato. Per questo lab, considera "Key Management"
- Nella casella Posizione, seleziona la cartella "Autokey-Folder". Questa risorsa sarà l'entità padre gerarchica di un nuovo progetto. Le impostazioni dovrebbero essere simili a queste:

- Copia l'ID progetto (nell'esempio precedente è "key-management-433319", ma il tuo ID sarà diverso) nell'editor di testo che preferisci.
- Fai clic su Crea.
5. Prepara il progetto chiave Autokey
Ora che ogni progetto è stato creato, è il momento di configurare il progetto chiave per utilizzare Cloud KMS Autokey.
- Seleziona l'icona di Cloud Shell nell'angolo in alto a destra dello schermo.

- Una volta attivata Cloud Shell, salva l'ID progetto Autokey come variabile eseguendo questo comando:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
Poiché il mio ID progetto è "key-management-433319", il mio comando ha il seguente aspetto:
export AUTOKEY_PROJECT=key-management-433319
- Esegui questo comando per eseguire i comandi dal tuo progetto chiave:
gcloud config set project $AUTOKEY_PROJECT
Quando richiesto, autorizza Cloud Shell facendo clic su "Autorizza".

- Abilita l'API Cloud KMS eseguendo il seguente comando
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- Esegui questo comando per salvare il numero di progetto come variabile denominata AUTOKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- Salva l'email del Principal come variabile eseguendo il seguente comando:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- Concedi le autorizzazioni di amministratore Cloud KMS sul progetto di chiavi agli utenti amministratori Cloud KMS
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=user:$KEY_ADMIN_EMAIL
6. Configura gli agenti di servizio Cloud KMS
L'agente di servizio Cloud KMS per un progetto di chiavi crea chiavi e applica i binding delle policy IAM durante la creazione delle risorse, per conto di un amministratore Cloud KMS umano. Per poter creare e assegnare chiavi, l'agente di servizio Cloud KMS richiede le autorizzazioni di amministratore Cloud KMS.
- Trova l'ID organizzazione con il seguente comando:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Copia l'ID organizzazione: si tratta del risultato numerico evidenziato in rosso
- Salva l'ID organizzazione come variabile denominata ORG_ID:
export ORG_ID=<paste your Organization ID>
- Crea l'agente di servizio Cloud KMS eseguendo questo comando:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- Concedi il ruolo di amministratore Cloud KMS al service agent:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
--role=roles/cloudkms.admin \
--member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
- Aggiungi un binding dei criteri IAM per poter visualizzare l'utilizzo della chiave Cloud KMS. Utilizzo delle chiavi fornisce informazioni per ogni chiave, tra cui il numero di risorse protette, progetti e prodotti Google Cloud unici che utilizzano la chiave. Questo livello di dettaglio è disponibile per chiunque abbia il ruolo Visualizzatore Cloud KMS per la chiave. Esegui questo comando:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
--member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Concedi al tuo service account Cloud KMS il ruolo Cloud KMS Organization Service Agent (cloudkms.orgServiceAgent) nella risorsa dell'organizzazione.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
--role='roles/cloudkms.orgServiceAgent'
- Concedi il ruolo Cloud KMS Protected Resources Viewer alla risorsa Organizzazione a chiunque debba visualizzare i dettagli sull'utilizzo delle chiavi.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. Concedere ruoli utente Autokey
Prima che gli sviluppatori possano utilizzare Autokey, devi concedere loro il ruolo richiesto. Puoi concedere il ruolo a livello di cartella o di progetto. Questo ruolo consente agli sviluppatori di richiedere chiavi al service agent Cloud KMS durante la creazione di risorse in quella cartella o progetto.
Il primo passaggio per concedere il ruolo è salvare l'ID cartella.
- Trova l'ID cartella con il seguente comando:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Copia l'ID cartella, ovvero la parte evidenziata in rosso.
- Salva l'ID cartella come variabile denominata FOLDER_ID
export FOLDER_ID=<paste the folder ID>
Ai fini di questo lab, definiremo l'amministratore delle chiavi come l'utente Autokey. Tuttavia, nei casi d'uso di produzione e nelle organizzazioni con più di una persona, l'amministratore delle chiavi deve essere diverso dallo sviluppatore che utilizza Autokey.
- Concedi il ruolo roles/cloudkms.autokeyUser a livello di cartella:
gcloud resource-manager folders add-iam-policy-binding \
$FOLDER_ID --role=roles/cloudkms.autokeyUser \
--member=user:$KEY_ADMIN_EMAIL
8. Abilita Cloud KMS Autokey in una cartella di risorse
In questo passaggio, abiliterai Cloud KMS Autokey in una cartella di risorse e identificherai il progetto Cloud KMS che conterrà le risorse Autokey per quella cartella. Se abiliti Autokey in questa cartella, Autokey viene abilitato per tutti i progetti di risorse all'interno della cartella.
- Nella console Google Cloud, vai alla pagina Controlli KMS.
- Fai clic su Seleziona cartella.

- Dal selettore di contesto, seleziona la cartella in cui vuoi attivare Autokey. Si tratta della stessa cartella che hai creato in precedenza e che contiene il progetto di risorse e il progetto di gestione delle chiavi. Dovrebbe avere il seguente aspetto:

- Fai clic su Abilita.
- Fai clic su Sfoglia per selezionare il progetto chiave.
- Seleziona il progetto di gestione delle chiavi e fai clic su Invia.

Un messaggio conferma che Cloud KMS Autokey è abilitato nella cartella. La pagina Controlli KMS dovrebbe avere il seguente aspetto:

9. Crea risorse protette utilizzando Cloud KMS Autokey
Dischi permanenti di Compute Engine
Autokey crea una nuova chiave per ogni disco, immagine e immagine della macchina nella stessa posizione della risorsa che viene creata.
Per creare un disco, completa i seguenti passaggi:
- Nella console Google Cloud, vai alla pagina Dischi.
- Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
- In Crittografia, seleziona Chiave Cloud KMS.

- Per Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.

- Per completare la creazione del disco, fai clic su Crea.
Puoi seguire una procedura simile per creare risorse di istanze VM protette, immagini e immagini macchina.
Bucket Google Cloud Storage
Autokey crea una nuova chiave nella stessa posizione del bucket. La chiave creata da Autokey viene assegnata come chiave predefinita del bucket.
Autokey non crea chiavi per gli oggetti. Per impostazione predefinita, gli oggetti creati in un bucket utilizzano la chiave predefinita del bucket. Se vuoi criptare un oggetto utilizzando una chiave diversa da quella predefinita del bucket, puoi creare manualmente una CMEK e utilizzarla durante la creazione dell'oggetto.
- Nella console Google Cloud, vai alla pagina Crea un bucket.
- Scegli un nome permanente e univoco globale.
- Scegli una località dei dati.
- Vai alla sezione "Scegli come proteggere i dati degli oggetti".

- Fai clic su "Scegli come proteggere i dati degli oggetti" per espandere la sezione.

- Espandi la sezione Crittografia dei dati e seleziona Chiave Cloud KMS.

- Per Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.

- Per completare la creazione del bucket, fai clic su Crea. Se viene visualizzata una finestra di dialogo che spiega che "L'accesso pubblico verrà vietato", fai clic su Conferma.
BigQuery Dataset
Per ogni nuovo set di dati, Autokey crea una nuova chiave nella stessa posizione della risorsa, che diventa la chiave predefinita del set di dati. Autokey non crea chiavi per tabelle, query, tabelle temporanee o modelli. Per impostazione predefinita, queste risorse sono protette dalla chiave predefinita del set di dati. Se vuoi proteggere una risorsa in un set di dati utilizzando una chiave diversa da quella predefinita del set di dati, puoi creare manualmente una chiave CMEK e utilizzarla durante la creazione della risorsa.
Per creare un set di dati BigQuery, devi prima disporre del ruolo Utente BigQuery.
- Torna a Cloud Shell
- Imposta Cloud Shell in modo che esegua i comandi dal progetto di risorse
gcloud config set project $RESOURCE_PROJECT
- Esegui questo comando per salvare il numero di progetto come variabile denominata RESOURCE_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- Concediti il ruolo Utente BigQuery
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
Ora che hai il ruolo Utente BigQuery, puoi creare un set di dati e proteggerlo con Autokey.
- Nella console Google Cloud, vai alla pagina BigQuery.
- Segui le istruzioni per creare un set di dati fino a raggiungere Opzioni avanzate > Crittografia.
- In Crittografia, seleziona Chiave Cloud KMS.
- Per Tipo di chiave, seleziona Cloud KMS con Autokey, quindi fai clic su Richiedi una nuova chiave. Un messaggio indica quando la chiave è stata creata correttamente ed è pronta per l'uso.
- Per completare la creazione del set di dati, fai clic su Crea set di dati.
10. Esplorare le chiavi
In questo passaggio, esplorerai le chiavi create per tuo conto da Cloud KMS Autokey visitando la pagina Inventario chiavi. La pagina Inventario chiavi fornisce informazioni complete sulle chiavi crittografiche nel tuo progetto. Tieni presente che i dati potrebbero subire ritardi. Ad esempio, se crei una nuova risorsa protetta, la risorsa protetta e la versione della chiave associata non vengono aggiunte immediatamente alla scheda Monitoraggio dell'utilizzo. Scopri altre limitazioni qui.
- Nella console Google Cloud, vai alla pagina Inventario chiavi.
- (Facoltativo) Per filtrare l'elenco delle chiavi, inserisci i termini di ricerca nella casella Filtra elenco e premi Invio. Ad esempio, puoi filtrare per posizione, portachiavi, stato o altre proprietà delle chiavi.
- Fai clic sul nome della chiave per cui vuoi visualizzare le informazioni sull'utilizzo.
- Fai clic su "Panoramica". Nota che è stata creata una chiave per ogni risorsa. Ogni nome della chiave include il nome della risorsa che la chiave protegge (ad es. "compute-disk" o "storage-bucket"). Cloud KMS Autokey garantisce che la rotazione di ogni chiave sia pianificata 365 giorni dopo la sua creazione e che a ogni chiave venga assegnato il livello di protezione "HSM".

- Fai clic sulla scheda Monitoraggio dell'utilizzo. Nota il livello di informazioni presentate: qui vengono mostrate tutte le risorse che la chiave cripta, insieme a progetto, località e data di creazione.
- (Facoltativo) Per filtrare l'elenco delle risorse protette, inserisci i termini di ricerca nella casella di testo filter_list Filtro e premi Invio.

11. Complimenti
Congratulazioni, hai creato correttamente le risorse Google Cloud e le hai criptate automaticamente on demand con Autokey di Cloud KMS.
Ora conosci i passaggi chiave necessari per configurare Autokey e utilizzarlo per criptare automaticamente le risorse con le chiavi Cloud KMS.
12. Passaggi successivi
Caricare i dati nelle risorse criptate con Autokey
- Crea un'istanza Google Compute Engine (GCE)
- Collega il disco permanente protetto da Autokey all'istanza GCE
- Caricare i dati nel set di dati BigQuery
- Caricare oggetti in un bucket Google Cloud Storage
- Caricare i dati di Google Cloud Storage in BigQuery