Per impostazione predefinita, Workflows cripta i contenuti inattivi dei clienti. Workflows 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, inclusi Workflows. 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 monitorare l'utilizzo delle chiavi, visualizzare gli audit log 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 CMEK, l'esperienza di accesso alle risorse di Workflows è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
Puoi proteggere il tuo flusso di lavoro e i dati associati at-rest utilizzando una chiave di crittografia a cui solo tu puoi accedere e che puoi controllare e gestire utilizzando Cloud KMS.
Cosa viene protetto con CMEK
Quando esegui il deployment di un flusso di lavoro, puoi specificare una chiave Cloud KMS. Questa chiave viene utilizzata per criptare il flusso di lavoro e le relative esecuzioni:
- Un workflow richiede un file di origine che contenga una definizione di workflow valida. Questo file di origine è criptato utilizzando la chiave. 
- Un'esecuzione del flusso di lavoro esegue la definizione attuale del flusso di lavoro (una specifica revisione del flusso di lavoro). Il flusso di lavoro compilato, nonché tutti i dati di input, output e runtime di esecuzione archiviati, vengono criptati utilizzando la chiave associata alla revisione del flusso di lavoro al momento del deployment. Ciò include argomenti di esecuzione, risultati, errori ed eccezioni; forniti come eventi Eventarc; e richieste e risposte di callback e HTTP. 
Prima di iniziare
Prima di utilizzare CMEK in Workflows, completa i seguenti passaggi:
- Abilita le API. - Console- 
  
   
   
     
   
  
 
   
 
 
  
  
    
      Enable the Cloud KMS and Workflows APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, 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. 
- Aggiorna i componenti di gcloud.gcloud components update 
- Abilita le API Cloud KMS e Workflows per il progetto che archivierà le chiavi di crittografia.
gcloud services enable cloudkms.googleapis.com workflows.googleapis.com 
 - Cloud KMS genera Cloud Audit Logs quando le chiavi vengono attivate, disattivate o utilizzate dalle risorse Workflows per criptare e decriptare i dati. Assicurati che la registrazione sia abilitata per l'API Cloud KMS nel tuo progetto e di aver deciso quali autorizzazioni e ruoli specifici per la registrazione si applicano al tuo caso d'uso. Per ulteriori informazioni, consulta Informazioni sui log di controllo di Cloud KMS. - Crea un keyring e una chiave Cloud KMS- Puoi creare un nuovo portachiavi o utilizzarne uno esistente. All'interno del keyring, puoi aggiungere una nuova chiave o utilizzarne una esistente. - Recupera l'ID risorsa per una chiave Cloud KMS- L'ID risorsa per una chiave Cloud KMS è obbligatorio quando abiliti CMEK per un flusso di lavoro. In questo documento, vedi Abilitare CMEK per un flusso di lavoro. - Console- Nella console Google Cloud , vai alla pagina Gestione delle chiavi. 
- Fai clic sul keyring che contiene la chiave. 
- Per la chiave di cui stai recuperando l'ID risorsa, fai clic su more_vert Altro. 
- 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 
- Una chiave contiene zero o più versioni della chiave. L'ID risorsa di una versione della chiave è l'ID chiave, più una barra ( - /), più l'ID versione. Per elencare tutte le versioni di una chiave:- Fai clic sul nome della chiave.
- Per una versione specifica, fai clic su Altro.
- Fai clic su Copia nome risorsa.
 
 - gcloud- Elenca tutte le chiavi di un determinato keyring: - gcloud kms keys list --keyring RING_NAME --location LOCATION - Sostituisci quanto segue: - RING_NAME: il nome del keyring
- LOCATION: la regione del portachiavi
 - L'output include l'ID risorsa per ogni chiave. Ad esempio: - NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME 
