Per impostazione predefinita, Cloud Tasks cripta i contenuti inattivi dei clienti. Cloud Tasks gestisce la crittografia per conto tuo senza che tu debba fare altro. Questa opzione è denominata crittografia predefinita di Google.
Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui Cloud Tasks. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi inoltre visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.
Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse Cloud Tasks è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
Cosa viene protetto con CMEK
Quando abiliti CMEK in Cloud Tasks, la abiliti per una regione. Se attivato, il corpo e l'intestazione delle attività create in quella regione vengono protetti con la tua chiave quando sono a riposo. Se un'attività è stata creata mentre CMEK era abilitata e la chiave viene resa inattiva in un secondo momento (disattivando o eliminando la chiave oppure disattivando CMEK), l'attività viene criptata con la chiave, ma non può essere eseguita.
Le attività non sono protette con CMEK nei seguenti casi:
- L'attività è stata creata prima dell'attivazione di CMEK
- L'attività non si trova nella regione per cui è abilitata CMEK
- L'attività è interessata da una limitazione di compatibilità
Limitazioni di compatibilità
L'integrazione di Cloud Tasks con CMEK non supporta quanto segue:
Versioni di
google-gaxprecedenti a4.0.0: il pacchetto NPMgoogle-gaxper Node.js ha un supporto limitato nelle versioni precedenti a4.0.0. Per queste versioni, CMEK è supportata solo nella regioneus-central1. Anche se hai solo attività in quella regione, ti consigliamo di eseguire l'upgrade alla versione4.0.0o successive.Servizio Task Queue integrato di App Engine: le attività create utilizzando il servizio Task Queue integrato di App Engine non sono protette da CMEK, anche se si trovano in una regione per cui è abilitata. L'abilitazione di CMEK non impedisce la creazione o l'operazione (ad esempio l'esecuzione o l'eliminazione) di queste attività.
Code pull: se abiliti CMEK, puoi creare ed eseguire attività nelle code pull, ma queste attività non sono protette da CMEK. Le code pull sono insolite. Per verificare se la coda è una coda in modalità pull, esegui questo comando gcloud CLI nel terminale:
gcloud tasks queues describe QUEUE_NAME
Sostituisci
QUEUE_NAMEcon il nome della coda.Se il
typeelencato èpull, la tua coda è una coda in modalità pull. Se iltypeelencato èpush, questa limitazione non influisce sulle attività in coda.Routing a livello di coda:quando CMEK è abilitata, non puoi applicare il routing a livello di coda. Inoltre, se è abilitato il routing a livello di coda, non puoi attivare CMEK. Per verificare se hai abilitato il routing a livello di coda:
Esegui questo comando gcloud CLI nel terminale:
Sostituiscigcloud tasks queues describe QUEUE_NAME
QUEUE_NAMEcon il nome della coda.Nell'output, cerca il campo
httpTargete controlla se è stato impostatouriOverride. Se viene specificato unhost, la coda ha il routing a livello di coda abilitato e non è compatibile con CMEK. Per rimuovere il routing a livello di coda, vedi Aggiornare o rimuovere il routing a livello di coda. Se l'output non mostrauriOverridecon unhostspecificato, la tua coda non utilizza il routing a livello di coda.
TTL attività:quando CMEK è abilitato, non puoi impostare
task_ttlsu più di 60 giorni. Inoltre, se hai impostato un valore ditask_ttlsuperiore a 60 giorni, non puoi abilitare CMEK.
Prima di iniziare
Prima di utilizzare CMEK in Cloud Tasks, completa i seguenti passaggi:
Abilita le API.
Console
-
Abilita le API Cloud KMS e Cloud Tasks.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Imposta il progetto predefinito. Deve essere il progetto che contiene le risorse Cloud Tasks che vuoi proteggere con CMEK. Se devi eseguire un comando in un progetto diverso, ad esempio il progetto che contiene le risorse Cloud KMS, questa pagina includerà il flag
--projectnel comando gcloud CLI e ti indicherà quale progetto specificare.gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon l'ID del progetto che contiene le risorse Cloud Tasks.Aggiorna i componenti di
gcloud.gcloud components update
Abilita le API Cloud KMS e Cloud Tasks per il progetto in cui verranno archiviate le chiavi di crittografia.
gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com \ --project=PROJECT_ID
Sostituisci
PROJECT_IDcon l'ID del progetto che archivierà le tue chiavi di crittografia. Potrebbe trattarsi dello stesso progetto delle risorse Cloud Tasks, ma per limitare l'accesso alle chiavi Cloud KMS, valuta la possibilità di configurare Cloud KMS in un progetto separato.
-
Cloud KMS genera Cloud Audit Logs quando le chiavi vengono attivate, disattivate o utilizzate dalle risorse Cloud Tasks per criptare e decriptare i dati. Assicurati che il logging sia abilitato per l'API Cloud KMS nel tuo progetto e di aver deciso quali autorizzazioni e ruoli specifici per il logging si applicano al tuo caso d'uso. Per saperne di più, consulta Informazioni sui log di controllo di Cloud KMS.
Ottieni i ruoli Identity and Access Management.
Per ottenere le autorizzazioni necessarie per utilizzare CMEK con Cloud Tasks, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
-
Attiva o disattiva CMEK:
roles/cloudtasks.admin -
Visualizza la chiave in uso:
roles/cloudtasks.viewer
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Attiva o disattiva CMEK:
Crea un keyring e una chiave Cloud KMS
Se hai già un keyring nella stessa regione delle tue risorse Cloud Tasks e vuoi utilizzare quella chiave e quel keyring, salta questa sezione. In caso contrario, segui queste istruzioni per creare la chiave e la chiave automatizzata Cloud KMS.
-
Il portachiavi deve trovarsi nella regione che contiene le risorse Cloud Tasks che vuoi proteggere. Per ulteriori informazioni, consulta Località Cloud KMS e Località Cloud Tasks.
Il keyring e le risorse Cloud Tasks protette da CMEK possono trovarsi nello stesso progetto, ma per limitare l'accesso alle chiavi Cloud KMS, valuta la possibilità di configurare Cloud KMS in un progetto separato.
Recupera l'ID di una chiave Cloud KMS
L'ID risorsa per una chiave Cloud KMS è obbligatorio quando abiliti CMEK per Cloud Tasks.
Console
Nella console Google Cloud , vai alla pagina Gestione chiavi e seleziona la scheda Inventario chiavi.
Per la chiave di cui stai recuperando l'ID risorsa, fai clic su more_vert Azioni.
Fai clic su Copia nome risorsa.
L'ID risorsa della chiave viene copiato negli appunti. Il formato è simile al seguente:
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
gcloud
Elenca tutte le chiavi di un determinato keyring:
gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID
Sostituisci quanto segue:
KEY_RING: il nome delle chiavi automatizzateLOCATION: la regione delle chiavi automatizzatePROJECT_ID: l'ID del progetto che contiene il portachiavi
L'output include l'ID chiave per ogni chiave. Ad esempio:
NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Concedi all'agente di servizio Cloud Tasks l'accesso alla chiave
Devi concedere al service agent Cloud Tasks il ruolo Cloud KMS CryptoKey Encrypter/Decrypter Identity and Access Management (IAM) in modo che possa accedere alla chiave Cloud KMS:
Console
Nella console Google Cloud , vai alla pagina IAM (Identity and Access Management).