Configura CMEK per Cloud Logging

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

Le istruzioni in questa guida utilizzano Google Cloud CLI.

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, tramite un processo noto come crittografia envelope. L'accesso ai dati di log richiede l'accesso a queste chiavi di crittografia delle chiavi, che Google Cloud gestisce per tuo conto 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, anziché consentire a Google Cloud di gestire le chiavi di crittografia che proteggono i tuoi dati, puoi configurare le chiavi di crittografia gestite dal cliente (CMEK) per controllare e gestire la tua crittografia.

Per informazioni specifiche sulle chiavi CMEK, inclusi i relativi vantaggi e limiti, consulta Chiavi di crittografia gestite dal cliente.

Quando configuri CMEK come impostazione delle risorse predefinita Logging, si verifica quanto segue:

  • I nuovi bucket dei log nell'organizzazione o nella cartella vengono criptati automaticamente con la chiave configurata. Tuttavia, puoi modificare quella chiave o creare bucket di log e specificare una chiave diversa. Per ulteriori informazioni, consulta la pagina Configurare CMEK per i bucket di log.
  • Se utilizzi Log Analytics ed esegui query su più bucket di log, la chiave predefinita potrebbe essere utilizzata per criptare i dati temporanei. Per ulteriori informazioni, vedi Restrizioni dell'analisi dei log.

Prima di iniziare

Per iniziare, completa i seguenti passaggi:

  1. Prima di creare un bucket di 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 le chiavi, chiedi all'amministratore di concederti Ruolo IAM Amministratore Cloud KMS (roles/cloudkms.admin) per il tuo progetto. 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.

    2. Abilita l'API Cloud KMS.

    3. Crea un keyring e le chiavi.

      Cloud Logging consente di utilizzare una chiave da qualsiasi regione. Tuttavia, quando crei un bucket di log, la posizione del bucket deve corrispondere alla posizione della chiave. Per informazioni sulle regioni supportate, consulta le seguenti risorse:

      Se configuri CMEK come impostazione predefinita della risorsa per la registrazione 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 posizione il bucket di log deve corrispondere alla località della chiave, dopo la configurazione CMEK come impostazione della risorsa predefinita, non puoi creare bucket di log nella regione global.

  4. Assicurati che il tuo ruolo IAM nell'organizzazione o nella cartella le impostazioni predefinite che vuoi configurare includono le seguenti autorizzazioni di Cloud Logging:

    • logging.settings.get
    • logging.settings.update

Abilita CMEK per un'organizzazione o una cartella

Segui queste istruzioni per attivare CMEK per il tuo alla cartella o all'organizzazione Google Cloud.

Determinare l'ID account di servizio

Per determinare l'ID account di servizio associato all'organizzazione o alla cartella per la quale verrà applicato il CMEK, esegui il seguente comando gcloud logging settings describe:

FOLDER

 gcloud logging settings describe --folder=FOLDER_ID

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

  • FOLDER_ID: l'identificatore numerico univoco della cartella. Per informazioni sull'utilizzo delle cartelle, consulta Creare e gestire le cartelle.

ORGANIZZAZIONE

gcloud logging settings describe --organization=ORGANIZATION_ID

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

  • ORGANIZATION_ID: l'identificatore numerico univoco dell'organizzazione. Per informazioni su come ottenere questo identificatore, consulta Ottenere l'ID organizzazione.

Il comando precedente genera account di servizio per l'organizzazione o la cartella, se non esistono. Il comando restituisce anche gli ID due account di servizio, uno nel campo kmsServiceAccountId e uno nel nel campo loggingServiceAccountId. Per configurare il CMEK come impostazione predefinita, utilizza il valore nel campo kmsServiceAccountId.

Di seguito è riportata una risposta di esempio al comando precedente quando viene specificata un'organizzazione:

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

Esegui la procedura di provisioning una volta per risorsa. L'esecuzione del comando describe più volte restituisce lo stesso valore per il campo kmsServiceAccountId.

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

Assegna il ruolo Autore crittografia/decrittografia

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

gcloud

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, apporta queste sostituzioni:

  • KMS_PROJECT_ID: il valore alfanumerico composto dal nome del progetto Google Cloud e da un intervallo casuale assegnato al 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 mostrato nel campo kmsServiceAccountId dell'account di servizio risposta di gcloud logging settings describe .
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_RING: il nome della raccolta di chiavi Cloud KMS.
  • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato come segue: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

