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

Puoi configurare CMEK come impostazione risorsa predefinita per un'organizzazione o una cartella. 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 il bucket dei log, viene utilizzata la chiave predefinita. Per saperne di più, consulta Configurare CMEK per Cloud Logging.

Panoramica

Per impostazione predefinita, Cloud Logging cripta i contenuti dei clienti archiviati inattivi. I dati archiviati nei bucket dei log da Logging vengono criptati utilizzando chiavi di crittografia delle chiavi, un processo noto come crittografia envelope. L'accesso ai dati di logging richiede l'accesso a queste chiavi di crittografia delle chiavi. Per impostazione predefinita, questi sono Google-owned and Google-managed encryption keys e non richiedono alcuna azione da parte tua.

La tua organizzazione potrebbe avere requisiti normativi, di conformità o di crittografia avanzata che la nostra crittografia at-rest predefinita non fornisce. Per soddisfare i requisiti della tua organizzazione, anziché utilizzare Google-owned and Google-managed encryption keys, puoi gestire le tue chiavi.

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

Per la crittografia simmetrica, la rotazione periodica e automatica delle chiavi è una pratica di sicurezza consigliata. Per ulteriori informazioni, consulta la sezione Rotazione delle chiavi.

Prerequisiti

Completa i seguenti passaggi:

  1. Esistono alcune limitazioni per l'utilizzo di CMEK. Prima di creare un bucket log con CMEK abilitata, esamina 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 Amministratore Cloud KMS (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 una chiave automatizzata e 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 attivare 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 a 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: il 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 dei 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 Risolvere i problemi relativi ai controlli di servizio VPC e alla condivisione con limitazioni del dominio.

    Assegnare il ruolo Crittografo/Decrittografo

    Quando configuri CMEK a livello di bucket dei 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, esegui le seguenti sostituzioni:

    • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del 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 la sezione 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 del keyring 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, esegui 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 comando gcloud logging buckets list:

    gcloud logging buckets list --project=BUCKET_PROJECT_ID
    

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

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

    Nell'output tabellare, viene visualizzata 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 per utilizzare l'ultima versione 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 viene applicata 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 dei log e di attivare CMEK, poi 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 di 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 ulteriori informazioni, vedi Verificare l'attivazione della chiave.
    2. Identifica un'altra chiave Cloud KMS che puoi utilizzare. Se le chiavi automatizzate hanno 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: il 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 dell'account di servizio configurato per questa 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 una nuova tabella BigQuery. Se vuoi utilizzare una chiave in una 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 ulteriori informazioni 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
    

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

    • KMS_PROJECT_ID: l'identificatore alfanumerico univoco, composto dal nome del 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 la sezione 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 del keyring 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 di log. Per saperne di più, consulta la sezione Risoluzione dei problemi.

    CMEK non può essere rimosso dai bucket 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 è attivata.
    • 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 di 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 dei 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 ulteriori informazioni, 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 dei problemi relativi agli errori di configurazione di CMEK, consulta Risolvere i problemi relativi a CMEK e alle impostazioni dell'organizzazione.