- Una chiave ha zero o più versioni. L'ID risorsa di una versione della chiave è l'ID chiave, più una barra ( - /), più l'ID versione. Elenca tutte le versioni di una chiave:- gcloud kms keys versions list --location LOCATION --keyring RING_NAME --key KEY_NAME - L'output include l'ID risorsa per ogni versione della chiave. Ad esempio: - NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/2 
 - Concedi all'agente di servizio Workflows l'accesso alla chiave- Devi concedere all'agente di servizio Workflows il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS di Identity and Access Management (IAM) in modo che possa accedere alla chiave Cloud KMS: - Console- Quando abiliti CMEK per un flusso di lavoro tramite la console, ti viene chiesto di concedere il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS al service account. Per saperne di più, consulta la sezione Abilitare CMEK per un flusso di lavoro di questo documento. - gcloud- gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring RING_NAME \ --location LOCATION \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter - Sostituisci quanto segue: - KEY_NAME: il nome della chiave. Ad esempio,- my-key.
- RING_NAME: il nome del portachiavi. Ad esempio,- my-keyring.
- LOCATION: la posizione della chiave. Ad esempio,- us-central1.
- PROJECT_NUMBER: il tuo Google Cloud numero di progetto. Puoi trovare il numero di progetto nella pagina Benvenuto della console Google Cloud o eseguendo questo comando:- export PROJECT=$(gcloud info --format='value(config.project)') gcloud projects describe ${PROJECT} --format="value(projectNumber)" 
 - Se l'agente di servizio ha il ruolo - roles/cloudkms.cryptoKeyEncrypterDecrypter, un workflow nel tuo progetto può criptare e decriptare i suoi dati utilizzando la chiave CMEK. Se revochi questo ruolo o se disattivi o distruggi la chiave CMEK, non è possibile accedere a questi dati. In questo documento, vedi Disattivare Cloud KMS.- Abilitare CMEK per un flusso di lavoro- Quando crei un flusso di lavoro o lo aggiorni in un secondo momento, puoi specificare la chiave Cloud KMS che il flusso di lavoro deve utilizzare per la crittografia dei dati. - Console- Nella Google Cloud console, vai alla pagina Workflows. 
- Fai clic sul nome del flusso di lavoro da aggiornare. - Viene visualizzata la pagina Dettagli workflow. 
- Fai clic su Modifica. 
- Seleziona Chiave Cloud KMS. 
- Seleziona un tipo di chiave. - Puoi gestire le chiavi manualmente oppure utilizzare Autokey, che ti consente di generare portachiavi e chiavi on demand. Se l'opzione Autokey è disattivata, significa che non è ancora integrata nel tipo di risorsa attuale. 
- Nell'elenco Seleziona una chiave Cloud KMS, seleziona o filtra una chiave Cloud KMS. 
- (Facoltativo) Per inserire manualmente il nome della risorsa della chiave, nell'elenco Seleziona una chiave gestita dal cliente, fai clic su Inserisci chiave manualmente e inserisci il nome della risorsa della chiave nel formato specificato. 
- Se richiesto, concedi il ruolo - cloudkms.cyptoKeyEncrypterDecrypterall'account di servizio Workflows con il ruolo- workflows.serviceAgent.
- Fai clic su Avanti. 
- Per salvare le modifiche e implementare il flusso di lavoro aggiornato, fai clic su Implementa. 
 - gcloud- gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --kms-key=KEY \ --location LOCATION \ --service-account=SERVICE_ACCOUNT - Sostituisci quanto segue: - WORKFLOW_NAME: il nome del flusso di lavoro
