1. Introduzione
Autokey di Cloud KMS semplifica la creazione e l'utilizzo delle chiavi di crittografia gestite dal cliente (CMEK) automatizzando il provisioning e l'assegnazione. Con Autokey, non è necessario pianificare e eseguire il provisioning di keyring, chiavi e account di servizio prima di essere necessari. Autokey genera invece le chiavi on demand man mano che le risorse vengono create, basandosi sulle autorizzazioni delegati anziché sugli amministratori di Cloud KMS.
L'utilizzo delle chiavi generate da Autokey può aiutarti ad allinearti in modo coerente agli standard di settore e alle best practice consigliate per la sicurezza dei dati, tra cui il livello di protezione HSM, la separazione dei compiti, la rotazione delle chiavi, la posizione e la specificità delle chiavi. Autokey crea chiavi che seguono sia le linee guida generali sia le linee guida 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 funzionano in modo identico alle altre chiavi Cloud HSM con le stesse impostazioni.
Cosa creerai
In questo codelab, lancerai risorse protette utilizzando Cloud KMS Autokey creando:
- una risorsa cartella
- Un progetto che conterrà le tue chiavi
- un agente di servizio che agisce come assistente per la gestione delle chiavi
- un progetto che ospiterà le tue risorse protette
- Set di dati BigQuery, dischi rigidi permanenti e bucket Cloud Storage criptati con la chiave automatica Cloud KMS
Che cosa ti serve
- Organizzazione Google Cloud
- Per completare questo lab, il tuo principale 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 Linux di base
2. Crea una cartella
Le cartelle sono nodi nella gerarchia delle risorse della piattaforma Cloud. 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 delle risorse 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-Cartella"
- In Destinazione, fai clic su Sfoglia e seleziona la risorsa o la cartella dell'organizzazione in cui vuoi creare la nuova cartella.
- Fai clic su Crea.
3. Crea 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, da criptare con Cloud KMS Autokey. Se tenti di creare risorse protette da Autokey nel progetto della chiave, Autokey rifiuta la richiesta di una nuova chiave. Per creare il progetto di 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 "Cartella-chiave automatica" .
- Nella finestra Nuovo progetto che viene visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione applicabile. Per questo lab, considera "Autokey Encrypted Resources"
- Nella casella Posizione, seleziona la cartella "Autokey-Folder". Questa risorsa sarà l'entità padre gerarchica del nuovo progetto. Le impostazioni dovrebbero essere simili a questa:
- Copia l'ID progetto (nell'esempio riportato sopra l'ID progetto è "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.
- Dopo aver attivato Cloud Shell, salva l'ID progetto Autokey come variabile eseguendo questo comando:
export RESOURCE_PROJECT=<paste your Resource Project ID>
Perché il mio ID progetto è "key-management-433319" il comando ha questo aspetto:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- Esegui questo comando per eseguire i comandi dal progetto principale:
gcloud config set project $RESOURCE_PROJECT
Quando richiesto, autorizza Cloud Shell facendo clic su "Autorizza".
- Poiché questo progetto conterrà risorse, dobbiamo attivare le API per i servizi che Autokey proteggerà. Esegui questo comando:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. Creare un progetto principale
Ti consigliamo di creare un progetto contenente le risorse Cloud KMS create da Autokey. In futuro, lo chiameremo "progetto principale". Il progetto chiave può essere creato all'interno della stessa cartella in cui prevedi di abilitare Autokey. Non devi creare altre risorse all'interno del progetto chiave. Se nel progetto della chiave tenti di creare risorse protette da Autokey, Autokey rifiuta la richiesta di una nuova chiave. Per creare il progetto principale:
- 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 "Cartella-chiave automatica" .
- Nella finestra Nuovo progetto che viene visualizzata, inserisci un nome per il progetto e seleziona un account di fatturazione applicabile. Per questo lab, considera "Gestione chiavi"
- Nella casella Percorso, seleziona la "Cartella-chiave automatica" . Questa risorsa sarà l'elemento padre gerarchico del nuovo progetto. Le impostazioni dovrebbero essere simili a questa:
- Copia l'ID progetto (nell'esempio riportato sopra è "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.
- Dopo aver attivato Cloud Shell, salva l'ID progetto Autokey come variabile eseguendo questo comando:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
Perché il mio ID progetto è "key-management-433319" il comando ha questo aspetto:
export AUTOKEY_PROJECT=key-management-433319
- Esegui questo comando per eseguire i comandi dal progetto principale:
gcloud config set project $AUTOKEY_PROJECT
Quando richiesto, autorizza Cloud Shell facendo clic su "Autorizza".
- Abilita l'API Cloud KMS eseguendo questo 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 dell'entità come variabile eseguendo questo comando:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- Concedi agli utenti amministratori di Cloud KMS le autorizzazioni di amministratore di Cloud KMS nel progetto chiave
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 le chiavi e applica le associazioni dei criteri IAM durante la creazione delle risorse per conto di un amministratore Cloud KMS. Per poter creare e assegnare chiavi, l'agente di servizio Cloud KMS richiede le autorizzazioni di amministratore di 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: questo è il 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 all'agente di servizio:
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'associazione di criteri IAM per poter visualizzare l'utilizzo delle chiavi Cloud KMS. L'utilizzo della chiave fornisce informazioni per ogni chiave, tra cui il numero di risorse, progetti e prodotti Google Cloud univoci protetti che la utilizzano. 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 account di servizio Cloud KMS il ruolo Agente di servizio organizzazione Cloud KMS (cloudkms.orgServiceAgent) per la risorsa 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 Visualizzatore risorse protette di Cloud KMS per la tua risorsa organizzazione a chiunque abbia bisogno di visualizzare i dettagli di utilizzo della chiave.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. Concedi i ruoli utente di 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 all'agente di servizio Cloud KMS durante la creazione di risorse nella cartella o nel progetto.
Il primo passaggio per concedere il ruolo è salvare l'ID cartella.
- Per trovare l'ID cartella, utilizza il comando seguente:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Copia l'ID cartella: questa è 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 della chiave come utente Autokey. Tuttavia, nei casi d'uso di produzione e nelle organizzazioni con più di un privato, 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 su 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. L'abilitazione di Autokey in questa cartella abilita Autokey 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 abilitare Autokey. Si tratta della stessa cartella che hai creato in precedenza e contiene il progetto di risorsa 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. Creare risorse protette utilizzando Cloud KMS Autokey
Dischi permanenti di Compute Engine
Autokey crea una nuova chiave per ogni disco, immagine e immagine macchina nella stessa località della risorsa che viene creata.
Per creare un disco:
- 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 e poi 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 protette di istanze VM, immagini e immagini macchina.
Bucket Google Cloud Storage
Autokey crea una nuova chiave nella stessa posizione del bucket. La chiave creata da Autokey è 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 a livello globale.
- Scegli una località dei dati.
- Vai alla sezione "Scegli come proteggere i dati degli oggetti" sezione
- 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 e poi 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 in cui viene spiegato che "L'accesso pubblico verrà vietato" fai clic su Conferma.
Set di dati BigQuery
Per ogni nuovo set di dati, Autokey crea una nuova chiave, nella stessa posizione della risorsa stessa, 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 dalla chiave predefinita del set di dati, puoi creare manualmente una 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
- Impostare Cloud Shell per eseguire comandi dal progetto della risorsa
gcloud config set project $RESOURCE_PROJECT
- Esegui il seguente comando per salvare il numero del progetto come variabile denominata RESOURCE_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- Concedi a te stesso il ruolo Utente BigQuery
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
Ora che disponi del 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 ad arrivare a 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. Esplora le tue chiavi
In questo passaggio, esaminerai 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 del 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 utilizzo. Scopri altre limitazioni qui.
- Nella console Google Cloud, vai alla pagina Inventario chiavi.
- (Facoltativo) Per filtrare l'elenco di chiavi, inserisci i termini di ricerca nella casella del filtro filter_list e premi Invio. Ad esempio, puoi filtrare in base alla località, al keyring, allo stato o ad altre proprietà delle chiavi.
- Fai clic sul nome della chiave per la quale vuoi visualizzare le informazioni sull'utilizzo.
- Fai clic su "Panoramica". Tieni presente che viene creata una chiave per ogni risorsa creata. Ogni nome della chiave include il nome della risorsa protetta dalla chiave (ad es. "compute-disk" o "storage-bucket"). Cloud KMS Autokey garantisce che la rotazione di ogni chiave sia pianificata 365 giorni dopo la creazione e che a ogni chiave sia assegnato il ruolo "HSM" livello di protezione.
- Fai clic sulla scheda Monitoraggio utilizzo. Tieni presente il livello di informazioni presentato: qui viene mostrata ogni risorsa criptata dalla chiave, insieme al progetto, alla posizione e alla data di creazione.
- (Facoltativo) Per filtrare l'elenco delle risorse protette, inserisci i termini di ricerca nella casella Filtro filter_list 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 con crittografia Autokey
- Crea un'istanza Google Compute Engine (GCE)
- Collega il disco permanente protetto da Autokey alla tua istanza GCE
- Caricare i dati nel set di dati BigQuery
- Caricare oggetti in un bucket Google Cloud Storage
- Carica i dati di Google Cloud Storage in BigQuery