Questa pagina descrive come funzionano le chiavi di crittografia gestite dal cliente (CMEK) con i job di migrazione di Database Migration Service.
Per impostazione predefinita, Database Migration Service (per Oracle ad AlloyDB per PostgreSQL) cripta i contenuti dei clienti a riposo. Database Migration Service (per Oracle ad AlloyDB per PostgreSQL) gestisce la crittografia per te senza che tu debba fare altro. Questa opzione è denominata Crittografia predefinita di Google.
Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui Database Migration Service (per Oracle a AlloyDB per PostgreSQL). L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS consente anche di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.
Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse di Database Migration Service (per Oracle a AlloyDB per PostgreSQL) è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
Regioni in cui Database Migration Service supporta CMEK
CMEK è disponibile in tutte le località di Database Migration Service.
CMEK con Autokey di Cloud KMS
Puoi creare chiavi CMEK manualmente per proteggere le risorse di Database Migration Service (per Oracle a AlloyDB per PostgreSQL) o utilizzare Cloud KMS Autokey. Con Autokey, le chiavi automatizzate e le chiavi vengono generate on demand nell'ambito della creazione o dell'aggiornamento delle risorse in Database Migration Service (per Oracle ad AlloyDB per PostgreSQL). Gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia vengono creati se non esistono già e vengono concessi i ruoli IAM (Identity and Access Management) richiesti. Per ulteriori informazioni, consulta la panoramica di Autokey.
Informazioni sugli account di servizio
Quando i job di migrazione di Database Migration Service hanno abilitato CMEK, devi utilizzare unaccount di serviziot per richiedere l'accesso alla chiave da Cloud Key Management Service.
Per utilizzare una chiave CMEK in un progetto, devi disporre di un account di servizio e devi concedere l'accesso alla chiave alaccount di serviziot. Il account di servizio deve esistere all'interno del progetto. L'account di servizio è visibile in tutte le regioni.
Informazioni sulle chiavi
In Cloud Key Management Service, devi creare un portachiavi con una chiave di crittografia, impostata con una località. Quando crei un nuovo job di migrazione in Database Migration Service, selezioni questa chiave per criptare il job di migrazione.
Quando crei nuovi job di migrazione che utilizzano CMEK, devi conoscere l'ID chiave e la regione della chiave. Devi inserire i database di destinazione nella stessa regione della CMEK associata al job di migrazione. Puoi creare un progetto per entrambe le chiavi e i database di destinazione oppure progetti diversi per ciascuno.
CMEK utilizza il seguente formato:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Come si rendono inaccessibili in modo permanente i dati criptati con CMEK?
Potresti trovarti in situazioni in cui vuoi eliminare definitivamente i dati criptati con CMEK. A questo scopo, distruggi la versione CMEK. Non puoi eliminare il portachiavi o la chiave, ma puoi eliminare le versioni della chiave.
Limitazioni
Quando utilizzi CMEK, si applicano le seguenti limitazioni:
Non puoi aggiornare CMEK in un job di migrazione in esecuzione.
Sebbene tu possa utilizzare CMEK per criptare i dati dal database di origine, non puoi utilizzare queste chiavi per criptare i metadati di qualsiasi job di migrazione, come l'ID job di migrazione, l'indirizzo IP del database di origine e così via.
Utilizzo di CMEK
Ora che hai compreso CMEK, puoi configurare un account di servizio e le chiavi per CMEK. Inoltre, imparerai a configurare un job di migrazione per utilizzare CMEK.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Installa e inizializza Cloud SDK.
- Assicurati di avere il ruolo Amministratore migrazione database assegnato al tuo account utente.
-
Enable the Cloud Key Management Service API.
- Abilita l'API Database Migration Service.
Solo utenti gcloud e API:assicurati di avere un service account per ogni progetto che richiede CMEK. Per maggiori informazioni, vedi Creare un service account.
Crea un portachiavi e una chiave e imposta la posizione per ogni chiave. La località è la regione Google Cloud .
Copia o annota l'ID chiave (
KMS_KEY_ID
) e la posizione della chiave, nonché l'ID (KMS_KEYRING_ID
) del portachiavi. Hai bisogno di queste informazioni quando concedi l'accesso alla chiave al account di servizio.Vai a un progetto, crea un job di migrazione in Database Migration Service e utilizza la tua CMEK nella sezione Opzioni di crittografia avanzate.
- Utente service account (
roles/iam.serviceAccountUser
): include le autorizzazioni per elencare i service account, ottenere dettagli su un account di servizio e assumere l'identità di un account di servizio. - Amministratore account di servizio (
roles/iam.serviceAccountAdmin
): include le autorizzazioni per elencare gli account di servizio e ottenere dettagli su un account di servizio. Include anche le autorizzazioni per creare, aggiornare ed eliminare service account e per visualizzare o modificare il criterio Database Migration Service (per Oracle a AlloyDB per PostgreSQL) in un account di servizio. - Nella console Google Cloud , vai alla pagina Job di migrazione.
- Fai clic su Crea keyring.
- Aggiungi un Nome chiave automatizzata. Prendi nota di questo nome perché ti servirà quando concedi alla chiave l'accesso alaccount di serviziot.
- Aggiungi una posizione chiave automatizzata.
- Fai clic su Crea. Viene visualizzata la pagina Crea chiave.
- Aggiungi un Nome chiave.
- Seleziona uno scopo (simmetrico o asimmetrico).
- Seleziona un periodo di rotazione e una data di inizio.
- Fai clic su Crea.
- Nella tabella Chiavi, fai clic sui tre puntini nell'ultima colonna e
seleziona Copia ID risorsa o annotalo. Questo è il
KMS_KEY_ID
. Devi disporre diKMS_KEY_ID
quando concedi l'accesso alla chiave al account di servizio. - Crea un nuovo portachiavi.
Annota questo nome perché ti servirà quando concedi l'accesso alla chiave all'account di servizio.gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- Crea una chiave sul keyring.
Annota questo nome perché ti servirà quando concedi l'accesso alla chiave all'account di servizio.gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Flusso di lavoro per creare job di migrazione in Database Migration Service con CMEK
Il job di migrazione in Database Migration Service è ora abilitato con CMEK.
Crea un account di servizio
Devi creare un account di servizio per ogni progetto che richiede CMEK.
Per consentire a un utente di gestire i service account, concedi uno dei seguenti ruoli:
Al momento, puoi utilizzare solo i comandi gcloud
per creare il tipo di account di servizio necessario per CMEK.
Per creare un account di servizio con gcloud
, esegui questo comando:
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
Il comando precedente restituisce un nome del account di servizio. Utilizzi questo nome del account di servizio durante la procedura descritta in Concedere l'accesso della chiave al service account.
Crea una chiave
Puoi creare la chiave nello stesso progetto Google Cloud del job di migrazione in Database Migration Service o in un progetto utente separato. La posizione del portachiavi Cloud KMS deve corrispondere alla regione del database di destinazione associato al job di migrazione. Non è supportata una chiave multiregionale o globale. Se le regioni non corrispondono, non puoi creare il job di migrazione.
Per creare una chiave Cloud KMS:
Console
gcloud
Concedi alla chiave l'accesso al account di servizio
Devi eseguire questa procedura solo se utilizzi gcloud
o l'API.
Per concedere l'accesso al account di servizio, utilizza il seguente codice:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@datamigrationiam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Crea un job di migrazione in Database Migration Service con CMEK
Quando crei un job di migrazione, puoi utilizzare la tua CMEK per gestire la crittografia dei tuoi dati.
Disabilitare e riabilitare le versioni della chiave
Consulta i seguenti argomenti: