Configura CMEK per i bucket di log

Questo documento fornisce istruzioni per la configurazione delle chiavi di crittografia gestite dal cliente (CMEK) per i log archiviati nei bucket di log. Questo documento descrive anche come gestire queste chiavi e le limitazioni associate all'utilizzo di CMEK.

Per le organizzazioni e le cartelle, puoi configurare CMEK come impostazioni delle risorse predefinite per Cloud Logging. Una volta configurato, Cloud Logging garantisce che tutti i nuovi bucket di log nell'organizzazione o nella cartella siano criptati con una chiave gestita dal cliente. Se non fornisci una chiave quando crei un bucket di log, viene utilizzata la chiave specificata dalle impostazioni delle risorse predefinite per Cloud Logging. Per saperne di più, consulta Configurare CMEK per Cloud Logging.

Le informazioni contenute in questo documento non si applicano ai bucket di osservabilità. Se ti interessano i bucket di osservabilità, consulta Impostare i valori predefiniti per i bucket di osservabilità.

Panoramica

Per impostazione predefinita, Cloud Logging cripta i contenuti inattivi dei clienti. Logging gestisce la crittografia senza che tu debba eseguire ulteriori azioni. Questa opzione è denominata crittografia predefinita di Google.

Se vuoi controllare le chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, incluso Logging. 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 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 Logging è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Prerequisiti

Completa i seguenti passaggi:

  1. Esistono alcune limitazioni per l'utilizzo di CMEK. Prima di creare un bucket di log con CMEK abilitata, consulta le limitazioni.

  2. Nella Google Cloud console, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della Google Cloud console, viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  3. Configura il Google Cloud progetto in cui prevedi di creare le chiavi:

    1. Per ottenere le autorizzazioni necessarie per creare le chiavi, chiedi all'amministratore di concederti il ruolo IAM Cloud KMS Admin (roles/cloudkms.admin) nel progetto o in una risorsa padre. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

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

    2. Abilita l'API Cloud KMS.

    3. Crea chiavi automatizzate e chiavi.

      Cloud Logging ti consente di utilizzare una chiave di qualsiasi regione. Tuttavia, quando crei un bucket di log, la località del bucket di log deve corrispondere alla località della chiave. Per informazioni sulle regioni supportate, consulta:

      Non puoi abilitare CMEK per i bucket di log creati nella regione global.

  4. Assicurati di disporre delle seguenti autorizzazioni di Cloud Logging nel Google Cloud progetto in cui prevedi di creare i bucket di log:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update

Attivare CMEK

Dopo aver completato i passaggi dei prerequisiti, segui queste istruzioni per abilitare CMEK per un singolo bucket di log.

Determinare l'ID del account di servizio

Per determinare l'ID del account di servizio associato alla Google Cloud risorsa per cui verrà applicata CMEK:

  1. Esegui il seguente gcloud logging settings describe comando:

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    Prima di eseguire il comando precedente, effettua la seguente sostituzione:

    • BUCKET_PROJECT_ID: nome del Google Cloud progetto in cui prevedi di creare il bucket di log.

    Il comando precedente genera un account di servizio per la risorsa specificata, se non ne esiste già uno, e restituisce l'ID del account di servizio nel campo kmsServiceAccountId:

    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    name: projects/BUCKET_PROJECT_ID/settings
    

    Il campo kmsServiceAccountId elenca il account di servizio utilizzato da Cloud Logging per chiamare Cloud Key Management Service.

  2. Se il campo KMS_SERVICE_ACCT_NAME ha il formato di cmek-pPROJECT_NUMBER, e se utilizzi Controlli di servizio VPC o se abiliti la condivisione limitata per i domini, allora determina se devi eseguire la migrazione del account di servizio CMEK. Per informazioni su quando è necessario eseguire la migrazione e sui passaggi da eseguire la migrazione, consulta Risolvere i problemi relativi a Controlli di servizio VPC e alla condivisione limitata per i domini.

Assegnare il ruolo di criptatore/decriptatore

Quando configuri CMEK a livello di bucket di log, concedi al account di servizio l'autorizzazione per utilizzare Cloud KMS assegnando il ruolo Cloud KMS CryptoKey Encrypter/Decrypter al account di servizio identificato dal campo kmsServiceAccountId:

gcloud kms keys add-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member=serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

Prima di eseguire il comando precedente, effettua le seguenti sostituzioni:

  • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del Google Cloud progetto e da un numero assegnato in modo casuale, del Google Cloud progetto che esegue Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificare i progetti.
  • KMS_SERVICE_ACCT_NAME: il nome del account di servizio visualizzato nel campo kmsServiceAccountId della risposta del comando gcloud logging settings describe.
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_RING: il nome del keyring Cloud KMS.
  • KMS_KEY_NAME: il nome della chiave Cloud KMS. Il formato è il seguente: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

Creare un bucket di log e fornire la chiave Cloud KMS

Per creare un bucket di log e abilitare CMEK per il bucket di log, esegui il seguente gcloud logging buckets create comando:

gcloud logging buckets create BUCKET_ID \
--location=LOCATION \
--cmek-kms-key-name=KMS_KEY_NAME \
--project=BUCKET_PROJECT_ID

Prima di eseguire il comando precedente, effettua le seguenti sostituzioni:

  • BUCKET_ID: il nome o l'ID del bucket di log.
  • LOCATION: la località del bucket di log.
  • KMS_KEY_NAME: il nome della chiave Cloud KMS. Il formato è il seguente: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
  • BUCKET_PROJECT_ID: nome del Google Cloud progetto in cui verrà creato il bucket di log.

Verificare l'abilitazione della chiave

Per verificare di aver creato correttamente un bucket di log con CMEK abilitata, esegui il seguente gcloud logging buckets list comando:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

Prima di eseguire il comando precedente, effettua la seguente sostituzione:

  • BUCKET_PROJECT_ID: nome del Google Cloud progetto che archivia il bucket di log.

Nell'output tabulare viene visualizzata una colonna denominata CMEK. Se il valore della colonna CMEK è TRUE, CMEK è abilitata per il bucket di log.

Per visualizzare i dettagli di un bucket di log specifico, inclusi i dettagli della chiave, esegui questo comando:

gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID

Gestire la chiave Cloud KMS

Le sezioni seguenti descrivono come aggiornare un bucket di log in modo che utilizzi l'ultima versione della chiave primaria di una chiave Cloud KMS. Descrivono anche come modificare, revocare l'accesso e disabilitare la chiave Cloud KMS.

Ruotare la chiave Cloud KMS

Quando crei una chiave Cloud KMS, puoi configurare un periodo di rotazione. Puoi anche ruotare una chiave Cloud KMS manualmente. Ogni volta che una chiave viene ruotata, viene creata una nuova versione della chiave.

Se ruoti una chiave Cloud KMS, la nuova versione della chiave si applica solo ai bucket di log creati dopo la rotazione della chiave. Se la chiave viene utilizzata da un bucket di log esistente, la rotazione della chiave non modifica il modo in cui il bucket di log protegge i dati.

Ad esempio, supponiamo che tu crei un bucket di log e abiliti CMEK, quindi ruoti la chiave Cloud KMS. Il bucket di log che hai creato non utilizza la nuova versione della chiave, ma continua a proteggere i dati con la versione della chiave contrassegnata come primaria al momento della creazione del bucket di log.

Per aggiornare un bucket di log in modo che utilizzi la versione della chiave primaria più recente di una chiave Cloud KMS:

  1. Identifica la chiave Cloud KMS corrente per il bucket di log. Per saperne di più, consulta Verificare l'abilitazione della chiave.
  2. Identifica un'altra chiave Cloud KMS che puoi utilizzare. Se il keyring ha una sola chiave, allora crea una chiave.
  3. Modifica la chiave Cloud KMS per il bucket di log con la chiave Cloud KMS creata nel passaggio precedente.
  4. Modifica la chiave Cloud KMS per il bucket di log con la chiave Cloud KMS originale.

Modificare la chiave Cloud KMS

Per modificare la chiave Cloud KMS associata al bucket di log, crea una chiave e aggiorna le impostazioni CMEK per il bucket di log:

gcloud logging buckets update BUCKET_ID --location=LOCATION \
--cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
  • BUCKET_ID: il nome o l'ID del bucket di log.
  • LOCATION: la località del bucket di log.
  • NEW_KMS_KEY_NAME: nome della nuova chiave.
  • BUCKET_PROJECT_ID: nome del Google Cloud progetto che archivia il bucket di log.

Revocare l'accesso alla chiave Cloud KMS

Per revocare l'accesso di Logging alla chiave Cloud KMS in qualsiasi momento, rimuovi l'autorizzazione IAM del account di servizio configurato per la chiave.

Se rimuovi l'accesso di Logging a una chiave, potrebbero essere necessaria fino a un'ora prima che la modifica diventi effettiva.

Se hai un set di dati BigQuery collegato, BigQuery non può utilizzare questo accesso per applicare la chiave a una nuova tabella BigQuery. Se vuoi utilizzare una chiave su una tabella BigQuery non collegata a Logging, segui la documentazione di BigQuery per farlo. Se revochi l'accesso di Logging a una chiave e hai un set di dati BigQuery collegato, revochi anche l'accesso di BigQuery alla stessa chiave.

Non puoi revocare l'accesso di BigQuery alla chiave del set di dati BigQuery collegato mantenendo l'accesso di Logging.