- SOURCE_FILE: il file di origine del workflow con un'estensione- yamlper un file YAML o con un'estensione- jsonper un file JSON; ad esempio,- myWorkflow.yaml.
- KEY: l'ID risorsa della chiave nel formato- projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Puoi recuperare l'ID chiave.
- LOCATION: la posizione del flusso di lavoro
- SERVICE_ACCOUNT: il account di servizio che il flusso di lavoro utilizzerà per accedere ad altri servizi Google Cloud ; ad esempio,- SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com. Ti consigliamo vivamente di utilizzare unaccount di serviziot con i privilegi minimi necessari per accedere alle risorse richieste. Se lasciato vuoto, viene utilizzato il account di servizio predefinito. Per ulteriori informazioni, vedi Concedi l'autorizzazione dei workflow per l'accesso alle Google Cloud risorse.
 - Tieni presente quanto segue: - Le revisioni e le esecuzioni del flusso di lavoro vengono criptate con la chiave specificata al momento del deployment; le risorse criptate in precedenza con una chiave precedente rimangono criptate con quella chiave precedente. Se un flusso di lavoro viene modificato successivamente e viene specificata una nuova chiave, la revisione del flusso di lavoro viene criptata con la nuova chiave e tutte le esecuzioni successive utilizzeranno la nuova chiave.
- Le revisioni e le esecuzioni del flusso di lavoro criptate non CMEK precedenti rimangono non criptate.
- Se disabiliti CMEK per una revisione del flusso di lavoro, le esecuzioni successive vengono create senza la crittografia CMEK. In questo documento, vedi Disattivare CMEK per un flusso di lavoro. Le revisioni e le esecuzioni del flusso di lavoro esistenti rimangono criptate con le chiavi con cui sono state criptate in precedenza.
 - Verifica l'integrazione di Cloud KMS- Puoi verificare l'integrazione di CMEK visualizzando i metadati di un flusso di lavoro. - Console- Nella Google Cloud console, vai alla pagina Workflows. 
- Fai clic sul nome del flusso di lavoro che vuoi verificare. - Viene visualizzata la pagina Dettagli workflow. 
- Fai clic sulla scheda Dettagli. - Il valore Crittografia mostra l'ID risorsa della chiave Cloud KMS utilizzata per proteggere il flusso di lavoro e la sua esecuzione. 
 - gcloud- gcloud workflows describe WORKFLOW_NAME \ --location=LOCATION - L'output dovrebbe essere simile al seguente: - createTime: '2022-08-10T19:57:58.233177709Z' cryptoKeyName: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_NAME/locations/LOCATION/workflows/WORKFLOW_NAME revisionCreateTime: '2022-11-18T19:44:04.933633237Z' revisionId: 000009-8be serviceAccount: projects/PROJECT_NAME/serviceAccounts/SA_NAME@PROJECT_NAME.iam.gserviceaccount.com sourceContents: [...] state: ACTIVE updateTime: '2022-11-18T19:44:05.171793128Z' - Il valore - cryptokeyNameè l'ID risorsa della chiave Cloud KMS utilizzata per proteggere il flusso di lavoro e la sua esecuzione.- Disattivare CMEK per un flusso di lavoro- Puoi disattivare CMEK per un flusso di lavoro in modo che non utilizzi più la chiave Cloud KMS associata. - Console- Nella Google Cloud console, vai alla pagina Workflows. 
- Fai clic sul nome del flusso di lavoro da aggiornare. - Viene visualizzata la pagina Dettagli workflow. 
- Fai clic su Modifica. 
- Per deselezionare il pulsante di opzione Chiave Cloud KMS, seleziona Google-managed encryption key. 
- Fai clic su Avanti. 
- Per salvare le modifiche e implementare il flusso di lavoro aggiornato, fai clic su Implementa. 
 - gcloud- gcloud workflows deploy WORKFLOW_NAME \ --source=SOURCE_FILE \ --clear-kms-key \ --service-account=SERVICE_ACCOUNT - In questo modo CMEK viene disattivata per la revisione del flusso di lavoro corrente e le esecuzioni successive vengono create senza la crittografia CMEK. Le revisioni e le esecuzioni del flusso di lavoro esistenti rimangono criptate con le chiavi con cui sono state criptate in precedenza. - Disabilita Cloud KMS- Se vuoi revocare l'accesso ai dati al tuo flusso di lavoro o alle esecuzioni del flusso di lavoro, puoi eseguire una delle seguenti operazioni per disattivare Cloud KMS: - Disattiva o elimina la versione della chiave primaria della chiave di crittografia gestita dal cliente. La disattivazione di una versione della chiave CMEK sospende l'accesso a tutti i dati protetti da quella versione della chiave. La distruzione di una versione della chiave è la controparte permanente di questa azione. Entrambi influiscono solo sui workflow e sulle esecuzioni dei workflow associati alla chiave specifica. Non puoi creare nuove esecuzioni o visualizzare le risorse associate alla chiave disattivata o eliminata. Tutte le esecuzioni attive non andranno a buon fine e verrà visualizzato un messaggio di errore corrispondente. 
