Utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per le migrazioni continue

Questa pagina descrive il funzionamento delle chiavi di crittografia gestite dal cliente (CMEK) con i job di migrazione di Database Migration Service.

Per impostazione predefinita, Database Migration Service (per Oracle su Cloud SQL per PostgreSQL) cripta i contenuti dei clienti at-rest. Database Migration Service (per Oracle in Cloud SQL per PostgreSQL) gestisce la crittografia per conto tuo 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 i servizi integrati con CMEK, tra cui Database Migration Service (per Oracle in Cloud SQL per PostgreSQL). L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi inoltre monitorare l'utilizzo delle chiavi, visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.

Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso alle risorse di Database Migration Service (per Oracle in Cloud SQL 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

Le CMEK sono disponibili in tutte le località di Database Migration Service.

CMEK con Autokey di Cloud KMS

Puoi creare le CMEK manualmente per proteggere le risorse di Database Migration Service (per Oracle in Cloud SQL per PostgreSQL) o utilizzare Cloud KMS Autokey. Con Autokey, le chiavi automatizzate e le chiavi vengono generate on demand per supportare la creazione o l'aggiornamento delle risorse in Database Migration Service (per Oracle in Cloud SQL per PostgreSQL). Vengono creati gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia, se non esistono già, e ricevono i ruoli IAM (Identity and Access Management) richiesti. Per saperne di più, consulta la panoramica di Autokey.

Informazioni sugli account di servizio

Quando i job di migrazione di Database Migration Service hanno le CMEK abilitate, devi utilizzare un account di servizio per richiedere l'accesso alle chiavi da Cloud Key Management Service.

Per utilizzare una CMEK in un progetto, devi disporre di un account di servizio e concedere l'accesso alla chiave al account di servizio. Il account di servizio deve esistere all'interno del progetto. Il account di servizio è visibile in tutte le regioni.

Informazioni sulle chiavi

In Cloud Key Management Service, devi creare un keyring 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.

Devi conoscere l'ID e la regione della chiave quando crei nuovi job di migrazione che utilizzano CMEK. Devi inserire i database di destinazione nella stessa regione della chiave CMEK associata al job di migrazione. Puoi creare un progetto sia per le chiavi che per i database di destinazione oppure progetti diversi per ciascuno.

La chiave 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 distruggere definitivamente i dati criptati con CMEK. Per farlo, distruggi la versione CMEK. Non puoi distruggere il keyring o la chiave, ma puoi distruggere le versioni della chiave.

Ruota e modifica le chiavi

Ruota le versioni della chiave

Quando ruoti una chiave in Cloud Key Management Service per creare una nuova versione della chiave primaria, Database Migration Service utilizza automaticamente la nuova versione della chiave primaria per criptare i nuovi dati temporanei scritti durante la migrazione. Non è necessario aggiornare o ricreare il job di migrazione durante la rotazione di una chiave.

I dati di migrazione temporanei esistenti scadono automaticamente entro otto giorni. Non distruggere o disattivare le versioni precedenti della chiave mentre un job di migrazione attivo legge ancora i dati criptati con queste versioni.

Per ruotare le chiavi che proteggono l'istanza Cloud SQL per PostgreSQL di destinazione, consulta Utilizza le chiavi di crittografia gestite dal cliente (CMEK) in Cloud SQL per PostgreSQL.

Passa a un'altra chiave

Puoi modificare la CMEK associata a un job di migrazione mentre il job di migrazione è salvato come bozza. Per saperne di più, consulta Aggiorna un job di migrazione in bozza.

Una volta avviato un job di migrazione, non puoi modificare la relativa CMEK. Per utilizzare una CMEK diversa per un job di migrazione già avviato, crea un nuovo job di migrazione e configuralo con la nuova chiave.

Limitazioni

Quando utilizzi CMEK, si applicano le seguenti limitazioni:

  • Non puoi aggiornare la CMEK di un job di migrazione dopo l'avvio del job. Puoi modificare la CMEK solo mentre il job di migrazione è salvato come bozza.

  • Sebbene tu possa utilizzare CMEK per crittografare i dati del database di origine, non puoi utilizzare queste chiavi per crittografare i metadati del 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 il concetto di 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

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment di workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Installa e inizializza Cloud SDK.
  7. Assicurati che al tuo account utente sia assegnato il ruolo Database Migration Admin.

    Vai alla pagina IAM

  8. Abilita l'API Cloud Key Management Service, se non è già abilitata.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilitare l'API

  9. Abilita l'API Database Migration Service.

    Abilitare l'API

Flusso di lavoro per creare job di migrazione in Database Migration Service con CMEK

  1. Solo per gli utenti di gcloud e dell'API: assicurati di avere un service account per ogni progetto che richiede CMEK. Per saperne di più, consulta Crea un service account.

  2. Crea un keyring e una chiave e imposta la località per ogni chiave. La località è la regione Google Cloud .

  3. Concedi l'accesso alla chiave al service account.

  4. Copia o annota l'ID chiave (KMS_KEY_ID) e la località della chiave, nonché l'ID (KMS_KEYRING_ID) del keyring. Queste informazioni sono necessarie per concedere alla chiave l'accesso al account di servizio.

  5. Vai a un progetto, crea un job di migrazione in Database Migration Service e utilizza la CMEK nella sezione Opzioni di crittografia avanzate.

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:

  • Service Account User (roles/iam.serviceAccountUser): include le autorizzazioni per elencare i service account, ottenere dettagli su un account di servizio e impersonare un account di servizio.
  • Service Account Admin (roles/iam.serviceAccountAdmin): include le autorizzazioni per elencare i service account e ottenere i dettagli di un service account. Include anche le autorizzazioni per creare, aggiornare ed eliminare i service account e per visualizzare o modificare la policy di Database Migration Service (per Oracle in Cloud SQL per PostgreSQL) su un account di servizio.

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 di account di servizio. Utilizzerai questo nome del account di servizio durante la procedura descritta in Concedi 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 località del keyring di 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

  1. Nella console Google Cloud , vai alla pagina Job di migrazione.

    Vai a Chiavi di crittografia

  2. Fai clic su Crea chiavi automatizzate.
  3. Aggiungi un Nome chiavi automatizzate. Prendi nota di questo nome perché ti servirà per concedere l'accesso alla chiave al account di servizio.
  4. Aggiungi una Posizione chiavi automatizzate.
  5. Fai clic su Crea. Viene visualizzata la pagina Crea chiave.
  6. Aggiungi un Nome chiave.
  7. Seleziona uno Scopo (simmetrico o asimmetrico).
  8. Seleziona un Periodo di rotazione e una Data di inizio.
  9. Fai clic su Crea.
  10. 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 di KMS_KEY_ID quando concedi l'accesso alla chiave al account di servizio.

gcloud

  1. Crea un nuovo keyring.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    Prendi nota di questo nome perché ti servirà per concedere l'accesso alla chiave al account di servizio.
  2. Crea una chiave nelle chiavi automatizzate.
    gcloud kms keys create KMS_KEY_ID \
    --location=REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    Prendi nota di questo nome perché ti servirà per concedere l'accesso alla chiave al account di servizio.

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 chiave CMEK per gestire la crittografia dei dati.

Disabilita e riabilita le versioni delle chiavi

Consulta i seguenti argomenti: