Configura CMEK per i bucket di log

Questo documento fornisce istruzioni per configurare le 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 organizzazioni e cartelle, puoi configurare CMEK come impostazione delle risorse predefinita per Cloud Logging. Se configurato, Cloud Logging garantisce che tutti i nuovi bucket dei log nell'organizzazione o nella cartella siano criptati con una chiave gestita dal cliente. Se non fornisci una chiave quando crei un bucket log, viene utilizzata la chiave specificata dalle impostazioni predefinite delle risorse per Cloud Logging. Per saperne di più, consulta Configura CMEK per Cloud Logging.

Panoramica

Per impostazione predefinita, Cloud Logging cripta i contenuti inattivi dei clienti. La registrazione 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 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 i log di controllo 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 Logging è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, vedi 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

    1. Per ottenere le autorizzazioni necessarie per creare 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 un keyring e le chiavi.

      Cloud Logging consente di utilizzare una chiave di qualsiasi regione. Tuttavia, quando crei un bucket dei log, la posizione del bucket dei log deve corrispondere a quella della chiave. Per informazioni sulle regioni supportate, consulta quanto segue:

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

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

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update
  5. Attivare CMEK

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

    Determinare l'ID account di servizio

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

    1. Esegui questo comando gcloud logging settings describe:

      gcloud logging settings describe --project=BUCKET_PROJECT_ID
      

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

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

      Il comando precedente genera un account di servizio per la risorsa specificata, se non ne esiste già uno, e restituisce l'ID di questo 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 cmek-pPROJECT_NUMBER e se utilizzi Controlli di servizio VPC o se attivi la condivisione limitata per i domini, determina se devi eseguire la migrazione del tuo account di servizio CMEK. Per informazioni su quando è necessario eseguire la migrazione e sui passaggi da seguire, consulta Risoluzione dei problemi relativi ai Controlli di servizio VPC e alla condivisione limitata per i domini.

    Assegnare il ruolo Encrypter/Decrypter

    Quando configuri CMEK a livello di bucket log, concedi all'account di servizio l'autorizzazione per utilizzare Cloud KMS assegnando il ruolo 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
    

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

    • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del tuo progetto Google Cloud e da un numero assegnato in modo casuale, del progetto Google Cloud che esegue Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificazione dei progetti.
    • KMS_SERVICE_ACCT_NAME: il nome del account di servizio mostrato 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 delle chiavi automatizzate Cloud KMS.
    • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato nel seguente modo: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Crea un bucket di log e fornisci la chiave Cloud KMS

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

    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 dei log.
    • LOCATION: la posizione del bucket dei log.
    • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato nel seguente modo: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
    • BUCKET_PROJECT_ID: il nome del progetto Google Cloud in cui verrà creato il bucket dei log.

    Verifica l'abilitazione della chiave

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

    gcloud logging buckets list --project=BUCKET_PROJECT_ID
    

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

    • BUCKET_PROJECT_ID: Nome del progetto Google Cloud che archivia il bucket dei log.

    Nell'output tabellare, vedrai una colonna etichettata CMEK. Se il valore della colonna CMEK è TRUE, CMEK è abilitata per il bucket dei log.

    Per visualizzare i dettagli di un bucket di log specifico, inclusi quelli 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 la versione più recente della chiave primaria di una chiave Cloud KMS. Descrivono anche come modificare, revocare l'accesso e disattivare 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 log creati dopo la rotazione della chiave. Se la chiave viene utilizzata da un bucket log esistente, la rotazione della chiave non modifica il modo in cui il bucket log protegge i suoi dati.

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

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

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

    Modificare la chiave Cloud KMS

    Per modificare la chiave Cloud KMS associata al bucket dei log, crea una chiave e aggiorna le impostazioni CMEK per il bucket dei 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 dei log.
    • LOCATION: la posizione del bucket dei log.
    • NEW_KMS_KEY_NAME: il nome della nuova chiave.
    • BUCKET_PROJECT_ID: Nome del progetto Google Cloud che archivia il bucket dei log.

    Revoca dell'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 quella chiave.

    Se rimuovi l'accesso di Logging a una chiave, potrebbero essere necessarie 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 in una tabella BigQuery che non è collegata a Logging, segui le istruzioni riportate nella 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 preservando 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 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
    

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

    • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del tuo progetto Google Cloud e da un numero assegnato in modo casuale, del progetto Google Cloud che esegue Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificazione dei progetti.
    • KMS_SERVICE_ACCT_NAME: il nome del account di servizio mostrato 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 delle chiavi automatizzate Cloud KMS.
    • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato nel seguente modo: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Limitazioni

    Di seguito sono riportate le limitazioni note.

    CMEK disattiva Error Reporting

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

    CMEK non può essere rimosso 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.

    Il logging consiglia vivamente di assicurarsi che le chiavi siano configurate correttamente e sempre disponibili.

    Perdita del ripristino di emergenza

    Se si verificano errori critici nell'archiviazione principale 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'organizzazione, i log appartenenti a quella risorsa sono protetti dalla chiave CMEK configurata. Google Cloud Se la chiave CMEK non è accessibile, non è possibile scrivere i file di ripristino di emergenza per quella risorsa.

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

    Vincoli del supporto

    Cloud Customer Care 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 a memorizzarli 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 esterno per la gestione delle chiavi. Per 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 chiavi esterne, consulta la documentazione di Cloud External Key Manager.

    Aree geografiche

    Quando crei un bucket dei log e abiliti CMEK, devi utilizzare una chiave la cui regione corrisponda all'ambito regionale dei tuoi 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 di richieste crittografiche di Cloud KMS. Ad esempio, l'attivazione di CMEK in un bucket di log può consumare queste quote. Le operazioni di crittografia e decrittografia che utilizzano chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi chiavi hardware (Cloud HSM) o esterne (Cloud EKM). Per maggiori informazioni, consulta la pagina 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 dei problemi relativi agli errori di configurazione di CMEK, consulta l'articolo Risolvere i problemi relativi agli errori di impostazione di CMEK e dell'organizzazione.