Configura CMEK per bucket di log

Questo documento fornisce istruzioni per configurare la crittografia gestita dal cliente (CMEK) per i log archiviati in bucket di log. Questo documento descrive inoltre come gestire queste chiavi e le limitazioni associate all'utilizzo di CMEK.

Puoi configurare CMEK come impostazione della risorsa predefinita per un'organizzazione o una cartella. Se configurato, Cloud Logging garantisce che tutti i nuovi bucket di log nell'organizzazione o nella cartella è criptato con una chiave gestita dal cliente. Se non fornisci una chiave quando crei il bucket di log, allora viene utilizzata la chiave predefinita. Per ulteriori informazioni, vedi Configura CMEK per Cloud Logging.

Panoramica

Per impostazione predefinita, Cloud Logging cripta i contenuti archiviati inattivi dei clienti. I dati archiviati nei bucket di log da Logging vengono criptati utilizzando chiavi di crittografia delle chiavi, un processo noto come crittografia dell'involucro. L'accesso ai dati di logging richiede l'accesso alle chiavi di crittografia della chiave, che Google gestisce le offerte per te senza che tu debba fare nulla.

La tua organizzazione potrebbe avere requisiti di crittografia avanzata, normativi o relativi alla conformità che la nostra crittografia a riposo predefinita non fornisce. Per soddisfare i requisiti della tua organizzazione, puoi gestire le chiavi di crittografia che proteggono i tuoi dati anziché lasciare che sia Google a farlo.

Per informazioni specifiche sull'utilizzo delle chiavi CMEK, inclusi vantaggi e limitazioni, consulta Chiavi di crittografia gestite dal cliente.

Per la crittografia simmetrica, le chiavi a rotazione periodica e automatica sono la prassi di sicurezza consigliata. Per ulteriori informazioni, vedi Rotazione della chiave.

Prerequisiti

Completa i seguenti passaggi:

  1. Esistono alcune limitazioni quando utilizzi CMEK. Prima di creare un bucket di log con CMEK abilitata, esamina le Limitazioni.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

    Questa guida fornisce istruzioni per l'utilizzo di Google Cloud CLI.

  3. Crea o identifica il progetto Google Cloud in cui vuoi eseguire Cloud KMS.

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

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

  5. Assicurati di disporre delle seguenti autorizzazioni di Cloud Logging:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update
  6. Abilita l'API Cloud KMS per il progetto Google Cloud che esegue Cloud KMS.

  7. Crea un keyring e le chiavi per il Progetto Google Cloud che esegue Cloud KMS.

    Per allineare i domini di errore, devi utilizzare un portachiavi la cui posizione corrisponde all'ambito regionale dei tuoi dati:

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

  8. Identifica i valori per le seguenti variabili:

    • BUCKET_ID è l'identificatore numerico univoco del Bucket di Logging da creare.
    • BUCKET_PROJECT_ID è il nome del progetto Google Cloud che contiene il nuovo bucket di log.
    • KMS_PROJECT_ID è l'identificatore alfanumerico univoco, composto dal nome del tuo progetto Google Cloud e da una sequenza assegnato del progetto Google Cloud in esecuzione di Cloud KMS.
    • KMS_KEY_LOCATION è il nome della chiave Cloud KMS regione.
    • KMS_KEY_RING è il nome della raccolta di chiavi Cloud KMS.
    • KMS_KEY_NAME con il nome della chiave Cloud KMS. È formattato come segue: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY

    Per informazioni su come trovare gli identificatori delle risorse, consulta Identificazione dei progetti.

Attivare CMEK

Una volta completati i passaggi prerequisiti, segui questi passaggi: per abilitare CMEK per un singolo bucket di log.

Determinare l'ID account di servizio

Per determinare l'ID account di servizio associato alla risorsa Google Cloud per la quale verrà applicato il CMEK, svolgi i seguenti passaggi:

  1. Esegui il seguente gcloud logging settings describe comando:

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    Il comando precedente genera un account di servizio per risorsa, quando non ne esiste già una e ne restituisce l'ID 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 l'account di servizio utilizzato da Cloud Logging per chiamare Cloud Key Management Service. Il formato del Il campo KMS_SERVICE_ACCT_NAME è service-PROJECT_NUMBER o cmek-pPROJECT_NUMBER.

  2. Se il campo KMS_SERVICE_ACCT_NAME ha il formato cmek-pPROJECT_NUMBER, e se utilizzi i Controlli di servizio VPC o se attivi la condivisione limitata dei domini, determina se devi eseguire la migrazione del tuo account servizio CMEK. Per informazioni su quando eseguire la migrazione e sui passaggi da eseguire della migrazione, consulta Risolvi i problemi relativi ai Controlli di servizio VPC e alla condivisione limitata per i domini.

Assegna il ruolo di crittografia/decrittografia

Quando configuri una CMEK a livello di bucket di log, concedi l'autorizzazione dell'account di servizio per utilizzare Cloud KMS assegnandole Autore crittografia/decrittografia CryptoKey Cloud KMS all'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

