Questo documento fornisce informazioni su come utilizzare le chiavi Cloud Key Management Service Cloud KMS create manualmente per criptare i dischi e altre risorse correlate allo spazio di archiviazione. Le chiavi gestite in Cloud KMS sono note come chiavi di crittografia gestite dal cliente (CMEK).
Puoi utilizzare le chiavi CMEK per criptare le risorse di Compute Engine, come dischi, immagini macchina, snapshot istantanei e snapshot standard.
Per scoprire di più sull'utilizzo delle chiavi di crittografia fornite dal cliente (CSEK) per criptare dischi e altre risorse di archiviazione, consulta Criptare i dischi con le chiavi di crittografia fornite dal cliente.
Scopri di più sulla crittografia dei dischi.
Prima di iniziare
- Informazioni su dischi, immagini, snapshot di dischi permanenti e istanze di macchine virtuali (VM).
- Decidi se eseguire Compute Engine e Cloud KMS nello stesso progetto Google Cloud o in progetti diversi. Per informazioni sugli ID progetto e sui numeri di progetto Google Cloud , consulta la pagina Identificazione dei progetti.
- Per il progetto Google Cloud che esegue Cloud KMS, procedi nel seguente modo:
-
Enable the Cloud KMS API.
-
- + Se vuoi creare un nuovo volume Hyperdisk bilanciato in modalità riservata, assicurati che il tuo caso d'uso sia supportato esaminando i limiti e le regioni supportate pertinenti.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo di verifica dell'identità per poter accedere a Google Cloud servizi e API.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per assicurarti che l'agente di servizio Compute Engine disponga delle autorizzazioni necessarie per proteggere le risorse utilizzando le chiavi Cloud KMS, chiedi all'amministratore di concedere all'agente di servizio Compute Engine il ruolo IAM Autore crittografia/decrittografia CryptoKey Cloud KMS (
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.roles/cloudkms.cryptoKeyEncrypterDecrypter
) sul tuo progetto.L'amministratore potrebbe anche assegnare all'agente di servizio Compute Engine le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
L'agente di servizio Compute Engine ha il seguente formato:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
Puoi utilizzare Google Cloud CLI per assegnare il ruolo:
gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Sostituisci quanto segue:
KMS_PROJECT_ID
: l'ID del tuo Google Cloud progetto che esegue Cloud KMS (anche se si tratta dello stesso progetto che esegue Compute Engine)PROJECT_NUMBER
: il numero di progetto (non l'ID progetto Google Cloud ) del tuo progetto Google Cloud che esegue le risorse Compute Engine
Specifiche di crittografia
Le chiavi Cloud KMS utilizzate per proteggere i dati in Compute Engine sono chiavi AES-256. Queste chiavi sono chiavi di crittografia della chiave e criptano le chiavi di crittografia dei dati che criptano i tuoi dati, non i dati stessi.
I dati sui dischi sono criptati utilizzando Google-owned and Google-managed encryption keys. Per le specifiche relative alla crittografia predefinita in Google Cloud, consulta Crittografia at-rest predefinita nella documentazione sulla sicurezza.
Con la modalità riservata per Hyperdisk bilanciato e Cloud HSM, la chiave di crittografia dei dati (DEK) ha proprietà di sicurezza aggiuntive con enclave supportate dall'hardware.
Limitazioni
Non puoi criptare le risorse esistenti con le chiavi CMEK. Puoi criptare dischi, immagini e snapshot con CMEK solo al momento della creazione.
Quando crei un disco da uno snapshot istantaneo criptato con CMEK, devi specificare la chiave utilizzata per criptare il disco di origine. Non devi specificare la chiave quando utilizzi altre risorse criptate con CMEK, come cloni di dischi e snapshot standard.
(Anteprima) Quando crei uno snapshot con ambito regionale da un disco criptato con CMEK, devi creare lo snapshot con una CMEK regionale che si trova nella stessa località dello snapshot. In questo modo si garantisce l'isolamento regionale dello snapshot e si aumenta l'affidabilità dello snapshot.
Non puoi utilizzare le tue chiavi con i dischi SSD locali, perché le chiavi sono gestite dall'infrastruttura di Google Cloud e vengono eliminate quando la VM viene arrestata.
Le risorse regionali (dischi) possono essere criptate solo da una chiave in una delle seguenti località Cloud KMS:
- Una chiave nella stessa regione del disco
- Una chiave multiregionale nella stessa posizione geografica del disco
- Una chiave nella località globale.
Ad esempio, un disco nella zona
us-west1-a
può essere criptato da una chiave nella località globale, nella regioneus-west1
o nella località multiregionaleus
.Le risorse globali (come immagini e snapshot) possono essere criptate con chiavi in qualsiasi posizione. Per ulteriori informazioni, consulta Tipi di località per Cloud KMS.
La crittografia di un disco, uno snapshot o un'immagine con una chiave è permanente. Non puoi rimuovere la crittografia dalla risorsa, modificare il tipo di crittografia o cambiare la chiave utilizzata. L'unico modo per rimuovere la crittografia o modificare le chiavi di crittografia è creare una copia della risorsa specificando una nuova opzione di crittografia. Ad esempio, per modificare l'utilizzo delle chiavi generate da Google in CMEK per un disco, segui questi passaggi:
- Crea uno snapshot del disco.
- Crea un nuovo disco dallo snapshot. Quando crei il nuovo disco, seleziona il tipo di crittografia che preferisci.
Per saperne di più, consulta Modificare il tipo di disco.
Creazione manuale o automatica delle chiavi
Puoi creare le chiavi Cloud KMS manualmente o utilizzare Cloud KMS Autokey. Autokey semplifica la creazione e la gestione delle chiavi Cloud KMS automatizzando il provisioning e l'assegnazione. Con Autokey, non devi eseguire il provisioning di portachiavi, chiavi e service account in anticipo. Vengono invece generati su richiesta nell'ambito della creazione delle risorse Compute Engine. Per ulteriori informazioni, consulta la panoramica di Autokey.
Creare manualmente chiavi automatizzate e chiave
Per il progetto Google Cloud che esegue Cloud KMS, crea un keyring e una chiave come descritto in Creazione di keyring e chiavi.
Cripta un nuovo Persistent Disk con CMEK
Puoi criptare un nuovo Persistent Disk fornendo una chiave durante la creazione della VM o del disco.
Console
- Nella console Google Cloud vai alla pagina Dischi.
- Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
- In Crittografia, seleziona Chiave gestita dal cliente.
- Nel menu a discesa, seleziona la chiave Cloud KMS che vuoi utilizzare per criptare questo disco.
- Per creare il disco, fai clic su Crea.
gcloud
Crea un disco criptato utilizzando il comando
gcloud compute disks create
e specifica la chiave utilizzando il flag--kms-key
.gcloud compute disks create DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Sostituisci quanto segue:
DISK_NAME
: il nome del nuovo discoKMS_PROJECT_ID
: il progetto proprietario della chiave Cloud KMSREGION
: la regione in cui si trova la chiaveKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il disco
REST
Crea una richiesta
POST
per il metodoinstances.insert
. Per criptare un disco, utilizza la proprietàdiskEncryptionKey
con la proprietàkmsKeyName
. Ad esempio, puoi criptare un nuovo disco durante la creazione della VM con la tua chiave Cloud KMS utilizzando quanto segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "initializeParams": { "sourceImage": "SOURCE_IMAGE" }, "boot": true } ], ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del Google Cloud progetto che esegue Compute EngineZONE
: la zona in cui creare la VMMACHINE_TYPE
: il tipo di macchina, ad esempioc3-standard-4
KMS_PROJECT_ID
: il progetto proprietario della chiave Cloud KMSREGION
: la regione in cui si trova il discoKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il discoSOURCE_IMAGE
: l'immagine da utilizzare per creare la VM, ad esempioprojects/debian-cloud/global/images/debian-11-bullseye-v20231115
Allo stesso modo, puoi utilizzare il metodo
disks.insert
per creare un nuovo Persistent Disk autonomo e criptarlo con la tua chiave Cloud KMS:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE { "name": "DISK_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del Google Cloud progetto che esegue Compute EngineZONE
: la zona in cui creare il discoSOURCE_IMAGE
: l'immagine da utilizzare per la creazione del disco, ad esempioprojects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: un nome per il nuovo discoKMS_PROJECT_ID
: il progetto proprietario della chiave Cloud KMSREGION
: la regione in cui si trova il discoKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il discoDISK_TYPE
: il tipo di disco da creare
Crea un disco Hyperdisk bilanciato in modalità riservata
Puoi creare un nuovo disco Hyperdisk bilanciato in modalità riservata con la consoleGoogle Cloud , Google Cloud CLI o REST. Per creare un disco che non sia in modalità confidenziale, segui i passaggi descritti in Crea un Persistent Disk da uno snapshot criptato con CMEK.
Console
- Nella console Google Cloud vai alla pagina Dischi.
- Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
- Nella sezione Impostazioni disco, scegli Hyperdisk bilanciato per il tipo di disco.
- Facoltativo. Modifica le impostazioni predefinite di Dimensioni, IOPS sottoposte a provisioning e Throughput riservato per il disco.
- Nella sezione Crittografia, seleziona Chiave Cloud KMS.
- Nell'elenco delle chiavi, seleziona la chiave Cloud HSM che vuoi utilizzare per criptare questo disco.
- Nella sezione Confidential Computing, seleziona Abilita i servizi di Confidential Computing.
- Per creare il disco, fai clic su Crea.
gcloud
Cripta un nuovo disco con la modalità riservata per Hyperdisk Balanced utilizzando il comando
gcloud compute disks create
. Attiva la modalità riservata con il flag--confidential-compute
e specifica la chiave utilizzando il flag--kms-key
.gcloud compute disks create DISK_NAME \ --type=hyperdisk-balanced \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY \ --confidential-compute
Sostituisci quanto segue:
DISK_NAME
: il nome del nuovo discoKMS_PROJECT_ID
: il progetto proprietario della chiave Cloud HSMREGION
: la regione in cui si trova la chiaveKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il disco
REST
Crea una richiesta
POST
per il metodoinstances.insert
. Per criptare un disco con la modalità riservata per Hyperdisk Balanced, utilizza la proprietàdiskEncryptionKey
con la proprietàkmsKeyName
e imposta il flagenableConfidentialCompute
. Ad esempio, puoi criptare un nuovo disco durante la creazione della VM con la chiave Cloud HSM utilizzando quanto segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "DISK_TYPE", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "initializeParams": { "sourceImage": "SOURCE_IMAGE", "enableConfidentialCompute": true }, "boot": true } ], "networkInterfaces": [ { "network": "global/networks/default" } ] }
Sostituisci quanto segue:
DISK_TYPE
: il tipo di disco da creare, ad esempiohyperdisk-balanced
PROJECT_ID
: l'ID del progetto Google Cloud che esegue Compute EngineZONE
: la zona in cui creare la VMMACHINE_TYPE
: il tipo di macchina, ad esempion2d-standard-4
KMS_PROJECT_ID
: il progetto proprietario della chiave Cloud HSMREGION
: la regione in cui si trova il discoKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il discoSOURCE_IMAGE
: l'immagine che supporta Confidential VM da utilizzare per la creazione della VM, ad esempioprojects/debian-cloud/global/images/debian-11-bullseye-v20231115
Allo stesso modo, puoi utilizzare il metodo
disks.insert
per creare una nuova modalità riservata per Hyperdisk Balanced:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE { "name": "DISK_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE", "enableConfidentialCompute": true }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del Google Cloud progetto che esegue Compute EngineZONE
: la zona in cui creare il discoSOURCE_IMAGE
: l'immagine che supporta Confidential VM durante la creazione del disco, ad esempioprojects/debian-cloud/global/images/debian-11-bullseye-v20231115
DISK_NAME
: un nome per il nuovo discoKMS_PROJECT_ID
: il progetto proprietario della chiave Cloud HSMREGION
: la regione in cui si trova il discoKEY_RING
: il nome delle chiavi automatizzate che includono la chiaveKEY
: il nome della chiave utilizzata per criptare il discoDISK_TYPE
: il tipo di disco da creare, ad esempiohyperdisk-balanced
.
Crea uno snapshot da un disco criptato con CMEK
Per proteggere uno snapshot creato da un disco criptato con CMEK, devi utilizzare la stessa chiave di crittografia che hai utilizzato per criptare il disco.
Non puoi creare uno snapshot che utilizza una CMEK a meno che anche il disco di origine non utilizzi CMEK. Inoltre, non puoi convertire dischi o snapshot criptati con CMEK per utilizzare la crittografia predefinita diGoogle Cloud , a meno che tu non crei una nuova immagine disco e un nuovo disco permanente.
Gli snapshot dei dischi criptati con CMEK sono incrementali.
Console
- Nella console Google Cloud , vai alla pagina Snapshot.
- Fai clic su Crea snapshot.
- In Disco di origine, scegli il disco di origine per lo snapshot. Lo snapshot viene criptato automaticamente con la stessa chiave utilizzata dal disco di origine.
gcloud
Per la crittografia gestita dal cliente, la chiave Cloud KMS utilizzata per criptare il disco viene utilizzata anche per criptare lo snapshot.
Puoi creare lo snapshot nella policy della località di archiviazione definita dalle tue impostazioni degli snapshot o utilizzando una località di archiviazione alternativa di tua scelta. Per saperne di più, consulta la sezione sulla scelta della località di archiviazione degli snapshot.
Per creare uno snapshot nella località predefinita o personalizzata configurata nelle impostazioni degli snapshot, utilizza il comando
gcloud compute snapshots create
.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE
-
In alternativa, per ignorare le impostazioni degli snapshot e crearne uno in una località di archiviazione personalizzata, includi il flag
--storage-location
per indicare dove archiviare lo snapshot.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=SOURCE_DISK_NAME \ --snapshot-type=SNAPSHOT_TYPE \ --storage-location=STORAGE_LOCATION
-
(Anteprima) Per creare uno snapshot con ambito a livello di regione in una regione consentita, includi il flag
--region
per indicare dove creare lo snapshot.gcloud beta compute snapshots create SNAPSHOT_NAME \ --region=SNAPSHOT_SCOPE_REGION --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=SOURCE_ZONE \ --snapshot-type=SNAPSHOT_TYPE \ --kms-key=projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY
Sostituisci quanto segue:
- SNAPSHOT_NAME: un nome per lo snapshot.
- SOURCE_ZONE: la zona del disco di origine.
- SOURCE_DISK_NAME: il nome del volume del disco da cui vuoi creare uno snapshot.
- KMS_PROJECT_ID: il progetto che contiene la chiave di crittografia archiviata in Cloud Key Management Service.
- KEY_REGION: la regione in cui si trova la chiave Cloud KMS.
- KEY_RING: il nome del portachiavi che contiene la chiave Cloud KMS.
- SNAPSHOT_KEY: il nome della chiave Cloud KMS che hai utilizzato per criptare il disco di origine.
- SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO.
Se non viene specificato un tipo di snapshot, viene creato uno snapshot
STANDARD
. -
(Facoltativo) STORAGE_LOCATION: per gli snapshot con ambito globale, indica la multi-regione di Cloud Storage o la regione di Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
Utilizza il parametro
--storage-location
solo se vuoi sostituire la località di archiviazione personalizzata o predefinita configurata nelle impostazioni degli snapshot. -
(Facoltativo) SNAPSHOT_SCOPE_REGION: per gli snapshot con ambito a livello di regione, indica la regione che lo snapshot ha come ambito. Se includi questo parametro, non puoi utilizzare il parametro
--storage-location
. STORAGE_LOCATION viene impostato automaticamente su SNAPSHOT_SCOPE_REGION.
REST
Puoi creare lo snapshot nella policy della località di archiviazione definita dalle tue impostazioni degli snapshot o utilizzando una località di archiviazione alternativa di tua scelta. Per saperne di più, consulta la sezione sulla scelta della località di archiviazione degli snapshot.
-
Per creare uno snapshot nella località predefinita o personalizzata configurata nelle impostazioni degli snapshot, invia una richiesta
POST
al metodosnapshots.insert
:POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY" }, "snapshotType": "SNAPSHOT_TYPE" }
-
In alternativa, per ignorare le impostazioni degli snapshot e crearne uno in una località di archiviazione personalizzata, invia una richiesta
POST
al metodosnapshots.insert
e includi la proprietàstorageLocations
nella richiesta:POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME", "snapshotEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY" }, "snapshotType": "SNAPSHOT_TYPE", "storageLocations": [ "STORAGE_LOCATION" ], }
-
(Anteprima) Per creare uno snapshot con ambito a livello di regione in una regione consentita, invia una richiesta
POST
al metodosnapshots.insert
e definisci la regione di creazione:POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots { "name": "SNAPSHOT_NAME", "sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME", "snapshotType": "SNAPSHOT_TYPE", "snapshotEncryptionKey": { "kmsKeyName":"projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY", }, }
Sostituisci quanto segue:
- DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi creare lo snapshot.
- SNAPSHOT_NAME: un nome per lo snapshot.
- SOURCE_PROJECT_ID: l'ID del progetto del disco di origine.
- SOURCE_ZONE: la zona del disco di origine.
- SOURCE_DISK_NAME: il nome del disco da cui vuoi creare uno snapshot.
- KMS_PROJECT_ID: il progetto che contiene la chiave di crittografia archiviata in Cloud Key Management Service.
- KEY_REGION: la regione in cui si trova la chiave Cloud KMS.
- KEY_RING: il nome del portachiavi che contiene la chiave Cloud KMS.
- SNAPSHOT_KEY: il nome della chiave Cloud KMS che hai utilizzato per criptare il disco di origine.
- SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO.
Se non viene specificato un tipo di snapshot, viene creato uno snapshot
STANDARD
. -
(Facoltativo) STORAGE_LOCATION: per gli snapshot con ambito globale, indica la multi-regione di Cloud Storage o la regione di Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola località di archiviazione.
Utilizza il parametro
storageLocations
solo se vuoi sostituire la località di archiviazione personalizzata o predefinita configurata nelle impostazioni degli snapshot. (Facoltativo) SNAPSHOT_SCOPE_REGION: per gli snapshot con ambito a livello di regione, indica la regione che lo snapshot ha come ambito. Se includi questo parametro, non puoi utilizzare il parametro
storageLocations
. STORAGE_LOCATION viene impostato automaticamente su SNAPSHOT_SCOPE_REGION.
Cripta un'immagine importata con CMEK
Puoi criptare una nuova immagine quando importi un'immagine personalizzata in Compute Engine. Prima di poter importare un'immagine, devi creare e comprimere un file immagine del disco e caricare il file compresso su Cloud Storage.
Console
- Nella console Google Cloud vai alla pagina Immagini.
- Fai clic su Crea immagine.
- Per Disco di origine, seleziona il disco di cui vuoi creare un'immagine.
- Per Crittografia, seleziona Chiave gestita dal cliente.
- Nel menu a discesa, seleziona la chiave Cloud KMS che vuoi utilizzare per criptare questa immagine.
- Continua con il processo di creazione dell'immagine.
gcloud
Per importare e criptare un'immagine, utilizza il comando
gcloud compute images create
. Per la crittografia gestita dal cliente, specifica la chiave Cloud KMS per l'immagine.gcloud compute images create IMAGE_NAME \ --source-disk=SOURCE_DISK \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Sostituisci quanto segue:
IMAGE_NAME
: il nome dell'immagine che stai creandoSOURCE_DISK
: il nome del disco di cui creare uno snapshotKMS_PROJECT_ID
: il progetto che contiene la chiave Cloud KMSREGION
: la regione in cui si trova la chiave Cloud KMSKEY_RING
: la raccolta di chiavi che contiene la chiave Cloud KMSKEY
: il nome della chiave da utilizzare per criptare il nuovo disco
REST
Per criptare un'immagine importata, crea una richiesta
POST
al metodoimages.insert
. Specifica l'URI del file compresso, aggiungi la proprietàimageEncryptionKey
alla richiesta di creazione dell'immagine e specifica la chiave per criptare l'immagine nella proprietàkmsKeyName
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "IMAGE_NAME", "sourceType": "RAW", "imageEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui creare l'immagine criptataIMAGE_NAME
: il nome dell'immagine che stai creandoKMS_PROJECT_ID
: il progetto che contiene la chiave Cloud KMSREGION
: la regione in cui si trova la chiave Cloud KMSKEY_RING
: la raccolta di chiavi che contiene la chiave Cloud KMSKEY
: il nome della chiave che hai utilizzato per criptare il disco di origine
Crea un disco da uno snapshot criptato con CMEK
Per creare un nuovo disco da uno snapshot criptato:
Console
- Nella console Google Cloud vai alla pagina Dischi.
- Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
- Per Tipo di origine, seleziona lo snapshot o l'immagine che vuoi utilizzare.
(Facoltativo) Se vuoi specificare una nuova chiave di crittografia, per Crittografia, specifica il tipo di chiave di crittografia da utilizzare, quindi fornisci le informazioni sulla chiave di crittografia.
Se vuoi rimuovere la chiave di crittografia gestita dal cliente o fornita dal cliente, per Crittografia, utilizza il valore predefinito Google-managed encryption key.
Continua con il processo di creazione del disco.
gcloud
Per creare un nuovo disco da uno snapshot criptato con ambito globale, utilizza il comando
gcloud compute disks create
.gcloud compute disks create DISK_NAME \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
(Anteprima) Per creare un nuovo disco da uno snapshot criptato con ambito regionale, utilizza il comando
gcloud compute disks create
e specifica la regione dello snapshot di origine.gcloud compute disks create DISK_NAME \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --source-snapshot-region=SOURCE_REGION \ --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Sostituisci quanto segue:
DISK_NAME
: il nome del nuovo discoSNAPSHOT_NAME
: il nome dello snapshot criptatoPer utilizzare un'immagine anziché uno snapshot, sostituisci
--source-snapshot SNAPSHOT_NAME
con--image IMAGE_NAME
.KMS_PROJECT_ID
: (facoltativo) il progetto che contiene la chiave Cloud KMS(Facoltativo)
REGION
: la regione in cui si trova la chiave Cloud KMSSOURCE_REGION
: la regione a cui è applicato lo snapshot di origineZONE
: la zona in cui si troverà il nuovo discoKEY_RING
: (facoltativo) la raccolta di chiavi che contiene la chiave Cloud KMS.KEY
: (facoltativo) il nome della chiave Cloud KMS da utilizzare per criptare il nuovo discoPer criptare il nuovo disco, puoi eseguire una delle seguenti operazioni:
- Per specificare una nuova chiave di crittografia gestita dal cliente, utilizza il
flag
--kms-key
. - Per utilizzare il valore predefinito Google-owned and Google-managed encryption key, non includere il flag
--kms-key
.
- Per specificare una nuova chiave di crittografia gestita dal cliente, utilizza il
flag
REST
Per creare un nuovo disco da uno snapshot criptato con ambito globale, crea una richiesta
POST
al metodocompute.disks.insert
. Utilizza la proprietàsourceSnapshot
per specificare lo snapshot.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/global/snapshots/SNAPSHOT_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
(Anteprima) Per creare un nuovo disco da uno snapshot criptato con ambito a livello di regione, crea una richiesta
POST
al metodocompute.disks.insert
. Utilizza la proprietàsourceSnapshot
per specificare lo snapshot.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks { "name": "DISK_NAME", "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/regions/SOURCE_REGION/snapshots/SNAPSHOT_NAME", "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE", "zone": "projects/PROJECT_ID/zones/ZONE" "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" } }
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui creare il nuovo discoZONE
: la zona in cui creare il nuovo discoSOURCE_REGION
: la regione a cui è applicato lo snapshot di origineDISK_NAME
: il nome del nuovo discoDISK_TYPE
: L'URL completo o parziale per il tipo di disco, ad esempio,PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
SNAPSHOT_PROJECT_ID
: Il progetto che contiene lo snapshotSNAPSHOT_NAME
: Il nome dello snapshot criptatoPer utilizzare un'immagine anziché uno snapshot, sostituisci
sourceSnapshot
consourceImage
.KMS_PROJECT_ID
: (facoltativo) il progetto che contiene la chiave Cloud KMS(Facoltativo)
REGION
: la regione in cui si trova la chiave Cloud KMSKEY_RING
: (facoltativo) la raccolta di chiavi che contiene la chiave Cloud KMS.KEY
: (facoltativo) il nome della chiave Cloud KMS da utilizzare per criptare il nuovo discoSe includi
diskEncryptionKey
, il disco viene criptato con la chiave Cloud KMS specificata. Se non includidiskEncryptionKey
, il disco viene criptato utilizzando un Google-owned and Google-managed encryption key.
Collegamento di un disco di avvio criptato con CMEK a una nuova VM
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Specifica i dettagli della VM e, nella sezione Disco di avvio, fai clic su Cambia. Quindi:
- Fai clic su Dischi esistenti.
- Nell'elenco Disco, seleziona un disco esistente da collegare alla VM.
- Fai clic su Seleziona.
Continua con il processo di creazione della VM.
gcloud
Per collegare un disco criptato quando crei una nuova VM, utilizza il comando
gcloud compute instances create
. Utilizza il flag--disk
per specificare il disco di avvio criptato, come mostrato nell'esempio seguente:gcloud compute instances create VM_NAME \ ... --disk name=DISK_NAME,boot=yes
Sostituisci quanto segue:
VM_NAME
: il nome della VM che stai creandoDISK_NAME
: il nome del disco criptato
REST
Crea una richiesta
POST
per il metodocompute.instances.insert
. Utilizza la proprietàdisks
per specificare il disco di avvio criptato, come mostrato nell'esempio seguente:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "disks": [ { "deviceName": "DISK_ALIAS", "source": "projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME" } ] }
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui creare la nuova VMZONE
: la zona in cui creare la nuova VMDISK_ALIAS
: un nome del dispositivo univoco da utilizzare come alias del disco nella directory/dev/disk/by-id/google-*
della VM che esegue un sistema operativo Linux. Questo nome può essere utilizzato per fare riferimento al disco per operazioni come montaggio o ridimensionamento dall'interno dell'istanza. Se non specifichi un nome dispositivo, la VM sceglie un nome dispositivo predefinito da applicare a questo disco, nel formatopersistent-disk-x
, dovex
è un numero assegnato da Compute Engine. Questo campo è applicabile solo ai volumi deiPersistent Diski.DISK_NAME
: il nome del disco criptato
Rimuovere la chiave di crittografia Cloud KMS da un Persistent Disk
Puoi decriptare i contenuti di un disco criptato e creare un nuovo disco che utilizzi Google Cloud la criptografia predefinita. Per impostazione predefinita, Google Cloud cripta tutti i dati at-rest.
- Crea uno snapshot del disco criptato.
- Utilizza il nuovo snapshot criptato per creare un nuovo disco permanente.
Dopo aver creato il nuovo Persistent Disk, questo utilizza la crittografia Google Cloud predefinita per proteggere i contenuti del disco. Anche gli snapshot creati da questo disco devono utilizzare la crittografia predefinita.
Ruota la chiave di crittografia Cloud KMS per un disco
Ruota la chiave utilizzata per criptare il disco creando un nuovo disco che utilizza una nuova versione della chiave Cloud KMS. La rotazione delle chiavi è una best practice per rispettare le pratiche di sicurezza standardizzate. Per ruotare le chiavi:
- Ruota la chiave Cloud KMS.
- Crea uno snapshot del disco criptato.
- Utilizza il nuovo snapshot per creare un nuovo disco con la chiave ruotata nel passaggio precedente.
- Sostituisci il disco collegato alla VM che utilizza la vecchia chiave di crittografia.
Quando crei il nuovo disco, viene utilizzata la nuova versione della chiave per la crittografia. Gli snapshot creati da questo disco utilizzano l'ultima versione della chiave primaria.
Quando ruoti una chiave, i dati criptati con le versioni precedenti della chiave non vengono criptati nuovamente in modo automatico. Per saperne di più, vedi Ricrittografare i dati. La rotazione di una chiave non disattiva né elimina automaticamente una versione della chiave esistente.
Disattivare o eliminare una chiave CMEK
Se non hai più bisogno di una chiave CMEK o vuoi impedirne l'utilizzo, elimina o disabilita la chiave. L'eliminazione, la disattivazione o la rimozione delle autorizzazioni IAM per una chiave viene anche definita revoca della chiave.
Impatto della revoca della chiave sulle risorse criptate
Quando revochi una chiave di crittografia, le risorse protette dalla chiave vengono interessate come segue:
- Non puoi avviare una VM se una delle chiavi dei dischi collegati è stata revocata.
- Se un disco che utilizza la chiave è collegato a una VM in esecuzione e hai attivato l'arresto della VM in caso di revoca della chiave per la VM, Compute Engine arresta la VM entro 7 ore.
- Non puoi collegare un disco con una chiave revocata a una VM o creare uno snapshot dal disco.
- Non puoi utilizzare immagini o snapshot criptati con chiavi revocate per creare dischi.
Se disattivi la chiave, puoi invertire gli effetti precedenti attivandola. Se elimini la chiave, non puoi annullare gli effetti precedenti.
Configura l'arresto della VM in caso di revoca della chiave Cloud KMS
Puoi configurare la VM in modo che si arresti automaticamente quando revochi la chiave Cloud KMS che contribuisce a proteggere un disco collegato alla VM. Puoi revocare una chiave disattivandola o eliminandola. Se questa impostazione è attiva, la VM si arresta entro 7 ore dalla revoca della chiave.
Se riattivi la chiave, puoi riavviare la VM con il disco collegato che la chiave aiuta a proteggere. La VM non viene riavviata automaticamente dopo l'attivazione della chiave.
Console
Per configurare una VM in modo che si arresti quando viene revocata una chiave Cloud KMS, procedi nel seguente modo:
- Inizia a creare una VM che includa un disco protetto da una chiave Cloud KMS.
- Apri il menu Networking, dischi, sicurezza, gestione, single tenancy.
- Espandi la sezione Gestione.
- In Criterio di revoca della chiave di crittografia gestita dal cliente (CMEK), seleziona Arresta.
gcloud
Utilizza il comando
gcloud compute instances create
per creare una VM e includi--key-revocation-action-type=stop
.gcloud compute instances create
VM_NAME
\ --imageIMAGE
\ --key-revocation-action-type=stopREST
Utilizza il metodo
instances.insert
per creare una VM e imposta la proprietà"keyRevocationActionType"
su"STOP"
. L'esempio seguente crea la VM da un'immagine pubblica.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "
VM_NAME
", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "keyRevocationActionType": "STOP" }In alternativa, puoi configurare un template di istanza per creare VM che si arrestano in caso di revoca della chiave utilizzando Google Cloud CLI o REST.
Console
Puoi utilizzare un modello di istanza per creare VM che si arrestano quando una chiave Cloud KMS viene revocata.
- Inizia a creare un nuovo modello di istanza che includa un disco protetto da una chiave Cloud KMS.
- Apri il menu Networking, dischi, sicurezza, gestione, single tenancy.
- Espandi la sezione Gestione.
- In Criterio di revoca della chiave di crittografia gestita dal cliente (CMEK), seleziona Arresto.
gcloud
Crea un template di istanza utilizzando il comando
gcloud compute instance-templates create
e includi--key-revocation-action-type=stop
.gcloud compute instance-templates create
INSTANCE_TEMPLATE_NAME
\ --key-revocation-action-type=stopREST
Crea una richiesta POST al metodo
instanceTemplates.insert
. Nel corpo della richiesta, devi definire esplicitamente tutti i campi di configurazione obbligatori. Se vuoi che le VM create da questo modello vengano spente alla revoca della chiave, specifica"keyRevocationActionType":"STOP"
. Ad esempio, un modello di istanza con i campi minimi obbligatori che creerà VM che si arrestano alla revoca della chiave ha il seguente aspetto:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instanceTemplates { "name": "example-template", "properties": { "machineType": "e2-standard-4", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-11" } } ], "keyRevocationActionType": "STOP" } }Dopo aver creato una VM configurata per lo spegnimento in caso di revoca di Cloud KMS, crea e collega un Persistent Disk criptato con una chiave Cloud KMS.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-31 UTC.
-