Questa pagina descrive come creare, configurare e applicare le chiavi di crittografia gestite dal cliente (CMEK) per AlloyDB per PostgreSQL.
Per saperne di più su CMEK, consulta Informazioni su CMEK.
Creare e autorizzare 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 località del cluster AlloyDB. Ad esempio, un cluster AlloyDB che si trova in
us-west1può utilizzare solo le chiavi inus-west1.Se hai già una chiave Cloud KMS nella località corretta, puoi saltare questo passaggio.
Concedi ad AlloyDB l'accesso alla chiave.
- Utilizza Google Cloud CLI per creare e visualizzare il service agent o visualizzarlo se l'account esiste già:
gcloud beta services identity create --service=alloydb.googleapis.com \ --project=PROJECTIl comando gcloud services identity crea o recupera il service agent che AlloyDB può utilizzare per accedere alla chiave Cloud KMS per tuo conto.
L'ID del account di servizio è simile a un indirizzo email:
Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com- Concedi il ruolo
cloudkms.cryptoKeyEncrypterDecrypteral 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.cryptoKeyEncrypterDecrypterSostituisci 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 del keyring Cloud KMS della chiave
Questo ruolo concede al account di servizio l'autorizzazione a criptare e decriptare utilizzando la chiave Cloud KMS. Per saperne di più, consulta Autorizzazioni e Ruoli di Cloud KMS.
Creare un cluster criptato con CMEK
Quando crei un nuovo cluster, puoi scegliere se criptarlo con la crittografia predefinita gestita da Google 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 indica se ogni cluster del tuo progetto utilizza la crittografia gestita da Google o CMEK.
Per visualizzare i dettagli della chiave di un cluster che utilizza CMEK, fai clic sul relativo 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 gcloud alloydb clusters
describe comando:
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGIONSostituisci 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 predefinita gestita da Google o una chiave CMEK. Per saperne di più, 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 saperne di più, consulta Ripristinare un cluster.
Ruotare le 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, i dati AlloyDB esistenti vengono interessati come 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 trasferire tutti i dati AlloyDB alla versione della chiave primaria più recente, 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 la procedura 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 automaticamente e poiché la nuova crittografia manuale comporta un backup completo e il ripristino in un nuovo cluster, le rotazioni frequenti possono essere complesse e possono influire sulla disponibilità o sulla complessità della gestione.
Puoi eliminare in sicurezza le versioni precedenti delle chiavi CMEK in Cloud KMS solo dopo aver confermato che tutti i dati AlloyDB pertinenti sono stati criptati nuovamente manualmente e che i dati utilizzano una versione della chiave più recente.
Visualizzare il metodo di crittografia e la chiave CMEK di un backup
Console
La colonna Crittografia della pagina Backup indica 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 riquadro dei dettagli successivo contiene una descrizione della chiave, incluso un link alla relativa pagina dei dettagli di Cloud KMS.
gcloud
Chiama il gcloud alloydb backups describe comando:
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGIONSostituisci 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
La disattivazione della chiave CMEK di un cluster rende inaccessibili i dati del cluster finché non riattivi la chiave.
Tuttavia, la disattivazione di una chiave può richiedere fino a tre ore per propagarsi al cluster AlloyDB. Per disattivare una chiave impedendo immediatamente l'accesso ai dati:
Elimina l'istanza principale del cluster. Questa operazione non influisce sui dati del cluster. Puoi creare una nuova istanza principale dopo aver riattivato la chiave, come descritto nella sezione seguente.
Attivare una chiave
Per attivare una chiave:
Se hai eliminato l'istanza principale del cluster prima di disattivare la chiave, crea una nuova istanza principale.
La propagazione dell'attivazione di una chiave al cluster può richiedere fino a tre ore. I dati del cluster diventano accessibili non appena si verifica questa propagazione.
Visualizzare gli audit log per una chiave Cloud KMS
Per visualizzare gli audit log associati a una determinata chiave CMEK:
Assicurati che la registrazione sia abilitata per l'API Cloud KMS nel tuo progetto.
Vai a Esplora log nella Google Cloud console.
Limita le voci di log alla 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 del keyring Cloud KMS della chiave
- KEY: l'ID Cloud KMS della chiave
- REGION: la regione della chiave, ad esempio
In condizioni operative normali, le operazioni di crittografia e decrittografia vengono registrate con gravità
INFO. Queste voci vengono registrate quando le istanze del cluster AlloyDB convalidano la chiave Cloud KMS, il che avviene circa ogni cinque minuti.Se AlloyDB non riesce ad accedere alla chiave, le operazioni vengono registrate come
ERROR.
Visualizzare le giustificazioni per l'accesso in visualizzazione a 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 giustificazione fornita, puoi approvare o negare automaticamente una richiesta. Per saperne di più, consulta Visualizzare le giustificazioni e agire di conseguenza.