Questa pagina descrive come utilizzare le chiavi di crittografia gestite dal cliente (CMEK) create manualmente per Spanner.
Per scoprire di più su CMEK, consulta la panoramica delle chiavi di crittografia gestite dal cliente (CMEK).
Crea un database abilitato per CMEK
Crea una chiave in Cloud Key Management Service (Cloud KMS). Puoi utilizzare i seguenti tipi di chiavi che hanno diversi livelli di protezione in Spanner:
La chiave deve trovarsi nella stessa località dell'istanza Spanner. Ad esempio, se la configurazione dell'istanza Spanner si trova in
us-west1, anche la posizione del portachiavi Cloud KMS deve essereus-west1.Non tutte le configurazioni di istanze multiregionali di Spanner hanno una posizione del portachiavi Cloud KMS corrispondente. Per i database Spanner nelle configurazioni di istanze personalizzate, a due regioni o multiregionali, puoi utilizzare più chiavi Cloud KMS regionali (a regione singola) per proteggere il tuo database. Ad esempio:
- Se il tuo database Spanner si trova nella configurazione
dell'istanza multiregionale
nam14, puoi creare chiavi Cloud KMS inus-east4,northamerica-northeast1eus-east1. - Se il tuo database si trova in una configurazione di istanza personalizzata che utilizza
nam3come configurazione di base con una replica di sola lettura aggiuntiva inus-central2, puoi creare chiavi Cloud KMS inus-east4,us-east1,us-central1eus-central2.
(Facoltativo) Per visualizzare un elenco delle posizioni delle repliche nella configurazione dell'istanza Spanner, utilizza il comando
gcloud spanner instances get-locations:gcloud spanner instances get-locations <var>INSTANCE_ID</var>Per maggiori informazioni, consulta le seguenti risorse:
- Se il tuo database Spanner si trova nella configurazione
dell'istanza multiregionale
Concedi a Spanner l'accesso alla chiave.
In Cloud Shell, crea e visualizza l'agente di servizio oppure visualizzalo se l'account esiste già:
gcloud beta services identity create --service=spanner.googleapis.com \ --project=PROJECT_IDSe ti viene chiesto di installare il componente gcloud Beta Commands, digita
Y. Dopo l'installazione, il comando viene riavviato automaticamente.Il comando
gcloud services identitycrea o recupera l'agente di servizio che Spanner può utilizzare per accedere alla chiave Cloud KMS per tuo conto.L'ID account di servizio ha il formato di un indirizzo email:
Service identity created: service-xxx@gcp-sa-spanner.iam.gserviceaccount.comConcedi il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS(
cloudkms.cryptoKeyEncrypterDecrypter) al account di servizio per ogni regione (--location) nella configurazione dell'istanza Spanner. Per farlo, esegui il comandogcloud kms keys add-iam-policybinding:gcloud kms keys add-iam-policy-binding KMS_KEY \ --location KMS_KEY_LOCATION \ --keyring KMS_KEY_RING \ --project=PROJECT_ID \ --member serviceAccount:service-xxx@gcp-sa-spanner.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterEcco un output di esempio:
Updated IAM policy for key [KMS_KEY]Se utilizzi più chiavi Cloud KMS per proteggere il tuo database, esegui il comando
gcloud kms keys add-iam-policybindingper tutte le tue chiavi.Questo ruolo garantisce che il account di servizio disponga dell'autorizzazione per criptare e decriptare con la chiave Cloud KMS. Per saperne di più, consulta Ruoli e autorizzazioni di Cloud KMS.
Crea il database e specifica la chiave Cloud KMS.
Console
Utilizza la console per creare database nelle configurazioni delle istanze regionali.
Nella console Google Cloud , vai alla pagina Istanze.
Fai clic sull'istanza in cui vuoi creare un database.
Fai clic su Crea database e compila i campi obbligatori.
Fai clic su Mostra opzioni di crittografia.
Seleziona Chiave Cloud KMS.
Seleziona una chiave dall'elenco a discesa.
L'elenco delle chiavi è limitato al progetto Google Cloud corrente. Per utilizzare una chiave di un progetto Google Cloud diverso, crea il database utilizzando gcloud CLI anziché la consoleGoogle Cloud .
Una volta creato il database, puoi verificare che sia abilitato a CMEK visualizzando la pagina Panoramica del database.

gcloud
Per creare un database abilitato per CMEK in una configurazione di istanza regionale, personalizzata o multiregionale, esegui il comando gcloud spanner databases create:
gcloud spanner databases create DATABASE \
--project=SPANNER_PROJECT_ID \
--instance=INSTANCE_ID \
--ddl="CREATE TABLE Users (Id INT64 NOT NULL, FirstName STRING(100) NOT NULL, LastName STRING(100) NOT NULL,) PRIMARY KEY (Id)" \
--kms-project=KMS_PROJECT_ID \
--kms-location=KMS_KEY_LOCATION \
--kms-keyring=KMS_KEYRING \
--kms-keys=KMS_KEY_1[, KMS_KEY_2 ... ]Per verificare che un database sia abilitato per CMEK, esegui il comando
gcloud spanner databases describe:
gcloud spanner databases describe DATABASE \
--project=SPANNER_PROJECT_ID \
--instance=INSTANCE_IDI database abilitati per CMEK includono un campo per encryptionConfig, come mostrato nell'output di esempio seguente:
encryptionConfig:
kmsKeyNames:projects/my-kms-project/locations/eur5/keyRings/my-kms-key-ring/cryptoKeys/my-kms-key
name: projects/my-spanner-project/instances/my-instance/databases/my-db
state: READY
Librerie client
C#
Per creare un database abilitato per CMEK in una configurazione dell'istanza regionale:
Per creare un database abilitato per CMEK in una configurazione dell'istanza multiregionale:
C++
Per creare un database abilitato per CMEK in una configurazione dell'istanza regionale: