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 mentre vengono create le risorse, basandosi sulle autorizzazioni delegati anziché sugli amministratori di Cloud KMS.
L'utilizzo di chiavi generate da Autokey può aiutarti ad allinearti in modo coerente agli standard di settore e alle pratiche 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 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 agisca da assistente per la gestione delle chiavi
- un progetto che ospiterà le tue risorse protette
- Set di dati, dischi permanenti e bucket Cloud Storage di BigQuery criptati con Cloud KMS Autokey
Che cosa ti serve
- Organizzazione Google Cloud
- Per completare questo lab, l'entità Google Cloud deve avere i seguenti ruoli a livello di organizzazione:
- Amministratore Autokey Cloud KMS (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 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 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, quindi seleziona la risorsa o la cartella dell'organizzazione in cui 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 Percorso, seleziona la "Cartella-chiave automatica" . Questa risorsa sarà l'entità padre gerarchica di un nuovo progetto. Le impostazioni dovrebbero essere simili alla seguente:
- Copia l'ID progetto. Nell'esempio 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
- Una volta 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 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
Consigliamo di creare un progetto che contenga le risorse Cloud KMS create da Autokey. Verrà indicato come "progetto chiave" in futuro. 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 tenti di creare risorse protette da Autokey nel progetto della chiave, Autokey rifiuta la richiesta di una nuova chiave. Per creare il progetto 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 "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, prendi in considerazione "Gestione delle chiavi"
- Nella casella Percorso, seleziona la "Cartella-chiave automatica" . Questa risorsa sarà l'elemento padre gerarchico del nuovo progetto. Le impostazioni dovrebbero essere simili alla seguente:
- Copia l'ID progetto. Nell'esempio sopra, l'ID progetto è "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 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 tuo progetto chiave:
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: 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 di 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 in modo da poter visualizzare l'utilizzo della chiave Cloud KMS. L'utilizzo della chiave fornisce informazioni per ogni chiave, incluso il numero di risorse protette, progetti e prodotti Google Cloud univoci 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 ruoli utente ad Autokey
Prima che i tuoi 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 in quella cartella o 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 una persona, l'amministratore della chiave dovrebbe 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 sulla cartella. La pagina Controlli KMS dovrebbe essere simile alla seguente:
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, completa questi passaggi:
- Nella console Google Cloud, vai alla pagina Disco.
- 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 protette di istanze VM, immagini e immagini macchina.
Bucket Google Cloud Storage
Autokey crea una nuova chiave nella stessa località 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 dalla chiave predefinita del bucket, puoi creare manualmente una CMEK e utilizzarla quando crei l'oggetto.
- Nella console Google Cloud, vai alla pagina Crea un bucket.
- Scegli un nome permanente univoco globale.
- Scegli una località per i 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 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
- Imposta Cloud Shell per l'esecuzione dei comandi dal progetto di risorsa
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 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. Scopri le tue chiavi
In questo passaggio esplorerai le chiavi Cloud KMS Autokey create per tuo conto visitando la pagina Inventario delle chiavi. La pagina Inventario chiavi fornisce informazioni complete sulle chiavi di crittografia presenti nel 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 di chiavi, inserisci i termini di ricerca nella casella Filtra e premi Invio. Ad esempio, puoi filtrare per località, keyring, stato o 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. Il nome di ogni chiave include il nome della risorsa che la chiave protegge (ad es. "compute-disk" o "storage-bucket"). Cloud KMS Autokey assicura che ogni chiave sia pianificata per la rotazione 365 giorni dopo la creazione e che a ogni chiave sia assegnato il ruolo "HSM" livello di protezione.
- Fai clic sulla scheda Monitoraggio utilizzo. Osserva il livello delle informazioni presentate: ogni risorsa che la chiave sta crittografando viene mostrata qui, insieme al progetto, alla località e alla data di creazione.
- (Facoltativo) Per filtrare l'elenco delle risorse protette, inserisci i termini di ricerca nella casella Filtra filtro e premi Invio.
11. Complimenti
Complimenti, hai creato correttamente le risorse Google Cloud e le hai criptate on demand automaticamente con Cloud KMS Autokey.
Ora conosci i passaggi chiave necessari per configurare Autokey e utilizzarlo per criptare automaticamente le tue risorse con le chiavi Cloud KMS.
12. Passaggi successivi
Caricare i dati nelle risorse criptate con Autokey
- Crea un'istanza di 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