Configura CMEK per Cloud Logging

Questo documento descrive come configurare e gestire le chiavi di crittografia gestite dal cliente (CMEK) per Cloud Logging al fine di soddisfare le esigenze di conformità della tua organizzazione. Puoi configurare CMEK come impostazione di risorsa predefinita per un'organizzazione, una cartella o per entrambe. Se configurato, Cloud Logging garantisce che tutti i nuovi bucket di log nell'organizzazione o nella cartella siano criptati con una chiave gestita dal cliente.

Panoramica

Per impostazione predefinita, Cloud Logging cripta i contenuti dei clienti archiviati at-rest. I dati archiviati nei bucket di log da Logging vengono criptati mediante chiavi di crittografia delle chiavi, un processo noto come crittografia envelope. L'accesso ai tuoi dati di logging richiede l'accesso alle chiavi di crittografia delle chiavi, che Google gestisce per te senza alcuna azione da parte tua.

La tua organizzazione potrebbe avere requisiti di crittografia avanzati, relativi alla conformità o a livello normativo che non sono previsti dalla nostra crittografia at-rest predefinita. Per soddisfare i requisiti della tua organizzazione, anziché lasciare che sia Google a gestire le chiavi di crittografia che proteggono i tuoi dati, puoi configurare CMEK per controllare e gestire la tua crittografia.

Per informazioni specifiche su CMEK, inclusi i suoi vantaggi e le sue limitazioni, consulta Chiavi di crittografia gestite dal cliente.

Quando configuri CMEK come impostazione delle risorse predefinita per Logging, i nuovi bucket di log nell'organizzazione o nella cartella vengono criptati automaticamente con la chiave configurata. Tuttavia, puoi modificare la chiave o creare bucket di log e specificare una chiave diversa. Per saperne di più, consulta Configurare una CMEK per i bucket di log.

Prerequisiti

Per iniziare, completa i seguenti passaggi:

  1. L'utilizzo di CMEK presenta alcune limitazioni. Prima di creare un bucket di log con CMEK abilitata, esamina le Limitazioni.

  2. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

    gcloud init

    Questa guida fornisce istruzioni sull'utilizzo di Google Cloud CLI.

  3. Trova gli identificatori per l'organizzazione o la cartella per cui vuoi abilitare CMEK:

    • ORGANIZATION_ID è l'identificatore numerico univoco dell'organizzazione Google Cloud per cui stai abilitando CMEK. Questo valore non è necessario se prevedi di configurare CMEK solo per una cartella. Per informazioni su come ottenere questo identificatore, vedi Ottenere l'ID organizzazione.
    • FOLDER_ID è l'identificatore numerico univoco della cartella Google Cloud per cui stai abilitando CMEK. Questo valore non è necessario se prevedi di configurare solo CMEK per un'organizzazione. Per informazioni sull'utilizzo delle cartelle, vedi Creazione e gestione delle cartelle.
  4. Per ottenere le autorizzazioni necessarie per creare le chiavi, chiedi all'amministratore di concederti il 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.

    Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

  5. Assicurati di disporre delle seguenti autorizzazioni di Cloud Logging per l'organizzazione:

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

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

    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 a quella della chiave. Per informazioni sulle regioni supportate, consulta quanto segue:

    Se configuri CMEK come impostazione delle risorse predefinita per Logging seguendo i passaggi descritti in questo documento, i nuovi bucket di log creati nell'organizzazione o nella cartella vengono configurati automaticamente per CMEK. Inoltre, poiché la località di un bucket di log deve corrispondere a quella della chiave, dopo aver configurato CMEK come impostazione della risorsa predefinita, non puoi creare bucket di log nella regione global.

  8. Identifica i valori per i seguenti parametri di Cloud KMS:

    • 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 Identificazione dei progetti.
    • KMS_KEY_LOCATION è la regione della chiave Cloud KMS.
    • KMS_KEY_RING è il nome del keyring Cloud KMS.
    • KMS_KEY_NAME con il nome della chiave Cloud KMS. Il formato è il seguente: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY

Attivare CMEK per un'organizzazione o una cartella

Dopo aver completato i passaggi prerequisiti, segui queste istruzioni per abilitare CMEK per la tua organizzazione Google Cloud.

Stabilire l'ID account di servizio

Per determinare l'ID account di servizio associato all'organizzazione o alla cartella per cui verrà applicata la CMEK, esegui questo comando gcloud logging settings describe:

CARTELLA

 gcloud logging settings describe --folder=FOLDER_ID

ORGANIZZAZIONE

gcloud logging settings describe --organization=ORGANIZATION_ID

