Per impostazione predefinita, Eventarc cripta i contenuti inattivi dei clienti. Eventarc 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 i servizi integrati con CMEK, tra cui Eventarc. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.
Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso alle risorse Eventarc è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
Le chiavi di crittografia gestite dal cliente vengono memorizzate come chiavi software in un cluster Cloud HSM o esternamente utilizzando Cloud External Key Manager.
Cloud KMS genera audit log quando le chiavi vengono attivate, disattivate o utilizzate dalle risorse Eventarc Advanced per criptare e decriptare i messaggi. Per ulteriori informazioni, consulta le informazioni sui log di controllo di Cloud KMS.
Che cosa viene protetto con CMEK
Puoi configurare le chiavi CMEK per un canale utilizzato da Eventarc Standard e criptare gli eventi che passano 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 attivi CMEK per il canale Google in un Google Cloud progetto, tutti gli attivatori Eventarc Standard per i tipi di eventi Google in quel progetto e in quella regione sono completamente criptati con la chiave CMEK. Le chiavi CMEK non possono essere applicate in base all'attivatore.
Prima di iniziare
Prima di utilizzare questa funzionalità in Eventarc, devi:
Console
-
Enable the Cloud KMS and Eventarc APIs.
- Crea un keyring.
- Crea una chiave per un keyring specificato.
gcloud
- Aggiorna i componenti
gcloud
.gcloud components update
- Abilita le API Cloud KMS ed Eventarc per il progetto che memorizzerà le chiavi di crittografia.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- Crea un keyring.
- 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 regionalizzati. La regione della chiave Cloud KMS e del canale Eventarc protetto deve essere la stessa.
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 attivi la chiave CMEK per un canale Google o di terze parti tramite la console, ti viene chiesto di concedere all'account di servizio il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS. Per ulteriori informazioni, in questo documento consulta Attivare CMEK per i tipi di eventi Google o Attivare 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 mazzo di chiavi. 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 ruoloeventarc.serviceAgent
.Ad esempio,
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
. Per ulteriori informazioni, consulta Agenti di servizio.
Attivare CMEK per i tipi di eventi Google
Gli attivatori Eventarc che indirizzano i tipi di eventi Google pubblicano gli eventi in un canale virtuale denominato canale Google, specifico per progetto e regione. Questo canale virtuale è disponibile in tutte le regioni di Eventarc.
Quando attivi CMEK per il canale Google in un Google Cloud progetto, tutti gli attivatori Eventarc per i tipi di eventi Google nel progetto e nella regione sono completamente criptati con la chiave CMEK. Puoi aggiungere più chiavi CMEK e associarle ciascuna a una regione specifica per il canale Google. Le chiavi CMEK non possono essere applicate in base all'attivatore.
Console
Nella console Google Cloud, vai alla pagina Eventarc > Canali.
Fai clic su un canale con un provider Google.
Nella pagina Modifica canale, seleziona la casella di controllo Usa chiave di crittografia gestita dal cliente (CMEK).
Fai clic su Aggiungi chiave di crittografia.
Seleziona una regione e, nell'elenco Chiave di crittografia CMEK, seleziona un insieme di chiavi che hai creato per la regione. Tieni presente che puoi aggiungere solo una chiave di crittografia per regione per un canale.
(Facoltativo) Per inserire manualmente il nome della risorsa della chiave, nell'elenco CMEK chiave di crittografia, fai clic su Non vedi la tua chiave? Inserisci il nome risorsa della chiave e il nome della chiave nel formato specificato.
Se richiesto, concedi il ruolo
cloudkms.cryptoKeyEncrypterDecrypter
all'account di servizio Eventarc con il ruoloeventarc.serviceAgent
.(Facoltativo) Fai clic su Aggiungi chiave di crittografia per aggiungere un altro keyring che hai creato per una regione diversa.
Fai clic su Salva.
gcloud
gcloud eventarc google-channels update \ --location=LOCATION \ --crypto-key=KEY
Sostituisci quanto segue:
LOCATION
: la posizione del canale Google da proteggere. Deve corrispondere alla posizione della chiave utilizzata.KEY
: il nome completo della chiave Cloud KMS nel formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Se crei attivatori Pub/Sub utilizzando i tuoi argomenti esistenti, per una protezione CMEK completa, ti consigliamo di configurare anche la chiave KMS nell'argomento. Per ulteriori informazioni, consulta la pagina sulla configurazione degli argomenti Pub/Sub.
Verificare l'utilizzo di Cloud KMS
Per verificare che il canale sia ora conforme a CMEK:
Console
Nella console Google Cloud, vai alla pagina Eventarc > Trigger.
Fai clic su un attivatore che elenca un' Google Cloud origine come Fornitore di eventi e una Regione che hai protetto utilizzando CMEK.
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 tramite la quale le entità nonGoogle 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
Nella console Google Cloud, vai alla pagina Eventarc > Canali.
Fai clic su un canale con un provider di terze parti.
Nella pagina Dettagli canale, fai clic su
Modifica.Nella pagina Modifica canale, seleziona Chiave Cloud KMS in Crittografia.
Nell'elenco Tipo di chiave, seleziona un metodo per gestire le chiavi.
Puoi gestire le tue chiavi manualmente o utilizzare Autokey, che ti consente di generare chiavi automatizzate e chiavi on demand. Se l'opzione Autokey è disabilitata, significa che non è ancora integrata nel tipo di risorsa attuale.
Nell'elenco Seleziona una chiave Cloud KMS, seleziona una chiave. Tieni presente che puoi aggiungere una sola chiave di crittografia per regione per un canale.
(Facoltativo) Per inserire manualmente il nome della risorsa della chiave, nell'elenco Seleziona una chiave Cloud KMS, fai clic su Inserisci chiave manualmente e inserisci il nome della chiave nel formato specificato.
Se richiesto, concedi il ruolo
cloudkms.cryptoKeyEncrypterDecrypter
all'agente di servizio Eventarc.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 la sezione Creare un canale.LOCATION
: la posizione del canale di terze parti da difendere. Deve corrispondere alla posizione della chiave.KEY
: il nome della chiave Cloud KMS completamente qualificato nel formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Verificare l'utilizzo di Cloud KMS
Per verificare che il canale sia ora conforme a CMEK:
Console
Nella console Google Cloud, vai alla pagina Eventarc > Trigger.
Fai clic su un trigger con un'origine di terze parti come Provider di eventi e su una Regione che hai protetto utilizzando CMEK.
Nella pagina Dettagli trigger, lo stato della 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.
Disattivare CMEK
Puoi disattivare la protezione CMEK associata a un canale. Gli eventi che vengono pubblicati tramite questi canali sono comunque protetti da Google-owned and Google-managed encryption keys. Per eliminare la protezione CMEK associata a un canale:
Console
Nella console Google Cloud, vai alla pagina Eventarc > Canali.
A seconda del tipo di canale, procedi nel seguente modo:
Canale Google
- Fai clic su un canale con un provider Google.
- Nella pagina Modifica canale, posiziona il cursore del mouse sopra l'elenco Chiave di crittografia CMEK per visualizzare il pulsante Elimina elemento.
- Fai clic su Elimina articolo.
Fai clic su Salva.
Potresti dover aggiornare la pagina per attivare la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK).
Canale di terze parti
- Fai clic su un canale con un provider di terze parti.
- Nella pagina Dettagli canale, fai clic su Modifica.
- Nella pagina Modifica canale, seleziona Chiave di crittografia gestita da Google in Crittografia.
- Fai clic su Salva.
gcloud
A seconda del tipo di canale, procedi nel seguente modo:
Canale Google
gcloud eventarc google-channels \ update --clear-crypto-key
Canale di terze parti
gcloud eventarc channels CHANNEL_NAME \ update --clear-crypto-key
Applicare una policy dell'organizzazione CMEK
Eventarc è integrato con due limitazioni delle policy dell'organizzazione per contribuire a garantire l'utilizzo di CMEK in un'organizzazione:
constraints/gcp.restrictNonCmekServices
viene utilizzato per richiedere la protezione CMEK.constraints/gcp.restrictCmekCryptoKeyProjects
viene utilizzato per limitare le chiavi Cloud KMS utilizzate per la protezione CMEK.
Questa integrazione ti consente di specificare i seguenti requisiti di conformità alla crittografia per le risorse Eventarc nella tua organizzazione:
Considerazioni sull'applicazione dei criteri dell'organizzazione
Prima di applicare i criteri dell'organizzazione CMEK, devi tenere presente quanto segue.
Preparati a un ritardo di propagazione
Dopo aver impostato o aggiornato un criterio dell'organizzazione, l'applicazione del nuovo criterio può richiedere fino a 15 minuti.
Valuta le risorse esistenti
Le risorse esistenti non sono soggette ai criteri dell'organizzazione appena creati. Ad esempio, un criterio dell'organizzazione non viene applicato in modo retroattivo alle pipeline esistenti. Queste risorse sono ancora accessibili senza una chiave CMEK e, se applicabile, sono ancora criptate con le chiavi esistenti.
Verificare le autorizzazioni necessarie per impostare un criterio dell'organizzazione
L'autorizzazione per impostare o aggiornare il criterio dell'organizzazione potrebbe essere difficile da acquisire per scopi di test. Devi disporre del ruolo Amministratore criteri dell'organizzazione, che può essere concesso solo a livello di organizzazione (anziché a livello di progetto o cartella).
Sebbene il ruolo debba essere concesso a livello di organizzazione, è comunque possibile specificare un criterio che si applichi solo a un progetto o a una cartella specifici.
Richiedere CMEK per le nuove risorse Eventarc
Puoi utilizzare il vincolo constraints/gcp.restrictNonCmekServices
per richiedere
l'utilizzo delle chiavi CMEK per proteggere le nuove risorse Eventarc in un'
organizzazione.
Se impostato, questo criterio dell'organizzazione fa sì che tutte le richieste di creazione di risorse senza una chiave Cloud KMS specificata non vadano a buon fine.
Una volta impostato, questo criterio si applica solo alle nuove risorse del progetto. Le eventuali risorse esistenti a cui non sono state applicate chiavi Cloud KMS continuano a esistere e sono accessibili senza problemi.
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Utilizzando Filtra, cerca il seguente vincolo:
constraints/gcp.restrictNonCmekServices
Nella colonna Nome, fai clic su Limita i servizi che possono creare risorse senza CMEK.
Fai clic su
Gestisci criteri.Nella pagina Modifica criterio, in Origine criterio, seleziona Sostituisci criterio della risorsa padre.
In Regole, fai clic su Aggiungi una regola.
Nell'elenco Valori criterio, seleziona Personalizzato.
Nell'elenco Tipo di criterio, seleziona Rifiuta.
Nel campo Valori personalizzati, inserisci quanto segue:
is:eventarc.googleapis.com
Fai clic su Fine, quindi su Imposta criteri.
gcloud
Crea un file temporaneo
/tmp/policy.yaml
per archiviare il criterio:name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:eventarc.googleapis.com
Sostituisci
PROJECT_ID
con l'ID del progetto in cui stai applicando questa limitazione.Esegui il comando
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Per verificare che il criterio sia stato applicato correttamente, puoi provare a creare un canale Eventarc Standard nel progetto. Il processo non va a buon fine se non specifichi una chiave Cloud KMS.
Limitare le chiavi Cloud KMS per un progetto Eventarc
Puoi utilizzare il vincolo constraints/gcp.restrictCmekCryptoKeyProjects
per limitare le chiavi Cloud KMS che puoi utilizzare per proteggere una risorsa in un progetto Eventarc.
Ad esempio, puoi specificare una regola simile alla seguente: "Per le risorse Eventarc applicabili in projects/my-company-data-project
, le chiavi Cloud KMS utilizzate in questo progetto devono provenire da projects/my-company-central-keys
OPPURE projects/team-specific-keys
".
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Utilizzando Filtra, cerca il seguente vincolo:
constraints/gcp.restrictCmekCryptoKeyProjects
Nella colonna Nome, fai clic su Limita i progetti che possono fornire CryptoKey KMS per CMEK.
Fai clic su
Gestisci criteri.Nella pagina Modifica criterio, in Origine criterio, seleziona Sostituisci criterio della risorsa padre.
In Regole, fai clic su Aggiungi una regola.
Nell'elenco Valori criterio, seleziona Personalizzato.
Nell'elenco Tipo di criterio, seleziona Consenti.
Nel campo Valori personalizzati, inserisci quanto segue:
under:projects/KMS_PROJECT_ID
Sostituisci
KMS_PROJECT_ID
con l'ID del progetto in cui si trovano le chiavi Cloud KMS che vuoi utilizzare.Ad esempio,
under:projects/my-kms-project
.Fai clic su Fine, quindi su Imposta criteri.
gcloud
Crea un file temporaneo
/tmp/policy.yaml
per archiviare il criterio:name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects spec: rules: - values: allowedValues: - under:projects/KMS_PROJECT_ID
Sostituisci quanto segue
PROJECT_ID
: l'ID del progetto in cui stai applicando questo vincolo.KMS_PROJECT_ID
: l'ID del progetto in cui si trovano le chiavi Cloud KMS che vuoi utilizzare.
Esegui il comando
org-policies set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Per verificare che il criterio sia stato applicato correttamente, puoi provare a creare un canale Eventarc Standard utilizzando una chiave Cloud KMS di un altro progetto. Il processo non andrà a buon fine.
Disattivazione e attivazione delle chiavi Cloud KMS
Una versione della chiave memorizza il materiale della chiave di crittografia utilizzato per criptare, decriptare, firmare e verificare i dati. Puoi disattivare questa versione della chiave in modo che non sia possibile accedere ai dati criptati con la chiave.
Quando Eventarc non riesce ad accedere alle chiavi Cloud KMS, la pubblicazione di eventi con i canali non va a buon fine con errori FAILED_PRECONDITION
e l'invio di eventi si interrompe. Puoi attivare una chiave nello stato Disattivata in modo da poter accedere nuovamente ai dati criptati.
Disattivare le chiavi Cloud KMS
Per impedire a Eventarc di utilizzare la chiave per criptare o decriptare i dati sugli eventi, svolgi una delle seguenti operazioni:
- Ti consigliamo di disattivare la versione della chiave configurata per il canale. Questo riguarda solo i canali e gli attivatori Eventarc associati alla chiave specifica.
- (Facoltativo) Revoca il ruolo
cloudkms.cryptoKeyEncrypterDecrypter
dall'account di servizio Eventarc. Ciò riguarda tutti i canali e gli attivatori Eventarc del progetto che supportano gli eventi criptati utilizzando CMEK.
Sebbene nessuna delle due operazioni garantisca la revoca immediata dell'accesso, le modifiche di Identity and Access Management (IAM) in genere si propagano più velocemente. Per ulteriori informazioni, consulta Coerenza delle risorse Cloud KMS e Propagazione della modifica di accesso.
Riattivare le chiavi Cloud KMS
Per riprendere l'invio e la pubblicazione degli eventi, ripristina l'accesso a Cloud KMS.
Prezzi
Questa integrazione non comporta costi aggiuntivi oltre alle operazioni principali, che vengono fatturate al tuo Google Cloud progetto. L'utilizzo di CMEK per un canale comporta l'addebito di costi per l'accesso al servizio Cloud KMS in base ai prezzi di Pub/Sub.
Per ulteriori informazioni sui prezzi più aggiornati, consulta Prezzi di Cloud KMS.