Console

  1. Apri il browser Cloud Key Management Service Keys nella console Google Cloud.
    Apri il browser delle chiavi Cloud KMS
  2. Seleziona il nome del keyring che contiene la chiave.

  3. Seleziona la casella di controllo per la chiave.

    La scheda Autorizzazioni diventa disponibile.

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

  5. Nel menu a discesa Seleziona un ruolo, seleziona Cloud KMS CryptoKey Encrypter/Decrypter.

  6. Fai clic su Aggiungi.

Configura i criteri dell'organizzazione

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

  • Quando logging.googleapis.com è nell'elenco dei servizi del criterio Deny per la 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 constraints/gcp.restrictCmekCryptoKeyProjects, Logging crea risorse protette da CMEK che sono protette da una CryptoKey di un progetto, di una cartella o di un'organizzazione consentiti.

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

Se esiste un criterio dell'organizzazione che specifica un vincolo CMEK, assicurati che questi vincoli siano conformi alle impostazioni predefinite di Logging per un'organizzazione o una cartella. Inoltre, se prevedi di modificare le impostazioni predefinite, prima aggiornare le impostazioni predefinite, rivedere e, se necessario, aggiornare i criteri dell'organizzazione.

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

  1. Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione:

    Vai a Criteri dell'organizzazione

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

  2. Seleziona la tua organizzazione.
  3. Verifica e, se necessario, aggiorna le limitazioni specifiche per CMEK.

    Per informazioni su come modificare un criterio dell'organizzazione, consulta Creazione e modifica delle norme.

Configura Cloud Logging con la chiave Cloud KMS

Per configurare CMEK come impostazione delle risorse 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

Prima di eseguire il comando precedente, apporta queste sostituzioni:

  • FOLDER_ID: l'identificatore numerico univoco della cartella. Per informazioni sull'utilizzo delle cartelle, vedi Creazione e gestione delle cartelle.
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato come segue: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
  • KMS_KEY_RING: il nome del keyring 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 in cui è in esecuzione Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificazione dei progetti.

Il comando precedente aggiorna le impostazioni predefinite per memorizzare informazioni sulla chiave Cloud KMS. Devi assicurarti che posizione di archiviazione predefinita della cartella è impostato sul valore KMS_KEY_LOCATION. Se non hai impostato la posizione di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, accoda 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 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

Prima di eseguire il comando precedente, apporta queste sostituzioni:

  • ORGANIZATION_ID: l'identificatore numerico univoco dell'organizzazione. Per informazioni su come ottenere questo identificatore, consulta Recupero dell'ID organizzazione.
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_NAME: Il nome della chiave Cloud KMS. È formattato come segue: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
  • KMS_KEY_RING: il nome del keyring 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 in cui è in esecuzione Cloud KMS. Per informazioni su come ottenere questo identificatore, consulta Identificazione dei progetti.

Il comando precedente aggiorna le impostazioni predefinite per informazioni sulla chiave Cloud KMS. Devi assicurarti che posizione di archiviazione predefinita per l'organizzazione è impostato sul valore di KMS_KEY_LOCATION. Se non hai impostato la posizione di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, accoda 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 l'organizzazione.

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

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

Verifica l'abilitazione della chiave

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

FOLDER

gcloud logging settings describe --folder=FOLDER_ID

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

ORGANIZZAZIONE

gcloud logging settings describe --organization=ORGANIZATION_ID

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

  • ORGANIZATION_ID: il valore numerico univoco identificatore dell'organizzazione. Per informazioni su come ottenere questo identificatore, consulta Recupero dell'ID organizzazione.

Quando il comando precedente restituisce il nome della chiave Cloud KMS nel campo kmsKeyName, CMEK è attivato per l'organizzazione o la cartella:

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

Instrada i log alle destinazioni supportate

  • Puoi configurare i bucket di log di Cloud Logging per criptare i dati con CMEK. Quando configuri CMEK come impostazione predefinita per un'organizzazione o una cartella, i nuovi bucket di log nell'organizzazione o nella cartella usano 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 dalle impostazioni predefinite.

    Per informazioni sulla CMEK applicata ai bucket di log, inclusa la modalità di modifica delle chiavi e delle limitazioni quando attivi la CMEK su un bucket di log, consulta Configurare la CMEK per i bucket di log.

  • Cloud Storage supporta CMEK per il routing dei log. Per istruzioni su come configurare le chiavi CMEK per Cloud Storage, consulta Utilizzare le 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 i log in blocco retroattivamente a Cloud Storage, quando questi log sono archiviati anche in un bucket di log. Per maggiori dettagli, vedi Copiare le voci di log.