L'esecuzione del comando precedente genera un account di servizio per l'organizzazione o la cartella, quando non ne esiste già uno, e restituisce l'ID nel campo kmsServiceAccountId. Di seguito è riportato un esempio di risposta al comando precedente quando viene specificata un'organizzazione:

kmsServiceAccountId: cmek-p12345@gcp-sa-logging.iam.gserviceaccount.com
name: organizations/ORGANIZATION_ID/settings

In questo esempio, il valore di SERVICE_ACCT_NAME è cmek-p12345.

Eseguire il processo di provisioning solo una volta per risorsa. L'esecuzione più volte del comando describe restituisce lo stesso valore per il campo kmsServiceAccountId.

Se non puoi utilizzare Google Cloud CLI, esegui il metodo dell'API Cloud Logging getSettings.

Assegna il ruolo Autore crittografia/decrittografia

Per utilizzare CMEK, concedi all'account di servizio l'autorizzazione a utilizzare Cloud KMS assegnando il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS all'account di servizio:

gcloud

gcloud kms keys add-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member serviceAccount: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 come segue:

  • Sostituisci SERVICE_ACCT_NAME con il valore serviceAccountId determinato nel passaggio precedente.

  • Sostituisci le altre variabili con i valori determinati nei passaggi relativi ai prerequisiti.

Console

  1. Apri il browser Cloud Key Management Service Keys (Chiave di servizio Cloud Key Management Service) nella console Google Cloud.
    Apri il browser delle chiavi Cloud KMS
  2. Fai clic sul nome del keyring che contiene la chiave desiderata.

  3. Seleziona la casella di controllo relativa alla chiave desiderata.

    La scheda Autorizzazioni diventa disponibile.

  4. Nella finestra di dialogo Aggiungi membri, specifica l'indirizzo email dell'account di servizio Logging a cui stai concedendo l'accesso.

  5. Nel menu a discesa Seleziona un ruolo, seleziona Autore crittografia/decriptazione CryptoKey Cloud KMS.

  6. Fai clic su Aggiungi.

Configura i criteri dell'organizzazione

Logging supporta i criteri dell'organizzazione che possono richiedere la protezione tramite CMEK e possono limitare le CryptoKey Cloud KMS che possono essere utilizzate per la protezione da CMEK:

  • Quando logging.googleapis.com è nell'elenco dei servizi dei criteri Deny per il vincolo constraints/gcp.restrictNonCmekServices, Logging si rifiuta di creare nuovi bucket definiti dall'utente non protetti da CMEK. Tuttavia, questo vincolo non impedisce a Cloud Logging di creare i bucket di log _Required e _Default, che vengono creati quando viene creato un progetto Google Cloud.

  • Quando viene applicato il criterio constraints/gcp.restrictCmekCryptoKeyProjects, Logging crea risorse protette da CMEK e protette da una CryptoKey da un progetto, una cartella o un'organizzazione consentiti.

Per saperne di più su CMEK e sui criteri dell'organizzazione, vedi Criteri dell'organizzazione CMEK.

Quando esiste un criterio dell'organizzazione che specifica un vincolo CMEK, assicurati che questi vincoli siano coerenti con le impostazioni delle risorse predefinite di Logging per un'organizzazione o una cartella. Inoltre, se prevedi di modificare le impostazioni predefinite delle risorse, prima di aggiornare le impostazioni predefinite delle risorse, rivedi e, se necessario, aggiorna i criteri dell'organizzazione.

Per visualizzare o configurare i criteri dell'organizzazione, segui questi passaggi:

  1. Nel pannello di navigazione della console Google Cloud, seleziona IAM e amministrazione, quindi seleziona Criteri dell'organizzazione:

    Vai a Criteri dell'organizzazione

  2. Seleziona la tua organizzazione.
  3. Verifica e, se necessario, aggiorna i vincoli specifici di CMEK.

    Per informazioni su come modificare un criterio dell'organizzazione, vedi Creazione e modifica dei criteri.

Configura Cloud Logging con la chiave Cloud KMS

Per configurare CMEK come impostazione della risorsa predefinita per Logging, esegui questo comando gcloud logging settings update:

CARTELLA

gcloud logging settings update \
    --folder=FOLDER_ID \
    --kms-location=KMS_KEY_LOCATION \
    --kms-key-name=KMS_KEY_NAME \
    --kms-keyring=KMS_KEY_RING \
    --kms-project=KMS_PROJECT_ID

Il comando precedente aggiorna le impostazioni predefinite delle risorse per archiviare le informazioni sulla chiave Cloud KMS. Devi assicurarti che la posizione di archiviazione predefinita per la cartella sia impostata sul valore KMS_KEY_LOCATION. Se non hai impostato la località di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, aggiungi quanto segue al comando precedente:

--storage-location = KMS_KEY_LOCATION

Il flag --storage-location consente di impostare o aggiornare la posizione di archiviazione predefinita per la cartella.

ORGANIZZAZIONE

gcloud logging settings update \
    --organization=ORGANIZATION_ID \
    --kms-location=KMS_KEY_LOCATION \
    --kms-key-name=KMS_KEY_NAME \
    --kms-keyring=KMS_KEY_RING \
    --kms-project=KMS_PROJECT_ID

Il comando precedente aggiorna le impostazioni predefinite delle risorse per archiviare le informazioni sulla chiave Cloud KMS. Devi assicurarti che la località di archiviazione predefinita per l'organizzazione sia impostata sul valore di KMS_KEY_LOCATION. Se non hai impostato la località di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, aggiungi quanto segue al comando precedente:

--storage-location = KMS_KEY_LOCATION

Il flag --storage-location consente di impostare o aggiornare la località di archiviazione predefinita per l'organizzazione.

Dopo l'applicazione della chiave, i nuovi bucket di log nell'organizzazione o nella cartella vengono configurati per criptare i dati at-rest utilizzando questa chiave. Puoi anche modificare le chiavi per singoli bucket di log. Non puoi creare bucket di log nell'regione global perché devi utilizzare una chiave la cui regione corrisponde all'ambito regionale dei tuoi dati.

Se non puoi utilizzare Google Cloud CLI, esegui il metodo dell'API Cloud Logging updateSettings.

Verifica abilitazione chiave

Per verificare di aver abilitato correttamente CMEK per un'organizzazione o una cartella, esegui questo comando gcloud logging settings describe:

CARTELLA

gcloud logging settings describe --folder=FOLDER_ID

ORGANIZZAZIONE

gcloud logging settings describe --organization=ORGANIZATION_ID

Il comando precedente restituisce il nome della chiave Cloud KMS:

kmsKeyName: KMS_KEY_NAME
kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com

Se il campo kmsKeyName è compilato, la CMEK è abilitata per l'organizzazione o la cartella.

Esegui il routing dei log verso destinazioni supportate

  • I bucket di log di Cloud Logging possono essere configurati per criptare i dati con CMEK. Quando configuri CMEK come impostazione di risorsa predefinita per un'organizzazione o una cartella, i nuovi bucket di log nell'organizzazione o nella cartella utilizzano automaticamente CMEK. Puoi modificare la chiave di questi bucket di log e creare bucket di log che utilizzano una chiave KMS diversa da quella specificata nelle impostazioni predefinite delle risorse.

    Per informazioni su CMEK applicata ai bucket di log, incluso come modificare chiavi e limitazioni quando si abilita CMEK in un bucket di log, consulta Configurare una CMEK per i bucket di log.

  • Cloud Storage supporta CMEK per il routing dei log. Per istruzioni su come configurare CMEK per Cloud Storage, consulta Utilizzo delle chiavi di crittografia gestite dal cliente.

    Se i dati vengono persi a causa dell'indisponibilità della chiave durante il routing dei dati dei log a Cloud Storage, puoi copiare in modo retroattivo i log in blocco in Cloud Storage quando questi log sono archiviati anche in un bucket di log. Per maggiori dettagli, vedi Copiare le voci di log.

  • BigQuery, per impostazione predefinita, cripta i contenuti dei clienti archiviati at-rest. Per i dettagli, consulta Protezione dei dati con le chiavi di Cloud Key Management Service.

  • Pub/Sub, per impostazione predefinita, cripta i contenuti dei clienti archiviati at-rest. Per maggiori dettagli, consulta Configurazione della crittografia dei messaggi.

Gestisci la chiave Cloud KMS

Le sezioni seguenti spiegano come modificare, revocare l'accesso o disabilitare la chiave Cloud KMS.

Modifica la chiave Cloud KMS

Per modificare la chiave Cloud KMS associata a un'organizzazione o una cartella, crea una chiave e aggiorna le impostazioni CMEK con il nuovo nome della chiave Cloud KMS:

CARTELLA

gcloud logging settings update \
    --folder=FOLDER_ID
    --kms-key-name=NEW_KMS_KEY_NAME
    --kms-location=NEW_KMS_KEY_LOCATION \
    --kms-keyring=NEW_KMS_KEY_RING \
    --kms-project=NEW_KMS_PROJECT_ID