Imposta le variabili nel comando precedente come segue:

  • Sostituisci KMS_SERVICE_ACCT_NAME con il valore kmsServiceAccountId che hai determinato nel passaggio precedente.

  • Sostituisci le altre variabili con i valori che hai determinato nei passaggi del prerequisito.

Crea un bucket di log e fornisci la chiave Cloud KMS

Per creare un bucket di log e attivare 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

Verifica l'abilitazione della chiave

Per verificare di aver creato correttamente un bucket di log con CMEK abilitato, esegui il seguente comando:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

Nell'output tabulare, viene visualizzata una colonna con l'etichetta CMEK. Se il valore Se la colonna CMEK è TRUE, la CMEK viene 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

Gestisci la chiave Cloud KMS

Le sezioni seguenti descrivono come aggiornare un bucket di log in modo da utilizzare la versione più recente della chiave principale di una chiave Cloud KMS. Descrive inoltre come modificare, revocare l'accesso e disabilitare la chiave Cloud KMS.

Ruota la chiave Cloud KMS

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

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

Ad esempio, supponi di creare un bucket di log e abilitare CMEK, e poi ruoti la chiave Cloud KMS. Il bucket di log non usa la nuova versione della chiave, ma continua a proteggere con la versione della chiave contrassegnata come primaria al momento del deployment del bucket di log è stato creato.

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

  1. Identifica la chiave Cloud KMS corrente per il bucket dei log. Per ulteriori informazioni, consulta Verificare l'attivazione delle chiavi.
  2. Identifica un'altra chiave Cloud KMS che puoi utilizzare. Se il tuo keyring ha una sola chiave, creane una.
  3. Modifica la chiave Cloud KMS per il bucket dei log impostandola sulla chiave Cloud KMS creata nel passaggio precedente.
  4. Cambia la chiave Cloud KMS per il bucket di log in chiave Cloud KMS originale.

Modificare la chiave Cloud KMS

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

gcloud logging buckets update BUCKET_ID --cmek-kms-key-name=NEW_KMS_KEY_NAME

Revoca l'accesso alla chiave Cloud KMS

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

Se rimuovi l'accesso di Logging a una chiave, l'applicazione della modifica può richiedere fino a un'ora.

Se hai un set di dati BigQuery collegato, BigQuery non può utilizzare questo accesso per applicare la chiave a un nuovo BigQuery tabella. Se vuoi utilizzare una chiave nella tabella BigQuery che non è collegata a Logging, segui la documentazione di BigQuery. 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 collegato mantenendo l'accesso di Logging.

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

Per rimuovere l'accesso di Logging a una chiave, esegui questo 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

Limitazioni

Di seguito sono riportate le limitazioni note.

CMEK disattiva Error Reporting

Se vuoi utilizzare Error Reporting, non abilitare le chiavi di crittografia gestite dal cliente (CMEK) nei tuoi bucket di log. Per ulteriori informazioni, vedi Risoluzione dei problemi.

Impossibile rimuovere CMEK dai bucket di log

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

Degradazione dovuta all'indisponibilità della chiave Cloud KMS

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

  • La chiave è attivata.
  • L'account di servizio Logging dispone delle autorizzazioni di crittografia e decrittografia per la chiave.

Per il logging, ti consigliamo vivamente di assicurarti che tutte le chiavi siano configurate correttamente e sempre disponibili.

Perdita del ripristino di emergenza

In caso di errori critici nello spazio di archiviazione principale di Cloud Logging, Logging esegue il mirroring dei dati di logging ai file di ripristino di emergenza. Quando CMEK è abilitata per una risorsa, ad esempio un'organizzazione Google Cloud, che appartengono a quella risorsa sono protette dalla chiave CMEK configurata. Se la chiave CMEK non è accessibile, i file di ripristino dei disastri non possono essere scritti per quella risorsa.

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

Vincoli di supporto

L'assistenza clienti Google Cloud non può leggere i log della risorsa se la relativa chiave non è configurato 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 a archiviarli nei bucket di log. Tuttavia, Cloud Logging non può eseguire ottimizzazioni in background su questi dati. Se l'accesso alle chiavi viene ripristinato, i dati diventano disponibili. Tuttavia, inizialmente i dati vengono archiviati in uno stato non ottimizzato e le prestazioni delle query potrebbero risentirne.

Riduzione dovuta all'indisponibilità della chiave Cloud EKM

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulle della chiave gestita esternamente nel sistema di gestione delle chiavi esterno e il sistema partner di Google. Per le chiavi CMEK a livello di bucket, se una chiave gestita esternamente non è disponibile, Cloud Logging continua a archiviare i log nei bucket di log, ma gli utenti non possono accedervi.

Per ulteriori considerazioni e potenziali alternative, quando utilizzi le 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 corrisponde all'ambito regionale dei tuoi dati. Non puoi configurare CMEK per i bucket di log creati nella regione global.

Disponibilità della libreria client

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

Quote

Per maggiori dettagli sui limiti di utilizzo di Logging, consulta Quote e limiti.

Risolvere gli errori di configurazione

Per informazioni sulla risoluzione degli errori di configurazione CMEK, consulta Risolvere gli errori di CMEK e delle impostazioni dell'organizzazione.