Gestire la chiave Cloud KMS

Le seguenti sezioni spiegano come modificare, revocare l'accesso o disattivare i tuoi Chiave Cloud KMS.

Modificare la chiave Cloud KMS

Per modificare la chiave Cloud KMS associata a un'organizzazione o a una directory, crea una chiave, quindi esegui il comando gcloud logging settings update e fornisci le informazioni sulla nuova chiave Cloud KMS:

FOLDER

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 posizione di archiviazione predefinita della cartella è impostato sul valore KMS_KEY_LOCATION. Se non hai impostato la posizione di archiviazione predefinita o se il valore di questa posizione non corrisponde al valore di KMS_KEY_LOCATION, accoda 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 posizione di archiviazione predefinita per l'organizzazione è impostato sul valore di KMS_KEY_LOCATION. Se non hai impostato la posizione di archiviazione predefinita o se il relativo valore la località 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'account di servizio configurato l'autorizzazione IAM 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 di Google Cloud CLI:

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: il valore alfanumerico composto dal nome del progetto Google Cloud e da un intervallo casuale assegnato al 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 mostrato nel campo kmsServiceAccountId dell'account di servizio risposta di gcloud logging settings describe .
  • KMS_KEY_LOCATION: la regione della chiave Cloud KMS.
  • KMS_KEY_RING: il nome della raccolta di chiavi 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.

Disattivare CMEK

La disattivazione del CMEK per un'organizzazione o una cartella rimuove l'applicazione dei criteri CMEK solo per le operazioni future. Le configurazioni applicate in precedenza rimangono invariate.

Per disattivare CMEK su una risorsa in cui è configurata come CMEK predefinita della risorsa, esegui questo comando di Google Cloud CLI:

FOLDER

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

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

  • FOLDER_ID: l'identificatore numerico univoco della cartella. Per informazioni sull'utilizzo delle cartelle, consulta Creare e gestire le cartelle.

ORGANIZZAZIONE

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

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

  • ORGANIZATION_ID: il valore numerico univoco identificatore dell'organizzazione. Per informazioni su come ottenere questo identificatore, consulta Ottenere l'ID organizzazione.

Se vuoi distruggere la chiave, consulta Distruzione e ripristino delle versioni delle chiavi.

Considerazioni sulla rotazione delle chiavi Cloud KMS

Cloud Logging non ruota automaticamente la chiave di crittografia per i file di ripristino dei disastri temporanei quando viene ruotata la chiave Cloud KMS associata all'organizzazione o alla cartella Google Cloud. Recupero esistente continuano a utilizzare la versione della chiave con cui sono stati creati. Nuovi dei file di ripristino utilizzano la versione attuale della chiave primaria.

Limitazioni

Di seguito sono riportate le limitazioni note quando si configura CMEK come impostazione della risorsa predefinita per il logging.

Mancata disponibilità dei file di ripristino di emergenza

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

  • La chiave sia abilitata.
  • L'account di servizio elencato nel campo kmsServiceAccountId di la risposta di gcloud logging settings describe dispone di autorizzazioni per la chiave.

Se Logging perde l'accesso alla chiave Cloud KMS, non è in grado di scrivere file temporanei di ripristino dopo disastri e le query non funzionano più per gli utenti. Le prestazioni delle query potrebbero rimanere anche dopo il ripristino dell'accesso alla chiave.

Ciò potrebbe influire anche sul routing dei log a Cloud Storage perché Logging non è in grado di scrivere file temporanei per agevolare il routing. Se viene rilevato 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 tramite CMEK.

Degrado dovuto alla mancata disponibilità 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.

Se CMEK è configurata come impostazione delle risorse predefinita per un'organizzazione oppure una cartella, se una chiave gestita esternamente non è disponibile, Cloud Logging riprova continuamente ad accedere alla chiave. Cloud Logging inoltre memorizza in un buffer i dati dei log in arrivo per un massimo di un'ora. Dopo un'ora, se Cloud Logging non è ancora in grado di accedere all'interfaccia esterna e la chiave gestita, Cloud Logging inizia a eliminare i dati.

Se la chiave CMEK viene applicata a un bucket di log e se non è disponibile una chiave gestita esternamente, Cloud Logging continua a 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 le chiavi esterne.

Limitazioni dei bucket dei log

Per le limitazioni quando utilizzi CMEK con i bucket di log, vedi 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 CMEK, consulta Risolvere gli errori CMEK e delle impostazioni predefinite.