Devi assicurarti che la posizione di archiviazione predefinita per la cartella sia impostata sul valore KMS_KEY_LOCATION. Se non hai impostato la località di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, aggiungi quanto segue al comando precedente:

--storage-location = NEW_KMS_KEY_LOCATION

ORGANIZZAZIONE

gcloud logging settings update \
    --organization=ORGANIZATION_ID
    --kms-key-name=NEW_KMS_KEY_NAME
    --kms-location=NEW_KMS_KEY_LOCATION \
    --kms-keyring=NEW_KMS_KEY_RING \
    --kms-project=NEW_KMS_PROJECT_ID

Devi assicurarti che la località di archiviazione predefinita per l'organizzazione sia impostata sul valore di KMS_KEY_LOCATION. Se non hai impostato la località di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, aggiungi quanto segue al comando precedente:

--storage-location = NEW_KMS_KEY_LOCATION

Revoca l'accesso alla chiave Cloud KMS

Puoi revocare l'accesso di Logging alla chiave Cloud KMS rimuovendo l'autorizzazione IAM dell'account di servizio configurato per quella chiave.

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

Per revocare l'accesso di Logging alla chiave Cloud KMS, esegui questo comando Google Cloud CLI:

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

Disattivare CMEK

La disabilitazione di CMEK per un'organizzazione o una cartella rimuove l'applicazione dei criteri CMEK solo per le operazioni future; eventuali configurazioni applicate in precedenza rimangono intatte.

Per disabilitare CMEK su una risorsa con CMEK configurata come impostazione predefinita, esegui questo comando Google Cloud CLI:

CARTELLA

gcloud logging settings update --folder=FOLDER_ID --clear-kms-key

ORGANIZZAZIONE

gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key

Se vuoi eliminare la chiave, consulta Eliminare e ripristinare le versioni delle chiavi.

Considerazioni sulla rotazione della chiave di Cloud KMS

Cloud Logging non ruota automaticamente la chiave di crittografia per i file temporanei di ripristino di emergenza quando la chiave Cloud KMS associata all'organizzazione o alla cartella Google Cloud ruota. I file di ripristino esistenti continuano a utilizzare la versione della chiave con cui sono stati creati. I nuovi file di ripristino utilizzano la versione della chiave primaria corrente.

Limitazioni

Di seguito sono riportate le limitazioni note quando configuri CMEK come impostazione delle risorse predefinita per Logging.

Impossibile trovare il file di ripristino di emergenza

Una chiave Cloud KMS viene considerata disponibile e accessibile da Logging quando si verificano entrambe le seguenti condizioni:

  • La chiave è abilitata.
  • L'account di servizio Logging dispone di autorizzazioni di crittografia e decriptazione sulla chiave.

Se Logging perde l'accesso alla chiave Cloud KMS, Logging non sarà in grado di scrivere file temporanei di ripristino di emergenza e, per gli utenti, le query smetteranno di funzionare. Le prestazioni delle query potrebbero rimanere ridotte anche dopo il ripristino dell'accesso alle chiavi.

Anche il routing dei log a Cloud Storage potrebbe essere interessato perché Logging non è in grado di scrivere i file temporanei necessari per facilitare il routing. Se si verifica un errore durante la crittografia o la decrittografia dei dati, viene inviata una notifica al progetto Google Cloud contenente la chiave Cloud KMS.

Disponibilità della libreria client

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

Riduzione dovuta all'indisponibilità della chiave Cloud EKM

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della tua chiave gestita esternamente nel sistema esterno del partner di gestione delle chiavi.

Se CMEK è configurata come impostazione di risorsa predefinita per un'organizzazione o una cartella, se non è disponibile una chiave gestita esternamente, Cloud Logging tenta continuamente di accedere alla chiave. Cloud Logging esegue anche il buffering dei dati di log in entrata fino a un'ora. Dopo un'ora, se Cloud Logging non è ancora in grado di accedere alla chiave gestita esternamente, Cloud Logging inizia a eliminare i dati.

Se a un bucket di log viene applicata una CMEK e non è disponibile una chiave gestita esternamente, Cloud Logging continua ad archiviare i log nei bucket di log, ma gli utenti non potranno accedere a questi dati.

Consulta la documentazione di Cloud External Key Manager per ulteriori considerazioni e potenziali alternative quando utilizzi chiavi esterne.

Limitazioni sui bucket di log

Per le limitazioni quando utilizzi CMEK con i bucket di log, consulta Limitazioni.

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 di CMEK, vedi Risolvere i problemi relativi a CMEK e alle impostazioni predefinite.