Utilizzo delle chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Google cripta i dati archiviati at-rest. Google Cloud gestisce per te questa crittografia predefinita senza alcuna azione aggiuntiva da parte tua.

Se hai requisiti di conformità o normativi specifici relativi alla protezione dei tuoi dati, puoi utilizzare chiavi di crittografia gestite dal cliente (CMEK). La CMEK consente di proteggere Eventarc e i dati at-rest associati utilizzando una chiave di crittografia a cui solo tu puoi accedere e che puoi creare e gestire utilizzando Cloud Key Management Service (Cloud KMS). Poiché la chiave è di tua proprietà e non è controllata da Google, se la chiave viene disabilitata o eliminata, nessuno (incluso te) potrà accedere ai dati protetti dalla chiave.

Le chiavi di crittografia gestite dal cliente vengono archiviate come chiavi software in un cluster Cloud HSM o esternamente utilizzando Cloud External Key Manager.

Cloud KMS genera audit log quando le chiavi sono abilitate, disabilitate o utilizzate dalle risorse del canale Eventarc per criptare e decriptare i messaggi. Per saperne di più, consulta Informazioni sull'audit logging di Cloud KMS.

Cosa viene protetto con CMEK

Puoi configurare CMEK per un canale utilizzato da Eventarc e criptare gli eventi trasmessi attraverso il canale.

L'attivazione di un canale con CMEK protegge i dati associati (ad esempio l'argomento Pub/Sub utilizzato come livello di trasporto) utilizzando una chiave di crittografia a cui solo tu puoi accedere.

Tieni presente che quando abiliti CMEK per il canale Google in un progetto Google Cloud, tutti i trigger Eventarc per i tipi di eventi Google in quel progetto e in quella regione vengono completamente criptati con la chiave CMEK. Le chiavi CMEK non possono essere applicate in base al trigger.

Prima di iniziare

Prima di utilizzare questa funzionalità in Eventarc, devi:

Console

  1. Abilita le API Cloud KMS and Eventarc.

    Abilita le API

  2. Crea un keyring.
  3. Crea una chiave per un keyring specificato.

gcloud

  1. Aggiorna gcloud componenti.
    gcloud components update
    
  2. Abilitare le API Cloud KMS ed Eventarc per il progetto che archivierà le chiavi di crittografia.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
    
  3. Crea un keyring.
  4. Crea una chiave per un keyring specificato.

Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help.

Tieni presente che Cloud KMS ed Eventarc sono servizi a livello di regione. La regione per la chiave Cloud KMS e il canale Eventarc protetto deve corrispondere.

Concedi all'account di servizio Eventarc l'accesso a una chiave

Per concedere all'account di servizio Eventarc l'accesso alla chiave Cloud KMS, aggiungi l'account di servizio come entità della chiave e concedi all'account di servizio il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS:

Console

Quando abiliti una CMEK per un canale Google o di terze parti tramite la console, ti viene richiesto di concedere il ruolo Autore crittografia/decriptazione CryptoKey Cloud KMS all'account di servizio. Per saperne di più, in questo documento, consulta Abilitare CMEK per i tipi di eventi Google o Abilitare CMEK per un canale di eventi di terze parti.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --member serviceAccount:SERVICE_AGENT_EMAIL \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Sostituisci quanto segue:

  • KEY_NAME: il nome della chiave. Ad esempio, my-key.
  • KEY_RING: il nome del keyring. Ad esempio, my-keyring.
  • LOCATION: la posizione della chiave. Ad esempio, us-central1.
  • SERVICE_AGENT_EMAIL: l'indirizzo email dell'account di servizio con il ruolo eventarc.serviceAgent.

    Ad esempio, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. Per ulteriori informazioni, vedi Agenti di servizio.

Abilita CMEK per i tipi di eventi Google

I trigger Eventarc che instradano i tipi di eventi Google pubblicano eventi su un canale virtuale denominato canale Google specifico per il progetto e per regione. Questo canale virtuale è disponibile in tutte le regioni Eventarc.

Quando abiliti CMEK per il canale Google in un progetto Google Cloud, tutti i trigger Eventarc per i tipi di eventi Google nel progetto e nella regione in questione sono completamente criptati con la chiave CMEK. Puoi aggiungere più chiavi CMEK e associarle a una regione specifica per il canale Google. Non è possibile applicare chiavi CMEK in base al trigger.

Console

  1. Nella console Google Cloud, vai alla pagina Eventarc > Canali.

    Vai a Eventarc

  2. Fai clic su un canale con un provider Google.

  3. Nella pagina Modifica canale, seleziona la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK).

  4. Fai clic su Aggiungi chiave di crittografia.

  5. Seleziona una regione e, nell'elenco Chiave di crittografia CMEK, seleziona un keyring creato per la regione. Tieni presente che puoi aggiungere una sola chiave di crittografia per regione per un canale.

  6. (Facoltativo) Per inserire manualmente il nome risorsa della chiave, nell'elenco Chiave di crittografia CMEK fai clic su Non vedi la tua chiave? Inserisci il nome della risorsa della chiave e inserisci il nome della chiave nel formato specificato.

  7. Se richiesto, concedi il ruolo cloudkms.cyptoKeyEncrypterDecrypter all'account di servizio Eventarc con il ruolo eventarc.serviceAgent.

  8. (Facoltativo) Fai clic su Aggiungi chiave di crittografia per aggiungere un altro keyring creato per un'altra regione.

  9. Fai clic su Salva.

gcloud

 gcloud eventarc google-channels update \
    --location=LOCATION \
    --crypto-key=KEY

Sostituisci quanto segue:

  • LOCATION: la località del canale Google da proteggere. Deve corrispondere alla posizione della chiave utilizzata.
  • KEY: il nome completo della chiave Cloud KMS nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Se crei trigger Pub/Sub utilizzando argomenti esistenti, per una protezione CMEK completa, ti consigliamo di configurare anche la chiave KMS sull'argomento. Per ulteriori informazioni, consulta Configurazione di argomenti Pub/Sub.

Verifica l'utilizzo di Cloud KMS

Per verificare che ora il canale sia conforme a CMEK:

Console

  1. Nella console Google Cloud, vai alla pagina Eventarc > Trigger.

    Vai a Eventarc

  2. Fai clic su un trigger che elenca un'origine Google Cloud come provider di eventi e una regione protetta tramite CMEK.

  3. Nella pagina Dettagli trigger viene visualizzato lo stato Crittografia e il messaggio Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc google-channels describe \
    --location=LOCATION

L'output dovrebbe essere simile al seguente:

 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 updateTime: '2022-06-28T17:24:56.365866104Z'

Il valore cryptokeyName mostra la chiave Cloud KMS utilizzata per il canale Google.

Attivare CMEK per un canale di terze parti

Un canale Eventarc per terze parti è una risorsa attraverso la quale le entità non Google Cloud che offrono un'origine Eventarc possono interagire con le destinazioni. Questo canale è specifico per una regione e puoi aggiungere una sola chiave per canale di terze parti.

Per attivare CMEK per un canale di terze parti:

Console

  1. Nella console Google Cloud, vai alla pagina Eventarc > Canali.

    Vai a Eventarc

  2. Fai clic su un canale con un Fornitore di terze parti.

  3. Nella pagina Dettagli canale, fai clic su Modifica.

  4. Nella pagina Modifica canale, seleziona la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK).

  5. Nell'elenco Chiave di crittografia CMEK, seleziona un keyring creato da te per la regione. Tieni presente che puoi aggiungere solo una chiave di crittografia per regione per un canale.

  6. (Facoltativo) Per inserire manualmente il nome della risorsa della chiave che vuoi utilizzare, nell'elenco Chiave di crittografia CMEK fai clic su Inserisci chiave manualmente e inserisci il nome della chiave nel formato specificato.

  7. Se richiesto, concedi il ruolo cloudkms.cyptoKeyEncrypterDecrypter all'account di servizio Eventarc con il ruolo eventarc.serviceAgent.

  8. Fai clic su Salva.

gcloud

 gcloud eventarc channels update CHANNEL_NAME \
    --location=LOCATION \
    --crypto-key=KEY

Sostituisci quanto segue:

  • CHANNEL_NAME: il nome del canale di terze parti. Per creare un nuovo canale di terze parti, consulta Creare un canale.
  • LOCATION: la località del canale di terze parti da proteggere. Deve corrispondere alla posizione della chiave.
  • KEY: il nome completo della chiave Cloud KMS nel formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Verifica l'utilizzo di Cloud KMS

Per verificare che ora il canale sia conforme a CMEK:

Console

  1. Nella console Google Cloud, vai alla pagina Eventarc > Trigger.

    Vai a Eventarc

  2. Fai clic su un trigger con un'origine di terze parti come provider di eventi e una regione protetta tramite CMEK.

  3. Nella pagina Dettagli trigger, lo stato di Crittografia mostra il messaggio Events encrypted using Customer-managed encryption keys.

gcloud

 gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

L'output dovrebbe essere simile al seguente:

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID
 state: ACTIVE
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

Il valore cryptokeyName mostra la chiave Cloud KMS utilizzata per il canale di terze parti.

Disattiva CMEK

Puoi disattivare la protezione CMEK associata a un canale. Gli eventi pubblicati attraverso questi canali sono comunque protetti dalle chiavi di crittografia gestite da Google. Per eliminare la protezione CMEK associata a un canale:

Console

  1. Nella console Google Cloud, vai alla pagina Eventarc > Canali.

    Vai a Eventarc

  2. A seconda del tipo di canale:

    Canale Google

    1. Fai clic su un canale con un provider Google.
    2. Nella pagina Modifica canale, tieni il puntatore del mouse sull'elenco Chiave di crittografia CMEK per visualizzare il pulsante Elimina elemento.
    3. Fai clic su Elimina elemento.
    4. Fai clic su Salva.

    Canale di terze parti

    1. Fai clic su un canale con un Fornitore di terze parti.
    2. Nella pagina Dettagli canale, fai clic su Modifica.
    3. Nella pagina Modifica canale, deseleziona la casella di controllo Usa una chiave di crittografia gestita dal cliente (CMEK).
    4. Fai clic su Salva.

gcloud

A seconda del tipo di canale:

Canale Google

gcloud eventarc google-channels \
    update --clear-crypto-key

Canale di terze parti

gcloud eventarc channels CHANNEL_NAME \
    update --clear-crypto-key

Disabilitazione e abilitazione delle chiavi Cloud KMS

Una versione della chiave archivia il materiale della chiave di crittografia che utilizzi per criptare, decriptare, firmare e verificare i dati. Puoi disabilitare questa versione della chiave in modo che non sia possibile accedere ai dati criptati con la chiave.

Se Eventarc non può accedere alle chiavi Cloud KMS, la pubblicazione degli eventi con i canali non riesce con FAILED_PRECONDITION errori e la consegna degli eventi viene interrotta. Puoi abilitare una chiave con lo stato Disabilitato in modo che sia possibile accedere nuovamente ai dati criptati.

Disabilita chiavi Cloud KMS

Per impedire a Eventarc di utilizzare la chiave per criptare o decriptare i dati degli eventi, esegui una delle seguenti operazioni:

Sebbene nessuna delle due operazioni garantisca la revoca istantanea dell'accesso, in genere le modifiche di Identity and Access Management (IAM) si propagano più velocemente. Per ulteriori informazioni, consulta Coerenza delle risorse Cloud KMS e Accesso alla propagazione delle modifiche.

Riabilita le chiavi Cloud KMS

Per riprendere la consegna e la pubblicazione degli eventi, ripristina l'accesso a Cloud KMS.

Prezzi

Questa integrazione non comporta costi aggiuntivi oltre alle operazioni chiave, che vengono fatturate al tuo progetto Google Cloud. L'utilizzo di CMEK per un canale comporta addebiti per l'accesso al servizio Cloud KMS in base ai prezzi di Pub/Sub.

Per ulteriori informazioni sui prezzi più recenti, consulta la pagina relativa ai prezzi di Cloud KMS.

Passaggi successivi