Per saperne di più sull'impatto della revoca dell'accesso, consulta Limitazioni.

Per rimuovere l'accesso di Logging a una chiave, esegui il seguente comando:

gcloud kms keys remove-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member=serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

Prima di eseguire il comando precedente, effettua le seguenti sostituzioni:

  • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del Google Cloud progetto e da un numero assegnato in modo casuale, del Google Cloud progetto che esegue Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificare i progetti.
  • KMS_SERVICE_ACCT_NAME: il nome del account di servizio visualizzato nel campo kmsServiceAccountId della risposta del comando gcloud logging settings describe.
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_RING: il nome del keyring Cloud KMS.
  • KMS_KEY_NAME: il nome della chiave Cloud KMS. Il formato è il seguente: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

Limitazioni

Di seguito sono riportate le limitazioni note.

CMEK disabilita Error Reporting

Se vuoi utilizzare Error Reporting, non abilitare le chiavi di crittografia gestite dal cliente (CMEK) nei bucket di log. Per saperne di più, consulta Risoluzione dei problemi.

CMEK non può essere rimossa dai bucket di log

Non puoi riconfigurare i bucket di log per modificare o rimuovere CMEK.

Degrado dovuto alla mancata disponibilità della chiave Cloud KMS

Una chiave Cloud KMS è considerata disponibile e accessibile da Logging se sono vere entrambe le seguenti condizioni:

  • La chiave è abilitata.
  • Il account di servizio Logging dispone delle autorizzazioni di crittografia e decrittografia per la chiave.

Logging consiglia vivamente di assicurarsi che tutte le chiavi siano configurate correttamente e sempre disponibili.

Perdita del ripristino di emergenza

Se si verificano errori critici nell'archiviazione primaria di Cloud Logging, Logging esegue il mirroring dei dati di logging nei file di ripristino di emergenza. Quando CMEK è abilitata per una risorsa, ad esempio un' Google Cloud organizzazione, i log appartenenti a quella risorsa sono protetti dalla chiave CMEK configurata. Se la chiave CMEK non è accessibile, non è possibile scrivere i file di ripristino di emergenza per la risorsa.

La perdita dei file di ripristino di emergenza non influisce sulle normali operazioni di logging. Tuttavia, in caso di emergenza di archiviazione, Cloud Logging potrebbe non essere in grado di recuperare i log dalle risorse la cui CMEK non è configurata correttamente.

Vincoli di assistenza

L'assistenza clienti Google Cloud non può leggere i log della risorsa se la chiave non è configurata correttamente o non è disponibile.

Prestazioni delle query ridotte

Quando una chiave di crittografia gestita dal cliente non è accessibile, Cloud Logging continua a criptare i dati e ad archiviarli nei bucket di log. Tuttavia, Cloud Logging non può eseguire ottimizzazioni in background su questi dati. Se l'accesso alla chiave viene ripristinato, i dati diventano disponibili; tuttavia, inizialmente vengono archiviati in uno stato non ottimizzato e le prestazioni delle query potrebbero risentirne.

Degrado dovuto alla mancata disponibilità della chiave Cloud EKM

Quando utilizzi una chiave Cloud EKM, Google Cloud non ha alcun controllo sulla disponibilità della chiave gestita esternamente nel sistema del partner di gestione delle chiavi esterne. Per CMEK a livello di bucket, se una chiave gestita esternamente non è disponibile, Cloud Logging continua ad archiviare i log nei bucket di log, ma gli utenti non possono accedere a questi log.

Per ulteriori considerazioni e potenziali alternative quando utilizzi chiavi esterne, consulta la documentazione di Cloud External Key Manager.

Aree geografiche

Quando crei un bucket di log e abiliti CMEK, devi utilizzare una chiave la cui regione corrisponda all'ambito regionale dei dati. Non puoi configurare CMEK per i bucket di log creati nella global regione.

Disponibilità della libreria client

Le librerie client di Logging non forniscono metodi per configurare CMEK.

Quote

Quando utilizzi CMEK in Logging, i tuoi progetti possono consumare le quote per le richieste di crittografia di Cloud KMS. Ad esempio, l'abilitazione di CMEK in un bucket di log può consumare queste quote. Le operazioni di crittografia e decrittografia che utilizzano le chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi chiavi hardware (Cloud HSM) o esterne (Cloud EKM). Per saperne di più, consulta Quote di Cloud KMS.

Per informazioni dettagliate sui limiti di utilizzo di Logging, consulta Quote e limiti.

Risolvere gli errori di configurazione

Per informazioni sulla risoluzione degli errori di configurazione di CMEK, consulta Risolvere i problemi relativi agli errori di configurazione di CMEK e dell'organizzazione.