Utilizzo delle chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Eventarc cripta i contenuti dei clienti at-rest. 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 servizi integrati con CMEK, tra cui Eventarc. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS consente anche di visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.

Dopo aver configurato le risorse con le chiavi 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 archiviate come chiavi software, in un cluster Cloud HSM o esternamente utilizzando Cloud External Key Manager.

Cloud KMS produce audit log quando le chiavi vengono attivate, disattivate o utilizzate dalle risorse avanzate di Eventarc per criptare e decriptare i messaggi. Per ulteriori informazioni, consulta le informazioni sui log di controllo di Cloud KMS.

Cosa viene protetto con CMEK

Puoi configurare 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 utilizzando una chiave di crittografia a cui solo tu puoi accedere.

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

Prima di iniziare

Prima di utilizzare questa funzionalità in Eventarc, devi:

Console

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

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

gcloud

  1. Aggiorna i componenti di gcloud.
    gcloud components update
  2. Abilita 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 valori possibili, esegui il comando con il flag --help.

Terraform

  1. Attiva le API Cloud KMS ed Eventarc per il progetto che archivierà le chiavi di crittografia configurando la risorsa google_project_service:

    # Enable Cloud KMS API
    resource "google_project_service" "cloudkms" {
      service            = "cloudkms.googleapis.com"
      disable_on_destroy = false
    }
    
    # Enable Eventarc API
    resource "google_project_service" "eventarc" {
      service            = "eventarc.googleapis.com"
      disable_on_destroy = false
    }
  2. Crea una chiave automatizzata e una chiave configurando le risorse google_kms_key_ring e google_kms_crypto_key:

    resource "random_id" "default" {
      byte_length = 8
    }
    
    # Create a Cloud KMS key ring
    resource "google_kms_key_ring" "default" {
      name     = "${random_id.default.hex}-example-keyring"
      location = "us-central1"
    }
    
    # Create a Cloud KMS key
    resource "google_kms_crypto_key" "default" {
      name            = "example-key"
      key_ring        = google_kms_key_ring.default.id
      rotation_period = "7776000s"
    }

Per saperne di più sull'utilizzo di Terraform, consulta la documentazione Terraform su Google Cloud.

Tieni presente che Cloud KMS ed Eventarc sono servizi regionalizzati. La regione per la chiave Cloud KMS e il canale Eventarc protetto deve essere la stessa.

Concedi al 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 concedigli il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS:

Console

Quando abiliti CMEK per un canale Google o di terze parti tramite la console, ti viene chiesto di concedere il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio. Per ulteriori informazioni, in questo documento, vedi 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 RING_NAME \
     --location LOCATION \
     --member serviceAccount:SERVICE_AGENT_EMAIL \
     --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Sostituisci quanto segue:

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

    Ad esempio, service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com. Per saperne di più, vedi Agenti di servizio.

Terraform

  1. Genera l'identità del servizio per il servizio Eventarc configurando la risorsa google_project_service_identity:

    resource "google_project_service_identity" "eventarc_sa" {
      provider = google-beta
      project  = data.google_project.default.project_id
      service  = "eventarc.googleapis.com"
    }
  2. Concedi il ruolo Cloud KMS al service account Eventarc configurando la risorsa google_kms_crypto_key_iam_member:

    # Grant service account access to Cloud KMS key
    resource "google_kms_crypto_key_iam_member" "default" {
      crypto_key_id = google_kms_crypto_key.default.id
      role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
      member        = "serviceAccount:${google_project_service_identity.eventarc_sa.email}"
    }

Abilita CMEK per i tipi di eventi Google

I trigger Eventarc che instradano i tipi di eventi Google pubblicano eventi in un canale virtuale denominato canale Google specifico per progetto e 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 in quel progetto e in quella regione vengono criptati completamente con la chiave CMEK. Puoi aggiungere più chiavi CMEK e associarle a una regione specifica per il canale Google. Le chiavi CMEK non possono essere applicate in base al trigger.

Console

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

    Vai a Canali

  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 portachiavi che hai 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 risorsa della chiave e il nome della chiave nel formato specificato.

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

  8. (Facoltativo) Fai clic su Aggiungi chiave di crittografia per aggiungere un altro keyring che hai creato per una regione diversa.

  9. Fai clic su Salva.

gcloud

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

Sostituisci quanto segue:

  • LOCATION: la regione del canale Google da proteggere. Deve corrispondere alla posizione della chiave utilizzata. Tieni presente che puoi aggiungere una sola chiave di crittografia per regione per un canale.
  • KEY: il nome della chiave Cloud KMS completo nel formato projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Terraform

