Le chiavi di crittografia gestite dal cliente (CMEK) ti consentono di proteggere i dati di Cloud SQL at-rest utilizzando le tue chiavi di crittografia in Cloud Key Management Service. Il controllo delle tue chiavi ti aiuta a soddisfare i requisiti di conformità legale e a mantenere la supervisione diretta dei criteri di accesso alle chiavi e delle pianificazioni di rotazione.
Puoi configurare un account di servizio e le chiavi Cloud KMS, quindi creare un'istanza Cloud SQL che utilizza una CMEK creata manualmente. Per scoprire di più sull'utilizzo delle chiavi di crittografia gestite dal cliente con Cloud SQL, consulta Panoramica delle chiavi di crittografia gestite dal cliente.
Prima di iniziare
- 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 dei workload.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init - Assicurati di disporre del ruolo Amministratore Cloud SQL nel tuo account utente.
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.Abilita l'API Cloud SQL Admin, 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.
Flusso di lavoro per la creazione di un'istanza Cloud SQL con CMEK
- Solo per gli utenti di gcloud e API: crea un service account per ogni progetto che richiede chiavi di crittografia gestite dal cliente.
- Crea chiavi automatizzate e una chiave nella stessa regione Google Cloud in cui vuoi creare l'istanza.
- Solo per gli utenti di gcloud e dell'API: concedi al account di servizio l'accesso alla chiave.
- Prendi nota dell'ID chiave (KMS_KEY_ID), della località delle chiavi automatizzate (GCP_REGION) e dell'ID chiavi automatizzate (KMS_KEYRING_ID).
- Vai a un progetto e crea un'istanza Cloud SQL con le seguenti opzioni:
- La stessa località della chiave di crittografia gestita dal cliente
- La configurazione della chiave gestita dal cliente
- L'ID della chiave di crittografia gestita dal cliente
La tua istanza Cloud SQL è ora abilitata per CMEK.
Crea un account di servizio
Devi creare un account di servizio per ogni progetto che richiede chiavi di crittografia gestite dal cliente.
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 Cloud SQL per SQL Server su un account di servizio.
Puoi utilizzare solo i comandi gcloud CLI per creare il tipo di account di servizio necessario per le chiavi di crittografia gestite dal cliente. Se utilizzi la consoleGoogle Cloud , Cloud SQL crea automaticamente questo service account.
gcloud
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=PROJECT_ID
Terraform
Per creare un account di servizio, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Il comando precedente restituisce il nome di un account di servizio. Utilizzerai questo nome del account di servizio durante la procedura descritta in Concedi al account di servizio l'accesso alla chiave.
Crea una chiave
Puoi creare la chiave nello stesso progetto Google Cloud dell'istanza Cloud SQL o in un progetto utente separato. La località delle chiavi automatizzate di Cloud KMS deve corrispondere alla regione in cui vuoi creare l'istanza Cloud SQL. Una chiave multiregionale o globale non funzionerà. La richiesta di creazione dell'istanza Cloud SQL non va a buon fine se le regioni non corrispondono.
Per creare una chiave Cloud KMS:
Console
-
Nella console Google Cloud , vai alla pagina Gestione delle chiavi.
- Fai clic su Crea chiavi automatizzate.
- Aggiungi un Nome chiavi automatizzate. Prendi nota di questo nome perché ti servirà quando concedi al account di servizio l'accesso alla chiave.
- Seleziona una Posizione chiavi automatizzate.
- Fai clic su Crea. Viene visualizzata la pagina Crea chiave.
- Aggiungi un Nome chiave.
- In Scopo, seleziona Crittografia/decrittografia simmetrica.
- 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. Il valore KMS_KEY_ID è necessario per concedere l'accesso alla chiave al account di servizio.
gcloud
- Crea una nuova chiave automatizzata.
Prendi nota di questo nome perché ti servirà per concedere l'accesso alla chiave al account di servizio.gcloud kms keyrings create KMS_KEYRING_ID \ --location=GCP_REGION
- Crea una chiave nella chiave automatizzata.
Prendi nota di questo nome perché ti servirà per concedere l'accesso alla chiave al account di servizio.gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Terraform
Per creare un keyring, utilizza una risorsa Terraform.
Per creare una chiave, utilizza una risorsa Terraform.
Applica la configurazione Terraform:
terraform apply
Concedi ai service account l'accesso alla chiave
Quando crei un'istanza Cloud SQL con CMEK, al account di servizio del progetto che conterrà l'istanza deve essere concesso l'accesso alla chiave. Se utilizzi la console Google Cloud per creare l'istanza, ai service account viene concesso automaticamente l'accesso alla chiave quando crei l'istanza. Se utilizzi gcloud CLI o l'API per creare l'istanza o se riscontri errori di autorizzazione dopo averla creata, completa la procedura seguente.
Per concedere l'accesso al account di servizio:
Console
-
Nella console Google Cloud , vai alla pagina Gestione delle chiavi.
- Per selezionare il progetto che ospita la chiave, utilizza il selettore di progetti.
- Fai clic sul nome delle chiavi automatizzate.
- Fai clic sul nome della chiave.
- Fai clic sulla scheda Autorizzazioni.
- Per aprire il riquadro, fai clic su Concedi l'accesso.
- Inserisci il account di servizio come entità e seleziona "Cloud KMS CryptoKey Encrypter/Decrypter" come ruolo.
- Fai clic su Salva.
In alternativa, puoi concederlo anche nella pagina IAM del progetto.
gcloud
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Terraform
Per concedere l'accesso alla chiave, utilizza una risorsa Terraform.
Applica la configurazione Terraform:
terraform apply
Crea un'istanza Cloud SQL con CMEK
Per creare un'istanza con chiavi di crittografia gestite dal cliente:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Fai clic su Crea istanza.
- Scegli il motore del database.
- Inserisci un nome per l'istanza. Non includere informazioni sensibili o che consentono l'identificazione personale nel nome dell'istanza, poiché è visibile esternamente. Non è necessario includere l'ID progetto nel nome dell'istanza. Questo viene creato automaticamente, se opportuno (ad esempio nei file di log).
- Inserisci la password per l'utente
'root'@'%'. - Imposta la regione per l'istanza. Posiziona l'istanza nella stessa regione delle risorse che vi accedono. Nella maggior parte dei casi, non è necessario specificare una zona.
- Nella sezione Opzioni di configurazione, seleziona tutte le opzioni di configurazione fino a raggiungere Tipo di macchina e spazio di archiviazione.
- Espandi Tipo di macchina e spazio di archiviazione.
- Nella sezione Crittografia, seleziona Chiave gestita dal cliente.
- Seleziona la chiave KMS dal menu a discesa o inserisci manualmente il KMS_KEY_ID. Vengono visualizzate solo le chiavi KMS nello stesso progetto e nella stessa regione dell'istanza. Viene utilizzata la versione della chiave primaria, quindi se nel nome della chiave viene fornita una versione, questa viene tagliata. Per scegliere una chiave KMS appartenente a un progetto diverso, ma nella stessa regione, seleziona Non vedi la tua chiave? Inserisci ID risorsa della chiave e inserisci il KMS_KEY_ID acquisito in precedenza.
- Se il account di servizio non dispone dell'autorizzazione per criptare/decriptare con la chiave selezionata, viene visualizzato un messaggio. In questo caso, fai clic su Concedi per concedere al account di servizio il ruolo IAM
roles/cloudkms.cryptoKeyEncrypterDecrypter>sulla chiave KMS selezionata. - Dopo aver selezionato le opzioni di configurazione, fai clic su Crea.
- Viene visualizzato un messaggio che spiega le implicazioni dell'utilizzo della chiave di crittografia gestita dal cliente. Leggilo e accettalo per procedere con la creazione dell'istanza.
gcloud
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --disk-encryption-key=KMS_KEY_ID \ --database-version=VERSION \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION \ --root-password=INSERT-PASSWORD-HERE
Terraform
Per creare un'istanza con CMEK, utilizza una risorsa Terraform.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dalle eliminazioni, nel file di configurazione Terraform imposta l'argomento
deletion_protectionsufalse.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo
yesal prompt:terraform destroy
REST v1
Per creare un'istanza con chiavi di crittografia gestite dal cliente, passadiskEncryptionConfiguration al comando.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- region: la regione
- database-version: stringa della versione dell'enum (ad esempio SQLSERVER_2017_STANDARD)
- kms-resource-id: l'ID che hai ricevuto dalla creazione di una chiave.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON della richiesta:
{
"name":"instance-id",
"region":"region",
"databaseVersion": "database-version",
"diskEncryptionConfiguration" :
{
"kmsKeyName" : "kms-resource-id"
},
"settings":
{
"backupConfiguration":
{
"enabled":true
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Per creare un'istanza con chiavi di crittografia gestite dal cliente, passadiskEncryptionConfiguration al comando.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- instance-id: l'ID istanza
- region: la regione
- database-version: stringa della versione dell'enum (ad esempio SQLSERVER_2017_STANDARD)
- kms-resource-id: l'ID che hai ricevuto dalla creazione di una chiave.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Corpo JSON della richiesta:
{
"name":"instance-id",
"region":"region",
"databaseVersion": "database-version",
"diskEncryptionConfiguration" :
{
"kmsKeyName" : "kms-resource-id"
},
"settings":
{
"backupConfiguration":
{
"enabled":true
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Crea un backup per un'istanza abilitata per CMEK
Quando crei un backup di un'istanza Cloud SQL, il backup viene criptato con la stessa versione della chiave primaria della chiave gestita dal cliente dell'istanza principale. Se l'istanza utilizza una CMEK creata da Autokey di Cloud KMS, il backup utilizza comunque la stessa chiave dell'istanza principale; Autokey non crea chiavi per i backup.
Consulta Creazione e gestione di backup on demand e automatici.
Nel modulo Crea un backup verrà visualizzato il messaggio: "Il backup verrà criptato con la versione principale della chiave di crittografia gestita dal cliente di questa istanza. Se qualcuno elimina o disattiva questa versione della chiave, tutti i dati di backup criptati utilizzando quella versione della chiave andranno persi definitivamente. Puoi controllare la versione principale della chiave in Cloud KMS."
Nella pagina dei backup, l'elenco dei backup abilitati con chiavi di crittografia gestite dal cliente presenta due colonne aggiuntive. Una colonna che mostra che il backup è per un'istanza abilitata per CMEK e una colonna che mostra la versione della chiave utilizzata per criptare il backup.
Visualizza le informazioni sulla chiave per un'istanza abilitata per CMEK
Dopo aver creato un'istanza Cloud SQL, puoi consultare l'elenco delle istanze o la pagina di riepilogo delle istanze per verificare che sia stata creata utilizzando una chiave di crittografia gestita dal cliente. I dettagli mostrano anche la chiave utilizzata per creare l'istanza.
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Nell'elenco delle istanze, scorri verso destra fino a visualizzare la colonna Crittografia. In questa colonna vengono visualizzati i valori Gestita da Google e Gestita dal cliente.
- Fai clic sul nome di un'istanza per aprire la relativa pagina Panoramica. La chiave di crittografia gestita dal cliente è elencata nel riquadro Configurazione.
Crittografa di nuovo un'istanza o una replica abilitata per CMEK esistente
Puoi criptare nuovamente le istanze e le repliche Cloud SQL esistenti con l'ultima versione della chiave primaria. Quando esegui nuovamente la crittografia delle istanze che utilizzano Persistent Disk per lo spazio di archiviazione, l'operazione viene completata senza tempi di inattività.
Per ulteriori informazioni sulla ricrittografia dell'istanza o della replica abilitata per CMEK esistente, consulta Informazioni sulle chiavi.
Ottieni la nuova versione della chiave primaria
Per criptare nuovamente l'istanza o la replica con una nuova versione, devi disporre della nuova versione della chiave primaria. Se hai bisogno di una nuova versione della chiave per le tue istanze, devi ruotare la chiave utilizzando Cloud Key Management Service. Per ruotare la chiave principale, consulta Ruota una chiave.
Una volta completata rotazione della chiave, attendi che la modifica della chiave primaria venga propagata prima di criptare nuovamente le istanze. Se la modifica della versione della chiave non è coerente, l'istanza continuerà a utilizzare la versione precedente della chiave dopo la nuova crittografia. Per saperne di più, consulta Coerenza delle versioni delle chiavi.
Crittografa di nuovo l'istanza abilitata per CMEK
Al termine rotazione della chiave, esegui nuovamente la crittografia dell'istanza o della replica abilitata per CMEK esistente. La nuova crittografia richiede tempi di inattività solo per le istanze che utilizzano l'opzione di archiviazione Google Cloud Hyperdisk bilanciato.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Nella sezione Configurazione, fai clic su Crittografa nuovamente l'istanza.
- Nella finestra di dialogo visualizzata, conferma la selezione facendo clic su Esegui di nuovo la crittografia.
gcloud
Per criptare nuovamente l'istanza o la replica, esegui questo comando:
gcloud sql instances reencrypt INSTANCE_NAME
INSTANCE_NAME con il nome dell'istanza o della replica
che stai criptando nuovamente.
REST v1
Per criptare nuovamente l'istanza o la replica con la nuova chiave, esegui il seguente comando:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2023-06-28T21:19:09.503Z",
"operationType": "REENCRYPT",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
Per criptare nuovamente l'istanza o la replica con la nuova chiave, esegui questo comando:POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2023-06-28T21:22:13.663Z",
"operationType": "REENCRYPT",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Backup con nuova crittografia automatica
Quando esegui nuovamente la crittografia di un'istanza principale che utilizza l'opzione di archiviazione Google Cloud Hyperdisk bilanciato, Cloud SQL crea automaticamente un backup on demand chiamato backup di nuova crittografia. I backup di nuova crittografia non vengono creati per le istanze che utilizzano Persistent Disk per lo spazio di archiviazione.
Nell'elenco dei backup per l'istanza Cloud SQL, il backup di nuova crittografia è elencato come tipo on-demand ed è etichettato con backup created automatically for data before CMEK
re-encryption.
Come per gli altri backup on demand, i backup di nuova crittografia rimangono visibili finché non li elimini o non elimini l'istanza.
Limitazioni della nuova crittografia
Quando esegui nuovamente la crittografia di un'istanza, tieni presente le seguenti limitazioni:
- Non puoi eseguire altre operazioni di amministrazione sull'istanza mentre è in corso l'operazione di nuova crittografia.
- Per le istanze che utilizzano l'opzione di archiviazione Google Cloud Hyperdisk bilanciato, l'operazione di nuova crittografia attiva un tempo di inattività che dipende dalle dimensioni dell'istanza o della replica.
- Le repliche di un'istanza non vengono criptate di nuovo quando un'istanza viene criptata. Devi criptare nuovamente ogni replica separatamente.
- I backup non vengono criptati nuovamente in modo automatico con la nuova versione della chiave quando cripti nuovamente l'istanza. Per ripristinare il backup o il recupero point-in-time in un momento successivo alla creazione del backup, devi conservare la versione della chiave Cloud KMS con cui è criptato il backup.
- I backup creati dopo la rotazione della chiave Cloud KMS con cui è criptata l'istanza utilizzeranno automaticamente la versione della chiave primaria di quella chiave, anche se l'istanza non è criptata con questa versione della chiave.
Per la risoluzione dei problemi, consulta la tabella di risoluzione dei problemi di nuova crittografia.
Backup avanzati
Quando utilizzi i backup avanzati per proteggere un'istanza abilitata per CMEK, i backup utilizzano automaticamente la stessa CMEK dell'istanza. Puoi eseguire il backup delle istanze abilitate per CMEK solo in un vault di backup abilitato per CMEK. Tuttavia, i backup di Cloud SQL nel vault di backup verranno criptati utilizzando la chiave CMEK ereditata dall'istanza, non la chiave del vault.
Prima di poter abilitare i backup avanzati per la tua istanza, devi completare i passaggi elencati in Esegui il backup delle istanze Cloud SQL in un vault di backup.
Utilizza Cloud External Key Manager (Cloud EKM)
Per proteggere i dati nelle istanze Cloud SQL, puoi utilizzare le chiavi che gestisci all'interno di un partner di gestione delle chiavi esterne supportato. Per saperne di più, consulta Cloud External Key Manager, inclusa la sezione Considerazioni.
Quando è tutto pronto per creare una chiave Cloud EKM, consulta Gestione delle chiavi Cloud EKM. Dopo aver creato una chiave, fornisci il nome della chiave quando crei un'istanza Cloud SQL.
Puoi utilizzare Key Access Justifications nell'ambito di Cloud EKM. Key Access Justifications ti consente di visualizzare il motivo di ogni richiesta di Cloud EKM. Inoltre, in base alla giustificazione fornita, puoi approvare o rifiutare automaticamente una richiesta. Per saperne di più, consulta la panoramica di Key Access Justifications.
Pertanto, Key Access Justifications offre un controllo aggiuntivo sui tuoi dati fornendo una giustificazione per ogni tentativo di decriptarli.
Google non ha il controllo sulla disponibilità delle chiavi in un sistema di gestione delle chiavi esterno del partner.
Disabilita e riabilita le versioni delle chiavi
Consulta i seguenti argomenti:
Risoluzione dei problemi
Questa sezione descrive i passaggi da provare quando ricevi un messaggio di errore durante la configurazione o l'utilizzo di istanze abilitate per CMEK.
Le operazioni dell'amministratore di Cloud SQL, come la creazione, la clonazione o l'aggiornamento, potrebbero non riuscire a causa di errori di Cloud KMS e di ruoli o autorizzazioni mancanti. I motivi più comuni dell'errore includono una versione della chiave Cloud KMS mancante, una versione della chiave Cloud KMS disabilitata o eliminata, autorizzazioni IAM insufficienti per accedere alla versione della chiave Cloud KMS o la versione della chiave Cloud KMS si trova in una regione diversa rispetto all'istanza Cloud SQL. Utilizza la seguente tabella per la risoluzione dei problemi per diagnosticare e risolvere i problemi comuni.
Tabella per la risoluzione dei problemi relativi alle chiavi di crittografia gestite dal cliente
| Per questo errore… | Il problema potrebbe essere… | Prova… |
|---|---|---|
| Account di servizio per prodotto e per progetto non trovato | Il nome del account di servizio non è corretto. | Assicurati di aver creato un account di servizio per il progetto utente corretto.
|
| Impossibile concedere l'accesso al account di servizio | L'account utente non dispone dell'autorizzazione per concedere l'accesso a questa versione della chiave. | Aggiungi il ruolo Organization Administrator al tuo account utente o di servizio.
|
| La versione della chiave Cloud KMS è stata eliminata | La versione della chiave viene eliminata. | Se la versione della chiave viene distrutta, non puoi utilizzarla per criptare o decriptare i dati. |
| La versione della chiave Cloud KMS è disabilitata | La versione della chiave è disabilitata. | Riattiva la versione della chiave Cloud KMS.
|
| Autorizzazione insufficiente per utilizzare la chiave Cloud KMS | Il ruolo cloudkms.cryptoKeyEncrypterDecrypter non è presente nell'account utente o di servizio che utilizzi per eseguire operazioni sulle istanze Cloud SQL oppure la versione della chiave Cloud KMS non esiste. |
Nel progetto Google Cloud che ospita la chiave, aggiungi il ruolo cloudkms.cryptoKeyEncrypterDecrypter al tuo utente o account di servizio.
VAI ALLA PAGINA DEGLI ACCOUNT IAM Se il ruolo è già stato assegnato al tuo account, consulta Creazione di una chiave per scoprire come creare una nuova versione della chiave. Vedi nota. |
| Chiave Cloud KMS non trovata | La versione della chiave non esiste. | Crea una nuova versione della chiave. Consulta Creazione di una chiave. Vedi nota. |
| Chiave EKM non raggiungibile | La chiave del gestore di chiavi esterno (EKM) non è raggiungibile per diverse ore. Anche dopo più tentativi, la chiave EKM rimane non raggiungibile.
Se l'istanza è sospesa perché una chiave non è disponibile, ma la chiave risulta attiva e disponibile nella console Google Cloud , è probabile che il problema riguardi la connessione o l'autenticazione EKM. |
Verifica lo stato della connessione EKM e risolvi il problema con il tuo provider EKM.
|
| L'istanza Cloud SQL e la versione della chiave Cloud KMS si trovano in regioni diverse | La versione della chiave Cloud KMS e l'istanza Cloud SQL devono trovarsi nella stessa regione. Non funziona se la versione della chiave Cloud KMS si trova in una regione globale o in più regioni. | Crea una versione della chiave nella stessa regione in cui vuoi creare le istanze. Consulta la sezione Creazione di una chiave. Vedi nota. |
| La versione della chiave Cloud KMS viene ripristinata, ma l'istanza è ancora sospesa dopo alcuni minuti. | Il processo di convalida interna dell'istanza può richiedere fino a 10 minuti prima che l'istanza torni disponibile. | Attendi 10 minuti affinché l'istanza diventi disponibile. |
| La versione della chiave Cloud KMS è stata ripristinata, ma l'istanza è ancora sospesa dopo più di 10 minuti. | La versione della chiave è disattivata o non concede le autorizzazioni appropriate. | Riattiva la versione della chiave e concedi il ruolo cloudkms.cryptoKeyEncrypterDecrypter
al tuo account utente o di servizio nel progetto Google Cloud che ospita la chiave. |
Tabella per la risoluzione dei problemi di nuova crittografia
| Per questo errore… | Il problema potrebbe essere… | Prova… |
|---|---|---|
| La nuova crittografia della risorsa CMEK non è riuscita perché la chiave Cloud KMS non è accessibile. Assicurati che la versione della chiave primaria sia abilitata e che l'autorizzazione sia concessa correttamente. | La versione della chiave è disattivata o non concede le autorizzazioni appropriate. | Riattiva la versione della chiave Cloud KMS: VAI ALLA PAGINA CHIAVI DI CRITTOGRAFIA Nel progetto Google Cloud che ospita la chiave, verifica che il ruolo |
| La nuova crittografia della risorsa CMEK non è riuscita a causa di un errore interno del server. Riprova più tardi | Si è verificato un errore interno del server. | Riprova a eseguire la nuova crittografia. Per ulteriori informazioni, consulta Ricrittografa un'istanza o una replica abilitata per CMEK esistente |
Passaggi successivi
- Configura l'accesso all'istanza.
- Connettiti all'istanza con un client.
- Crea un database nell'istanza.
- Importa i dati nell'istanza.
- Crea utenti nell'istanza.
- Scopri di più sulle impostazioni dell'istanza.
- Scopri come aggiungere Key Access Justifications alle tue chiavi.