Utilizza le chiavi di crittografia gestite dal cliente

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-gax precedenti a 4.0.0: il pacchetto NPM google-gax per Node.js ha un supporto limitato nelle versioni precedenti a 4.0.0. Per queste versioni, CMEK è supportata solo nella regione us-central1. Anche se hai solo attività in quella regione, ti consigliamo di eseguire l'upgrade alla versione 4.0.0 o 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_NAME con il nome della coda.

    Se il type elencato è pull, la tua coda è una coda in modalità pull. Se il type elencato è 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:

    1. Esegui questo comando gcloud CLI nel terminale:

      gcloud tasks queues describe QUEUE_NAME
      Sostituisci QUEUE_NAME con il nome della coda.

    2. Nell'output, cerca il campo httpTarget e controlla se è stato impostato uriOverride. Se viene specificato un host, 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 mostra uriOverride con un host specificato, la tua coda non utilizza il routing a livello di coda.

  • TTL attività:quando CMEK è abilitato, non puoi impostare task_ttl su più di 60 giorni. Inoltre, se hai impostato un valore di task_ttl superiore a 60 giorni, non puoi abilitare CMEK.

Prima di iniziare

Prima di utilizzare CMEK in Cloud Tasks, completa i seguenti passaggi:

  1. Abilita le API.

    Console

    1. 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.

      Abilita le API

    gcloud

    1. Nella console Google Cloud , attiva Cloud Shell.

      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.

    2. 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 --project nel comando gcloud CLI e ti indicherà quale progetto specificare.

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con l'ID del progetto che contiene le risorse Cloud Tasks.

    3. Aggiorna i componenti di gcloud.

      gcloud components update

    4. 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_ID con 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.

  2. 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.

  3. 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.

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.

  1. Crea chiavi automatizzate.

  2. Crea una chiave per un keyring specificato.

Recupera l'ID di una chiave Cloud KMS

L'ID risorsa per una chiave Cloud KMS è obbligatorio quando abiliti CMEK per Cloud Tasks.

Console

  1. Nella console Google Cloud , vai alla pagina Gestione chiavi e seleziona la scheda Inventario chiavi.

    Vai a Inventario delle chiavi

  2. Per la chiave di cui stai recuperando l'ID risorsa, fai clic su Azioni.

  3. 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

  1. 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 automatizzate
    • LOCATION: la regione delle chiavi automatizzate
    • PROJECT_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

  1. Nella console Google Cloud , vai alla pagina IAM (Identity and Access Management).