Attiva CMEK per la risorsa GoogleChannelConfig in un progetto e una località specifici configurando la risorsa google_eventarc_google_channel_config:

# Specify a CMEK key for the `GoogleChannelConfig` resource
resource "google_eventarc_google_channel_config" "default" {
  location        = "us-central1"
  name            = "googleChannelConfig"
  crypto_key_name = google_kms_crypto_key.default.id
  depends_on      = [google_kms_crypto_key_iam_member.default]
}

REST

Puoi aggiornare la risorsa GoogleChannelConfig utilizzando il metodo projects.locations.updateGoogleChannelConfig e specificare una chiave CMEK per un determinato progetto e una determinata località.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale Google da proteggere. Deve corrispondere alla posizione della chiave utilizzata, ad esempio us-central1. Tieni presente che puoi aggiungere una sola chiave di crittografia per regione per un canale.
  • KEY_NAME: il nome della chiave, ad esempio my-key.
  • RING_NAME: il nome della chiave automatizzata, ad esempio my-keyring.

Corpo JSON della richiesta:

{
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza aggiornata di GoogleChannelConfig:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
  "updateTime": "2025-03-05T17:56:54.106390447Z",
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

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

Verifica l'utilizzo di Cloud KMS

Per verificare che il canale sia ora conforme a CMEK:

Console

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

    Vai ai trigger

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

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

gcloud

Per confermare la chiave CMEK, puoi utilizzare il comando google-channels describe.

 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.

Terraform

Per confermare la chiave CMEK, puoi utilizzare il comando Terraform state show.

terraform state show google_eventarc_google_channel_config.default

L'output dovrebbe essere simile al seguente:

# google_eventarc_google_channel_config.default:
resource "google_eventarc_google_channel_config" "default" {
    crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
    id              = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig"
    location        = "LOCATION"
    name            = "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig"
    project         = "PROJECT_ID"
    update_time     = "2025-03-24T17:15:08.809635011Z"
}

REST

Per confermare la chiave CMEK, puoi recuperare la risorsa GoogleChannelConfig utilizzando il metodo projects.locations.getGoogleChannelConfig.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale Google protetto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di GoogleChannelConfig:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
  "updateTime": "2025-03-05T17:56:54.106390447Z",
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

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

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

    Vai a Canali

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

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

  4. Nella pagina Modifica canale, per Crittografia, seleziona Chiave Cloud KMS.

  5. Nell'elenco Tipo di chiave, seleziona un metodo per gestire le chiavi.

    Puoi gestire le chiavi manualmente o 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.

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

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

  8. Se richiesto, concedi il ruolo cloudkms.cryptoKeyEncrypterDecrypter all'agente di servizio Eventarc.

  9. 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 regione del canale di terze parti da proteggere. Deve corrispondere alla posizione della chiave.
  • KEY: il nome della chiave Cloud KMS completamente qualificato nel formato projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME.

Terraform

Specifica una chiave CMEK per un canale di terze parti configurando la risorsa google_eventarc_channel. Ad esempio:

resource "google_eventarc_channel" "default" {
  location        = "us-central1"
  name            = "CHANNEL_NAME"
  crypto_key_name = google_kms_crypto_key.default.id
}

Sostituisci CHANNEL_NAME con il nome del canale di terze parti.

REST

Puoi aggiornare una risorsa Channel utilizzando il metodo projects.locations.channels.patch e specificare una chiave CMEK per un determinato progetto e una determinata località.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • CHANNEL_NAME: il nome del canale.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale da proteggere. Deve corrispondere alla posizione della chiave utilizzata, ad esempio us-central1. Tieni presente che puoi aggiungere una sola chiave di crittografia per regione per un canale.
  • KEY_NAME: il nome della chiave, ad esempio my-key.
  • RING_NAME: il nome della chiave automatizzata, ad esempio my-keyring.

Corpo JSON della richiesta:

{
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Verifica l'utilizzo di Cloud KMS

Per verificare che il canale sia ora conforme a CMEK:

Console

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

    Vai ai trigger

  2. Fai clic su un trigger con un'origine di terze parti come Provider di eventi e una Regione che hai protetto utilizzando 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.

Terraform

Per confermare la chiave CMEK, puoi utilizzare il comando Terraform state show.

terraform state show google_eventarc_channel.default

L'output dovrebbe essere simile al seguente:

# google_eventarc_channel.default:
resource "google_eventarc_channel" "default" {
create_time     = "2025-03-31T13:07:44.721274062Z"
crypto_key_name = "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
id              = "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME"
location        = "LOCATION"
name            = "CHANNEL_NAME"
project         = "PROJECT_ID"
pubsub_topic    = "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID"
state           = "ACTIVE"
uid             = "406302e9-1d41-4479-8f4f-2524a803790e"
update_time     = "2025-03-31T13:07:49.708241490Z"
}

REST

Per confermare la chiave CMEK per un canale, puoi recuperare una risorsa Channel utilizzando il metodo projects.locations.channels.get.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • CHANNEL_NAME: il nome del canale.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale protetto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Channel:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
  "uid": "12f941a6-196a-457b-bfdb-ca21138859d0",
  "createTime": "2025-01-29T15:05:12.113912689Z",
  "updateTime": "2025-01-29T15:05:17.210986285Z",
  "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
  "state": "ACTIVE",
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

Visualizzare la chiave utilizzata per un canale

Puoi descrivere un canale Eventarc e visualizzare la chiave Cloud KMS utilizzata per il canale.

Console

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

    Vai a Canali

  2. Fai clic sul nome di un canale.

  3. Vengono visualizzate le chiavi di crittografia CMEK utilizzate per il canale.

gcloud

In base al tipo di canale, esegui il comando seguente:

canale Google

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

Canale di terze parti

gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

L'output dovrebbe contenere una riga simile alla seguente:

cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

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

Terraform

In base al tipo di canale, esegui il comando seguente:

canale Google

terraform state show google_eventarc_google_channel_config.default

Canale di terze parti

terraform state show google_eventarc_channel.default

L'output dovrebbe contenere una riga simile alla seguente:

crypto_key_name= "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"

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

REST

In base al tipo di canale, invia la seguente richiesta:

canale Google

Per confermare la chiave CMEK per un determinato progetto e una determinata località, puoi recuperare la risorsa GoogleChannelConfig utilizzando il metodo projects.locations.getGoogleChannelConfig.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale Google protetto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di GoogleChannelConfig:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
  "updateTime": "2025-03-05T17:56:54.106390447Z",
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

Canale di terze parti

Per confermare la chiave CMEK per un determinato progetto e una determinata posizione, puoi recuperare una risorsa Channel utilizzando il metodo projects.locations.channels.get.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • CHANNEL_NAME: il nome del canale.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale protetto.

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza di Channel:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
  "uid": "12f941a6-196a-457b-bfdb-ca21138859d0",
  "createTime": "2025-01-29T15:05:12.113912689Z",
  "updateTime": "2025-01-29T15:05:17.210986285Z",
  "pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
  "state": "ACTIVE",
  "cryptoKeyName": "projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME"
}

Disattivare CMEK

Puoi disattivare la protezione CMEK associata a un canale. Gli eventi distribuiti tramite questi canali sono comunque protetti da Google-owned and Google-managed encryption keys. Per eliminare la protezione CMEK associata a un canale:

Console

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

    Vai a Canali

  2. A seconda del tipo di canale, completa i seguenti passaggi:

    canale Google

    1. Fai clic su un canale con un provider Google.
    2. Nella pagina Modifica canale, tieni il puntatore del mouse sopra l'elenco Chiave di crittografia CMEK per visualizzare il pulsante Elimina elemento.
    3. Fai clic su Elimina elemento.
    4. 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

    1. Fai clic su un canale con un provider di terze parti.
    2. Nella pagina Dettagli del canale, fai clic su Modifica.
    3. Nella pagina Modifica canale, per Crittografia, seleziona Chiave di crittografia gestita da Google.
    4. Fai clic su Salva.

gcloud

In base al tipo di canale, esegui il comando seguente:

canale Google

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

Canale di terze parti

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

Terraform

A seconda del tipo di canale, cancella il valore crypto_key_name non specificandolo durante la configurazione della risorsa Terraform:

canale Google

resource "google_eventarc_google_channel_config" "default" {
  location        = "us-central1"
  name            = "googleChannelConfig"
}

Canale di terze parti

resource "google_eventarc_channel" "default" {
  location        = "us-central1"
  name            = "CHANNEL_NAME"
}

REST

In base al tipo di canale, invia la seguente richiesta:

canale Google

Per eliminare la chiave CMEK, puoi aggiornare la risorsa GoogleChannelConfig per un determinato progetto e una determinata località utilizzando il metodo projects.locations.updateGoogleChannelConfig.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale Google protetto da proteggere.

Corpo JSON della richiesta:

{
  "cryptoKeyName": ""
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza aggiornata di GoogleChannelConfig:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/googleChannelConfig",
  "updateTime": "2025-03-05T17:56:54.106390447Z"
}

Canale di terze parti

Per eliminare la chiave CMEK, puoi aggiornare una risorsa Channel per un determinato progetto e una determinata località utilizzando il metodo projects.locations.channels.patch.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • CHANNEL_NAME: il nome del canale.
  • PROJECT_ID: il tuo ID progetto Google Cloud.
  • LOCATION: la regione del canale protetto.

Corpo JSON della richiesta:

{
  "cryptoKeyName": ""
}

Per inviare la richiesta, espandi una di queste opzioni:

In caso di esito positivo, il corpo della risposta contiene un'istanza appena creata di Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/channels/CHANNEL_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Applica una policy dell'organizzazione CMEK

Eventarc è integrato con due vincoli di 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.
Google Cloud

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 le policy dell'organizzazione CMEK, tieni presente quanto segue.

  • Preparati a un ritardo di propagazione

    Dopo aver impostato o aggiornato una norma dell'organizzazione, l'applicazione della nuova norma può richiedere fino a 15 minuti.

  • Considera le risorse esistenti

    Le risorse esistenti non sono soggette alle policy dell'organizzazione appena create. Ad esempio, un criterio dell'organizzazione non viene applicato retroattivamente 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 la policy dell'organizzazione potrebbe essere difficile da ottenere a scopo 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.

Richiedi chiavi CMEK per le nuove risorse Eventarc

Puoi utilizzare il vincolo constraints/gcp.restrictNonCmekServices per richiedere che le chiavi CMEK vengano utilizzate per proteggere le nuove risorse Eventarc in un'organizzazione.

Se impostato, questo criterio dell'organizzazione causa l'esito negativo di tutte le richieste di creazione di risorse senza una chiave Cloud KMS specificata.

Dopo aver impostato questo criterio, questo si applica solo alle nuove risorse del progetto. Tutte le risorse esistenti senza chiavi Cloud KMS applicate continuano a esistere e sono accessibili senza problemi.

Console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.

    Vai a Policy dell'organizzazione

  2. Utilizzando il filtro, cerca il seguente vincolo:

    constraints/gcp.restrictNonCmekServices
    
  3. Nella colonna Nome, fai clic su Limita i servizi che possono creare risorse senza CMEK.

  4. Fai clic su Gestisci criterio.

  5. Nella pagina Modifica policy, in Origine policy, seleziona Esegui override della policy dell'unità organizzativa principale.

  6. In Regole, fai clic su Aggiungi una regola.

  7. Nell'elenco Valori policy, seleziona Personalizzato.

  8. Nell'elenco Tipo di criterio, seleziona Rifiuta.

  9. Nel campo Valori personalizzati, inserisci quanto segue:

    is:eventarc.googleapis.com
    
  10. Fai clic su Fine, quindi su Imposta policy.

gcloud

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

  2. 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 a meno che tu 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 O projects/team-specific-keys".

Console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.

    Vai a Policy dell'organizzazione

  2. Utilizzando il filtro, cerca il seguente vincolo:

    constraints/gcp.restrictCmekCryptoKeyProjects
    
  3. Nella colonna Nome, fai clic su Limita i progetti che possono fornire CryptoKey KMS per CMEK.

  4. Fai clic su Gestisci criterio.

  5. Nella pagina Modifica policy, in Origine policy, seleziona Esegui override della policy dell'unità organizzativa principale.

  6. In Regole, fai clic su Aggiungi una regola.

  7. Nell'elenco Valori policy, seleziona Personalizzato.

  8. Nell'elenco Tipo di policy, seleziona Consenti.

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

  10. Fai clic su Fine, quindi su Imposta policy.

gcloud

  1. 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 applichi questo vincolo.
    • KMS_PROJECT_ID: l'ID del progetto in cui si trovano le chiavi Cloud KMS che vuoi utilizzare.
  2. 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 progetto diverso. 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 che utilizzi 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 può accedere alle chiavi Cloud KMS, la pubblicazione di eventi con i canali non riesce e la distribuzione degli eventi si interrompe.FAILED_PRECONDITION Puoi abilitare una chiave nello stato Disabilitata in modo che sia possibile accedere di nuovo ai dati criptati.

Disattivare le 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 operazione garantisca la revoca immediata dell'accesso, le modifiche di Identity and Access Management (IAM) vengono propagate più rapidamente. Per ulteriori informazioni, consulta Coerenza delle risorse Cloud KMS e Propagazione della modifica di accesso.

Riattivare le chiavi Cloud KMS

Per riprendere la pubblicazione e la distribuzione 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 Prezzi di Cloud KMS.

Passaggi successivi