Questa pagina descrive come creare, configurare e applicare le chiavi di crittografia gestite dal cliente (CMEK) per AlloyDB per PostgreSQL.
Per ulteriori informazioni su CMEK, consulta Informazioni su CMEK.
Crea e autorizza una chiave CMEK per AlloyDB
Crea una chiave in Cloud Key Management Service (Cloud KMS). AlloyDB supporta i seguenti tipi di chiavi:
La chiave deve trovarsi nella stessa posizione del cluster AlloyDB. Ad esempio, un cluster AlloyDB che si trova in
us-west1
può utilizzare solo le chiavi inus-west1
.Se hai già una chiave Cloud KMS nella posizione corretta, puoi saltare questo passaggio.
Concedi ad AlloyDB l'accesso alla chiave.
- Utilizzando Google Cloud CLI, crea e visualizza il service agent oppure visualizzalo se l'account esiste già:
gcloud beta services identity create --service=alloydb.googleapis.com \ --project=PROJECT
Il comando gcloud services identity crea o recupera l'agente di servizio che AlloyDB può utilizzare per accedere alla chiave Cloud KMS per tuo conto.
L'ID account di servizio assomiglia a un indirizzo email:
Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
- Concedi il ruolo
cloudkms.cryptoKeyEncrypterDecrypter
al service account:
gcloud kms keys add-iam-policy-binding KEY \ --location REGION \ --keyring KEYRING \ --project=PROJECT \ --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Sostituisci quanto segue:
- KEY: l'ID Cloud KMS della chiave
- REGION: la regione della chiave, ad esempio
us-central1
- PROJECT: l'ID del progetto della chiave
- KEYRING: l'ID della raccolta di chiavi Cloud KMS della chiave
Questo ruolo concede all'account di servizio l'autorizzazione per criptare e decriptare utilizzando la chiave Cloud KMS. Per saperne di più, consulta Autorizzazioni e ruoli di Cloud KMS.
Crea un cluster criptato con CMEK
Quando crei un nuovo cluster, puoi scegliere se criptarlo con la crittografia gestita da Google predefinita o utilizzare una chiave CMEK. Per saperne di più, consulta Creare un cluster e la relativa istanza principale.
Visualizzare il metodo di crittografia e la chiave CMEK di un cluster
Console
La colonna Crittografia della pagina Cluster mostra se ogni cluster del tuo progetto utilizza la crittografia gestita da Google o CMEK.
Per visualizzare i dettagli chiave di un cluster che utilizza CMEK, fai clic sul suo nome nella colonna Nome risorsa. Il campo Chiave di crittografia della pagina dei dettagli risultante contiene una descrizione della chiave, incluso un link alla relativa pagina dei dettagli di Cloud KMS.
gcloud
Chiama il comando gcloud alloydb clusters
describe
:
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION
Sostituisci quanto segue:
- CLUSTER: l'ID del cluster da descrivere
- PROJECT: l'ID del progetto del cluster
- REGION: la regione del cluster, ad esempio
us-central1
L'output include un campo encryptionInfo
con un riepilogo della
crittografia del cluster.
Applicare CMEK ai backup
Quando crei un nuovo backup, puoi scegliere se criptarlo utilizzando la crittografia gestita da Google predefinita o una chiave CMEK. Per ulteriori informazioni, consulta Creare un backup on demand o Pianificare backup automatici.
Hai anche la possibilità di applicare una chiave CMEK al cluster creato durante il ripristino da un backup, indipendentemente dal metodo di crittografia del backup. Per ulteriori informazioni, vedi Ripristinare un cluster.
Rotazione delle chiavi utilizzando la crittografia CMEK
È importante comprendere le implicazioni della rotazione delle chiavi di crittografia gestite dal cliente (CMEK) in Cloud Key Management Service (Cloud KMS) quando vengono utilizzate con i cluster AlloyDB.
Quando ruoti una chiave CMEK, ai tuoi dati AlloyDB esistenti si verifica quanto segue:
L'accesso immediato continua: i dati rimangono criptati con la versione originale della chiave di crittografia dei dati (DEK), a condizione che la versione precedente della chiave sia ancora disponibile in KMS, né disabilitata né eliminata.
La nuova crittografia completa dei dati è manuale: per ottenere tutti i dati di AlloyDB nell'ultima versione della chiave primaria, devi criptarli nuovamente.
Per criptare nuovamente il cluster esistente con una nuova versione della chiave CMEK, devi eseguire un'operazione di backup e ripristino:
Crea un backup del cluster esistente.
Ripristina il backup in un nuovo cluster, specificando la nuova versione della chiave primaria CMEK durante il processo di ripristino.
Per saperne di più, consulta Ripristino del cluster.
La rotazione frequente delle chiavi CMEK con AlloyDB richiede un overhead operativo significativo. Poiché i dati esistenti non vengono criptati nuovamente in modo automatico e poiché la nuova crittografia manuale comporta un backup e un ripristino completi in un nuovo cluster, le rotazioni frequenti possono essere complesse e influire sulla disponibilità o sulla complessità della gestione.
Puoi eliminare in sicurezza le vecchie versioni delle chiavi CMEK in Cloud KMS solo dopo aver confermato che tutti i dati AlloyDB pertinenti sono stati ricriptati manualmente e che utilizzano una versione più recente della chiave.
Visualizzare il metodo di crittografia e la chiave CMEK di un backup
Console
La colonna Crittografia della pagina Backup mostra se ogni cluster del tuo progetto utilizza la crittografia gestita da Google o CMEK.
Per visualizzare i dettagli della chiave di un backup che utilizza CMEK, fai clic su Ripristina. Il campo Chiave di crittografia del pannello dei dettagli successivo contiene una descrizione della chiave, incluso un link alla relativa pagina dei dettagli di Cloud KMS.
gcloud
Chiama il comando gcloud alloydb backups describe
:
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION
Sostituisci quanto segue:
- CLUSTER: l'ID del backup da descrivere
- PROJECT: l'ID del progetto del backup
- REGION: la regione del backup, ad esempio
us-central1
L'output include un campo encryptionInfo
con un riepilogo della crittografia del backup.
Disattivare una chiave
Se disabiliti la chiave CMEK di un cluster, i dati del cluster diventano inaccessibili finché non riattivi la chiave.
Tuttavia, la disattivazione di una chiave può richiedere fino a tre ore per la propagazione al tuo cluster AlloyDB. Per disattivare una chiave impedendo immediatamente l'accesso ai tuoi dati, segui questi passaggi:
Elimina l'istanza principale del cluster. Ciò non influisce sui dati del cluster. Puoi creare una nuova istanza principale dopo aver riattivato la chiave, come descritto nella sezione seguente.
Abilitare una chiave
Per attivare una chiave:
Se hai eliminato l'istanza principale del cluster prima di disattivare la chiave, crea una nuova istanza principale.
L'attivazione di una chiave può richiedere fino a tre ore per la propagazione al cluster. I dati del cluster diventano accessibili non appena viene eseguita la propagazione.
Visualizza i log di controllo per una chiave Cloud KMS
Per visualizzare i log di controllo associati a una determinata chiave CMEK:
Assicurati che il logging sia abilitato per l'API Cloud KMS nel tuo progetto.
Vai a Esplora log nella console Google Cloud .
Limita le voci di log alla tua chiave Cloud KMS aggiungendo le seguenti righe al generatore di query:
resource.type="cloudkms_cryptokey" resource.labels.location="REGION" resource.labels.key_ring_id="KEYRING" resource.labels.crypto_key_id="KEY"
Sostituisci quanto segue:
- REGION: la regione della chiave, ad esempio
us-central1
- KEYRING: l'ID della raccolta di chiavi Cloud KMS della chiave
- KEY: l'ID Cloud KMS della chiave
- REGION: la regione della chiave, ad esempio
Durante il normale funzionamento, le operazioni di crittografia e decrittografia vengono registrate con gravità
INFO
. Queste voci vengono registrate quando le istanze nel tuo cluster AlloyDB convalidano la chiave Cloud KMS, il che si verifica circa ogni cinque minuti.Se AlloyDB non riesce ad accedere alla chiave, le operazioni vengono registrate come
ERROR
.
Visualizzare le giustificazioni per l'accesso per una chiave Cloud EKM
Se utilizzi una chiave Cloud EKM, puoi utilizzare Key Access Justifications per visualizzare il motivo di ogni richiesta Cloud EKM. Inoltre, in base alla motivazione fornita, puoi approvare o rifiutare automaticamente una richiesta. Per saperne di più, vedi Visualizzare e agire in base alle giustificazioni.