- Revoca il ruolo IAM - cloudkms.cryptoKeyEncrypterDecrypterdall'agente di servizio Workflows. Ciò influisce su tutti i flussi di lavoro nel progettoGoogle Cloud che supportano la crittografia utilizzando CMEK. Non puoi creare nuovi flussi di lavoro ed esecuzioni integrati con CMEK o visualizzare risorse criptate con CMEK. Qualsiasi esecuzione attiva non andrà a buon fine e verrà visualizzato un messaggio di errore corrispondente.
 - Sebbene nessuna operazione garantisca la revoca immediata dell'accesso, le modifiche IAM vengono propagate più rapidamente. Per ulteriori informazioni, consulta Coerenza delle risorse Cloud KMS e Propagazione della modifica di accesso. - Risoluzione dei problemi- Potresti riscontrare errori quando utilizzi Cloud KMS con Workflows. La tabella seguente descrive diversi problemi e come risolverli. - Problema - Descrizione - L'autorizzazione - cloudkms.cryptoKeyVersions.useToEncryptè negata- La chiave Cloud KMS fornita non esiste o l'autorizzazione non è configurata correttamente. - Soluzione: - Verifica che la chiave Cloud KMS esista. Elenca le chiavi per un keyring specificato e verifica il relativo utilizzo.
- Assicurati che l'agente di servizio Workflows abbia
         
         accesso alla chiave e che gli sia stato concesso il ruolo
         cloudkms.cryptoKeyEncrypterDecrypter.
 - La versione della chiave non è attivata - La versione della chiave Cloud KMS fornita è stata disattivata. - Soluzione: riattiva la versione della chiave Cloud KMS. - La regione del portachiavi non corrisponde alla risorsa da proteggere - La regione del keyring KMS fornita è diversa da quella del workflow. - Soluzione: utilizza un portachiavi Cloud KMS e un flusso di lavoro protetto della stessa regione. (Tieni presente che possono trovarsi in progetti diversi.) Per ulteriori informazioni, vedi Località Cloud KMS e Località di Workflows. - Limite di quota di Cloud KMS superato - Hai raggiunto il limite di quota per le richieste Cloud KMS. - Soluzione: limita il numero di chiamate a Cloud KMS o aumenta il limite di quota. Per ulteriori informazioni, consulta Quote di Cloud KMS. - Come viene gestito uno stato della chiave non disponibile- Se per qualche motivo Cloud KMS non è disponibile, Workflows potrebbe non essere in grado di recuperare lo stato della chiave da Cloud KMS. - Se lo stato della chiave non è disponibile, il flusso di lavoro o la sua esecuzione restituirà un valore - state: UNAVAILABLEe i dettagli correlati nel campo- stateError.- Se lo stato della chiave diventa non disponibile durante l'esecuzione di un flusso di lavoro (ad esempio, un'autorizzazione viene revocata durante un callback), si verifica un errore di runtime, che restituisce un valore - state: FAILEDe i dettagli correlati nel campo- error.- Prezzi- Questa integrazione non comporta costi aggiuntivi oltre alle operazioni chiave, che vengono fatturate al tuo progetto Google Cloud . Per informazioni sui prezzi attuali, consulta Prezzi di Cloud KMS. - Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate. - Ultimo aggiornamento 2025-10-19 UTC. -