Utilizzo delle chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Cloud Tasks cripta i dati archiviati inattivi. Google Cloud gestisce questa crittografia predefinita per conto tuo senza che tu debba fare altro.

Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per Cloud Tasks. L'attività e i dati associati (corpo e intestazione) in sono protetti tramite una chiave di crittografia a cui solo tu puoi accedere. che puoi controllare e gestire con Cloud Key Management Service (Cloud KMS).

Che cosa viene protetto con CMEK

Quando abiliti CMEK in Cloud Tasks, la abiliti per una regione. Se questa opzione è attivata, il corpo e l'intestazione delle attività create in quella regione sono protetti con la tua chiave quando non sono in uso. Se è stata creata un'attività mentre era abilitata la CMEK, e la chiave viene in seguito disattivata (disattivando o eliminando la chiave oppure la disattivazione di CMEK, l'attività è criptata con la tua 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 la quale è abilitata CMEK
  • L'attività è interessata da una limitazione di compatibilità

Limitazioni di compatibilità

L'integrazione di Cloud Tasks con CMEK non supporta seguenti:

  • google-gax versioni seguenti 4.0.0: il pacchetto di Gestione dei partner di rete google-gax per Node.js ha un supporto limitato al momento versioni precedenti a 4.0.0. Per queste versioni, CMEK è supportata solo nel regione us-central1. Anche se hai attività solo in quella regione, ti consigliamo di eseguire l'upgrade alla versione 4.0.0 o successiva.

  • Servizio Taskqueue integrato di App Engine: attività create utilizzando Il servizio Taskqueue integrato di App Engine non è protetto da CMEK, anche se anche se si trovano in una regione per la quale è abilitata. L'attivazione di CMEK non impedisce la creazione o l'operazione (ad esempio, esecuzione o eliminazione) di queste attività.

  • Codelle pull: se attivi CMEK, puoi creare ed eseguire attività nelle code pull, ma queste attività non sono protette da CMEK. Le code pull sono rare. Per verificare se la coda è una coda pull, esegui il seguente comando gcloud CLI nel terminale:

    gcloud tasks queues describe QUEUE_NAME

    Sostituisci QUEUE_NAME con il nome della coda.

    Se il valore type indicato è pull, la coda è una coda pull. Se type indicato è push, questa limitazione non influisce sulle attività in coda.

  • Routing a livello di coda:se la CMEK è abilitata, non puoi applicare la configurazione routing a livello di coda. Inoltre, se il routing a livello di coda è attivo, non puoi attivare CMEK. Per verificare se hai attivato il routing a livello di coda:

    1. Esegui questo comando gcloud CLI nel tuo terminale:

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

    2. Nell'output, cerca il campo httpTarget e verifica se uriOverride impostato. Se è specificato un host, per la coda è attivo il routing a livello di coda e non è compatibile con CMEK. Per rimuovere 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 coda non utilizza il routing a livello di coda.

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

Prima di iniziare

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

  1. Abilita le API.

    Console

    1. Enable the Cloud KMS and Cloud Tasks APIs.

      Enable the APIs

    gcloud

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    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 contenente le risorse Cloud KMS, questa pagina includi il flag --project nel comando gcloud CLI indicare quale progetto specificare.

      gcloud config set project PROJECT_ID

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

    3. Aggiorna i componenti di gcloud.

      gcloud components update

    4. Abilita le API Cloud KMS e Cloud Tasks per il progetto che memorizzerà 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 memorizzerà le tue chiavi di crittografia. Potrebbe essere lo stesso progetto delle tue risorse Cloud Tasks, ma per limitare l'accesso alle tue chiavi Cloud KMS, ti consigliamo di configurare Cloud KMS in un progetto separato.

  2. Cloud KMS produce Cloud Audit Logs quando le chiavi sono abilitate, disabilitato o utilizzato dalle risorse Cloud Tasks per criptare e decriptare e i dati di Google Cloud. Assicurati che il logging sia abilitato per l'API Cloud KMS nel tuo progetto e che tu abbia deciso quali autorizzazioni e ruoli specifici per il logging si applicano al tuo caso d'uso. Per maggiori informazioni, consulta le informazioni sui log di controllo di Cloud KMS.

  3. Ottenere 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 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 Gestire l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

Crea un keyring e una chiave di Cloud KMS

Se hai già un keyring nella stessa regione delle tue risorse Cloud Tasks e vuoi utilizzare questa chiave e questo keyring, salta questa sezione. In caso contrario, segui queste istruzioni per creare il tuo Chiave e keyring di Cloud KMS.

  1. Crea un keyring.

  2. Crea una chiave per un keyring specificato.

Recupera l'ID per 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 delle chiavi e seleziona la scheda Inventario chiavi.

    Vai a Inventario principale

  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 per la chiave viene copiato negli appunti. Il suo formato è simile al seguente:

    projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

gcloud

  1. Elenca tutte le chiavi in un determinato keyring:

    gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID

    Sostituisci quanto segue:

    • KEY_RING: il nome del keyring
    • LOCATION: la regione del keyring
    • PROJECT_ID: l'ID del progetto che contiene il keyring

    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 l'agente di servizio Cloud Tasks il Autore crittografia/decrittografia CryptoKey Cloud KMS il ruolo Identity and Access Management (IAM) per poter accedere a Cloud KMS chiave:

Console

  1. Nella console Google Cloud, vai alla pagina Gestione dell'identità e dell'accesso.

    Vai a IAM

  2. Seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.

  3. Trova l'account di servizio Cloud Tasks digitando cloudtasks.iam.gserviceaccount.com nel filtro.

    L'account di servizio Cloud Tasks ha il formato service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com.

  4. Fai clic sull'icona a forma di matita Modifica amministratore.

  5. Nel riquadro che si apre, fai clic su Aggiungi un altro ruolo.

  6. Cerca e seleziona il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.

  7. Fai clic su Salva.

gcloud

gcloud kms keys add-iam-policy-binding KEY_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Sostituisci quanto segue:

  • KEY_ID: l'ID risorsa completo della chiave. Per istruzioni su come trovarlo, consulta Recupero dell'ID di una chiave Cloud KMS. Non includere un numero di versione della chiave. L'inclusione di un numero di versione della chiave può causare che il comando non funzioni correttamente.
  • PROJECT_NUMBER: il numero del tuo progetto Google Cloud. Puoi trovare il numero del progetto nella pagina Welcome della console Google Cloud o eseguendo il seguente comando:

    PROJECT=$(gcloud info --format='value(config.project)')
    gcloud projects describe ${PROJECT} --format="value(projectNumber)"

A condizione che l'agente di servizio abbia il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter, un'attività nella regione con CMEK abilitato può criptare e decriptare i propri dati utilizzando la chiave CMEK. Se revochi questo ruolo o se disattivi o distruggi la chiave CMEK, non potrai accedere ai dati. In questo documento, vedi Disabilita Cloud KMS.

Abilita CMEK per Cloud Tasks

Puoi abilitare CMEK utilizzando l'API o gcloud CLI. Per Cloud Tasks, la CMEK è abilitata per regione. Non è abilitato dalle singole attività. Quando viene abilitata la CMEK per una determinata regione in Cloud Tasks, tutte le attività nella regione sono protette da CMEK.

API

Puoi attivare CMEK chiamando il metodo Update CMEK config. La L'API Cloud Tasks fornisce il metodo Update CMEK config sia nella piattaforma REST e le API RPC:

gcloud

Per attivare CMEK utilizzando Google Cloud CLI, utilizza il seguente comando:

gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID

Sostituisci quanto segue:

  • LOCATION: la regione della risorsa Cloud Tasks
  • KEY_ID: l'ID risorsa completo della chiave. Per istruzioni su come trovarlo, consulta Recupero dell'ID di una chiave Cloud KMS. Non includere una chiave numero di versione. L'inclusione di un numero di versione della chiave potrebbe causare un errore di questo comando.

Per verificare che la chiave sia stata attivata correttamente, segui le istruzioni riportate nella sezione Identificare la chiave in uso.

Abilita per attività preesistenti

CMEK non protegge le attività create prima dell'attivazione di CMEK per Cloud Tasks. Per proteggere le attività preesistenti con CMEK:

  1. Attiva CMEK (vedi la sezione su come abilitare CMEK).
  2. Sostituisci le attività preesistenti. Esistono due metodi principali per farlo. Il modo migliore per farlo dipende da ciò che è importante per te:

    • Esecuzione continua: per garantire un'esecuzione continua ("almenoalmeno una volta" pubblicazione), puoi prima ricreare l'attività e poi eliminare quella preesistente dell'attività dopo aver verificato che la nuova attività funzioni come previsto. Ciò può comportare esecuzioni duplicate, perché sia la vecchia che la nuova attività potrebbero essere eliminare l'attività precedente.

    • Prevenzione dei duplicati: per evitare esecuzioni duplicate ("al massimo una volta" inviata), puoi prima eliminare la vecchia attività e poi ricrearla. Questo può causerà la perdita di esecuzioni, a causa del tempo trascorso tra l'eliminazione vecchia attività e creando quella nuova.

Identifica la chiave in uso

Per identificare la chiave CMEK in uso per le risorse Cloud Tasks, esegui il seguente comando gcloud CLI nel terminale:

gcloud tasks cmek-config describe --location=LOCATION

Sostituisci LOCATION con la regione delle tue risorse Cloud Tasks.

Se non viene visualizzato alcun output, significa che la CMEK non è configurata per la località specificata.

Disabilita CMEK per Cloud Tasks

Puoi disattivare CMEK utilizzando l'API o gcloud CLI. Per Cloud Tasks, CMEK è disabilitato per regione. Non è disattivato da singole attività. Quando CMEK è disabilitato per una determinata regione in Cloud Tasks, le attività in quella regione non sono protette da CMEK.

La disattivazione di CMEK influisce sulle attività create in futuro, non su quelle create nella passato:

  • Nuove attività: non sono protette da CMEK
  • Attività preesistenti:le attività create mentre la CMEK era abilitata rimangono attive è criptato e continua a essere eseguito finché la chiave Cloud KMS rimane attivo.

API

Puoi disattivare CMEK chiamando il metodo Update CMEK config e cancellando la chiave Cloud KMS sostituendola con una stringa vuota. L'API Cloud Tasks fornisce il metodo Update CMEK config sia nelle API REST sia nelle API RPC:

gcloud

Per disabilitare CMEK utilizzando Google Cloud CLI, utilizza il comando seguente:

gcloud tasks cmek-config update --location=LOCATION --clear-kms-key

Sostituisci quanto segue:

  • LOCATION: la regione della risorsa Cloud Tasks.

Rimuovi Cloud KMS

Se vuoi revocare l'accesso ai dati per le tue attività, puoi rimuovere di Cloud KMS. Puoi farlo in tre modi:

  • Disattiva la chiave di crittografia gestita dal cliente. La disattivazione di una chiave CMEK sospende l'accesso a tutti i dati protetti da quella versione della chiave mentre la chiave è disabilitata. Non puoi accedere alle attività né crearle con una chiave disabilitata. Tentativo di eseguire un'attività protetta da CMEK durante Se la chiave viene disabilitata, viene generato un errore UNKNOWN in Cloud Logging. Puoi riattivare la chiave in un secondo momento, se vuoi. Quando disattivi una chiave di crittografia gestita dal cliente, l'applicazione della modifica può richiedere fino a 5 minuti.

  • Distruggi la chiave di crittografia gestita dal cliente. L'eliminazione di una chiave CMEK sospende definitivamente l'accesso a tutti i dati protetto da quella versione della chiave. Non puoi accedere o creare attività con una chiave che è stata distrutta. Se un'attività è stata creata quando CMEK era attivato e la chiave viene successivamente eliminata, l'attività viene criptata con la chiave, ma non può essere eseguita. Se tenta di eseguire l'attività, Cloud Logging registra un errore UNKNOWN. Quando distruggendo una chiave di crittografia gestita dal cliente, la modifica.

  • Revoca il cloudkms.cryptoKeyEncrypterDecrypteril ruolo IAM Agente di servizio Cloud Tasks. Ciò influisce su tutte le attività nel progetto Google Cloud che supportano la crittografia utilizzando CMEK. Non puoi creare nuove attività integrate con CMEK o visualizzare risorse criptate con CMEK.

Anche se nessuna di queste operazioni garantisce la revoca immediata dell'accesso, in genere le modifiche all'IAM vengono applicate più rapidamente. Per ulteriori informazioni, consulta Coerenza delle risorse Cloud KMS e Propagazione della modifica di accesso.

Prezzi

Questa integrazione non comporta costi aggiuntivi oltre alle operazioni sulle chiavi, che vengono fatturate al tuo progetto Google Cloud. Per informazioni sui prezzi attuali, consulta Prezzi di Cloud KMS.