Questo documento fornisce informazioni su come utilizzare le chiavi gestite da Cloud Key Management Service Cloud KMS per criptare dischi e altre risorse relative all'archiviazione. Le chiavi gestite da Cloud KMS sono note come chiavi di crittografia gestite dal cliente (CMEK).
Puoi utilizzare CMEK per criptare le risorse di Compute Engine, ad esempio dischi, immagini macchina, snapshot istantanei e snapshot standard.
Per scoprire di più sull'utilizzo delle chiavi di crittografia fornite dal cliente (CSEK) per criptare i dischi e altre risorse di archiviazione, consulta Crittografia dei dischi con chiavi di crittografia fornite dal cliente.
Scopri di più sulla crittografia del disco.
Prima di iniziare
- Comprendi 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 e sui numeri di progetto di Google Cloud, consulta Identificazione dei progetti.
- Per il progetto Google Cloud che esegue Cloud KMS, segui questi passaggi:
-
Attiva l'API Cloud KMS.
- Crea un keyring e una chiave come descritto nella sezione Creazione di keyring e chiavi.
-
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
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, quindi initialize eseguendo questo comando:
gcloud init
-
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 (roles/cloudkms.cryptoKeyEncrypterDecrypter
) nel tuo progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
L'amministratore potrebbe anche essere in grado di concedere all'agente di servizio Compute Engine le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
L'agente di servizio Compute Engine ha il formato seguente:
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 progetto Google Cloud che esegue Cloud KMS (anche se si tratta dello stesso progetto che esegue Compute Engine)PROJECT_NUMBER
: il numero del progetto Google Cloud che esegue le risorse Compute Engine, non l'ID del progetto Google Cloud
Specifiche di crittografia
Le chiavi Cloud KMS utilizzate per proteggere i dati in Compute Engine sono chiavi AES-256. Si tratta di chiavi di crittografia della chiave che criptano le chiavi di crittografia dei dati che criptano i tuoi dati, non i dati stessi.
I dati sul disco vengono criptati usando chiavi generate da Google. Per le specifiche relative alla crittografia predefinita in Google Cloud, consulta Crittografia at-rest predefinita nella documentazione sulla sicurezza.
Limitazioni
Non puoi criptare le risorse esistenti con le CMEK. Puoi criptare dischi, immagini e snapshot solo con CMEK quando li crei.
Non puoi utilizzare le tue chiavi con i dischi SSD locale poiché le chiavi vengono gestite dall'infrastruttura Google ed eliminate quando la VM viene terminata.
Le risorse di regione (i dischi) possono essere criptate con chiavi nella stessa località o nella località di
global
. Ad esempio, un disco nella zonaus-west1-a
può essere criptato con una chiave inus-west1
oglobal
. Le risorse globali (immagini, istantanee) possono essere criptate tramite chiavi in qualsiasi luogo.La crittografia di un disco, di uno snapshot o di un'immagine con una chiave è definitiva. Non puoi rimuovere la crittografia dalla risorsa o modificare la chiave utilizzata. L'unico modo per rimuovere la crittografia o modificare le chiavi è creare una copia della risorsa specificando una nuova opzione di crittografia.
Criptare 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à per il nuovo disco.
- In Crittografia, seleziona Chiave gestita dal cliente.
- Nel menu a discesa, seleziona la chiave Cloud KMS che vuoi utilizzare per criptare il 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 del keyring che include la chiaveKEY
: il nome della chiave utilizzata per criptare il disco
REST
Crea una richiesta POST
nel
metodo instances.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 progetto Google Cloud 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 del keyring che include la chiaveKEY
: il nome della chiave utilizzata per criptare il discoSOURCE_IMAGE
: l'immagine da utilizzare durante 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 un nuovo Persistent Disk autonomo e criptarlo con la 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 progetto Google Cloud che esegue Compute EngineZONE
: la zona in cui creare il discoSOURCE_IMAGE
: l'immagine da utilizzare 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 KMSREGION
: la regione in cui si trova il discoKEY_RING
: il nome del keyring che include la chiaveKEY
: il nome della chiave utilizzata per criptare il discoDISK_TYPE
: il tipo di disco da creare
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 di Google Cloud, a meno che non crei un'immagine disco completamente nuova 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 automaticamente criptato 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 nel criterio della località di archiviazione definito dalle tue impostazioni dello snapshot o utilizzando una località di archiviazione alternativa a tua scelta. Per maggiori informazioni, consulta Scegliere la posizione di archiviazione degli snapshot.
Per creare uno snapshot nel percorso predefinito o personalizzato predefinito configurato nelle impostazioni dello 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 eseguire l'override delle impostazioni dello snapshot e creare uno snapshot in una posizione 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
Sostituisci quanto segue:
- SNAPSHOT_NAME: il nome dello snapshot.
- SOURCE_ZONE: la zona del disco di origine.
- SOURCE_DISK_NAME: il nome del volume del disco da cui vuoi creare uno snapshot.
- SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO.
Se non viene specificato un tipo di snapshot, viene creato uno snapshot
STANDARD
. -
STORAGE_LOCATION (Facoltativo) La regione Cloud Storage o la regione Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola posizione di archiviazione.
Utilizza il parametro
--storage-location
solo quando vuoi eseguire l'override della posizione di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot.
REST
Puoi creare lo snapshot nel criterio della località di archiviazione definito dalle tue impostazioni dello snapshot o utilizzando una località di archiviazione alternativa a tua scelta. Per maggiori informazioni, consulta Scegliere la posizione di archiviazione degli snapshot.
-
Per creare uno snapshot nella posizione predefinita o personalizzata configurata nelle impostazioni dello snapshot, effettua 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 eseguire l'override delle impostazioni dello snapshot e creare uno snapshot in una posizione di archiviazione personalizzata, effettua 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" ], }
Sostituisci quanto segue:
- DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi creare lo snapshot.
- SNAPSHOT_NAME: il nome dello 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 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 keyring 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
. -
STORAGE_LOCATION (Facoltativo) La regione Cloud Storage o la regione Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola posizione di archiviazione.
Utilizza il parametro
storageLocations
solo quando vuoi eseguire l'override della posizione di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot.
Criptare 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 disco e caricare il file compresso in 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.
- In 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
: il keyring contenente 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
per il metodo images.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
: il keyring contenente la chiave Cloud KMSKEY
: il nome della chiave che hai utilizzato per criptare il disco di origine
Crea un Persistent Disk da uno snapshot criptato con CMEK
Per creare un nuovo Persistent Disk autonomo da uno snapshot criptato, segui questi passaggi:
Console
- Nella console Google Cloud, vai alla pagina Dischi.
- Fai clic su Crea disco e inserisci le proprietà per il nuovo disco.
- In Tipo di origine, seleziona l'istantanea o l'immagine che vuoi utilizzare.
(Facoltativo) Se vuoi specificare una nuova chiave di crittografia, in Crittografia specifica il tipo di chiave di crittografia da utilizzare, quindi fornisci le informazioni relative alla chiave di crittografia.
Se vuoi rimuovere la chiave di crittografia gestita o fornita dal cliente, in Crittografia utilizza il valore predefinito Chiave di crittografia gestita da Google.
Continua con il processo di creazione Persistent Disk.
gcloud
Utilizza il comando gcloud compute disks create
per creare un nuovo Persistent Disk autonomo da uno snapshot criptato.
gcloud compute disks create DISK_NAME \ --source-snapshot SNAPSHOT_NAME \ --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 dell'istantanea criptataPer 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 KMSREGION
: facoltativo: la regione in cui si trova la chiave Cloud KMSKEY_RING
: facoltativo: il keyring contenente la chiave Cloud KMSKEY
: 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 la crittografia predefinita gestita da Google, non includere il flag
--kms-key
.
- Per specificare una nuova chiave di crittografia gestita dal cliente, utilizza il flag
REST
Crea una richiesta POST
con il metodo compute.disks.insert
per creare un nuovo Persistent Disk autonomo da uno snapshot criptato. 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" } }
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui creare il nuovo discoZONE
: la zona in cui creare il nuovo discoDISK_NAME
: il nome del nuovo discoSNAPSHOT_PROJECT_ID
: il progetto che contiene lo snapshotSNAPSHOT_NAME
: il nome dell'istantanea criptataPer utilizzare un'immagine anziché uno snapshot, sostituisci
sourceSnapshot
consourceImage
.KMS_PROJECT_ID
: facoltativo: il progetto che contiene la chiave Cloud KMSREGION
: facoltativo: la regione in cui si trova la chiave Cloud KMSKEY_RING
: facoltativo: il keyring contenente la chiave Cloud KMSKEY
: 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 è criptato tramite la crittografia gestita da Google.
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. Poi segui questi passaggi:
- 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
.
Usa 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
nel
metodo compute.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
: nome di 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 il montaggio, il ridimensionamento e così via dall'interno dell'istanza. Se non specifichi un nome del dispositivo, la VM sceglie un nome predefinito da applicare a questo disco, nel formatopersistent-disk-x
, dovex
è un numero assegnato da Compute Engine. Questo campo è applicabile solo per i volumi di Persistent Disk.DISK_NAME
: il nome del disco criptato
Rimuovi la chiave di crittografia di Cloud KMS da un Persistent Disk
Puoi decriptare i contenuti di un disco criptato e creare un nuovo disco che utilizza la crittografia predefinita di Google Cloud. Per impostazione predefinita, Google Cloud cripta tutti i dati at-rest.
- Crea uno snapshot del disco criptato.
- Usa il nuovo snapshot criptato per creare un nuovo disco permanente.
Dopo la creazione, il nuovo Persistent Disk utilizza la crittografia predefinita di Google Cloud per proteggere i contenuti dei dischi. Anche gli snapshot creati da quel disco devono utilizzare la crittografia predefinita.
Ruota la chiave di crittografia di Cloud KMS per un disco
Ruota la chiave utilizzata per criptare il disco creando un nuovo disco che utilizzi una nuova versione della chiave Cloud KMS. La rotazione delle chiavi è una best practice per il rispetto delle prassi 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, per la crittografia viene utilizzata la nuova versione della chiave. Tutti gli snapshot creati da quel disco utilizzano la versione più recente della chiave primaria.
Quando ruoti una chiave, i dati criptati con versioni precedenti della chiave non vengono criptati automaticamente. Per maggiori informazioni, consulta Ricrittografia dei dati. La rotazione di una chiave non comporta la disattivazione o l'destroy automatica di una versione della chiave esistente.
Impatto della disattivazione o dell'eliminazione delle CMEK
La disabilitazione o l'eliminazione di una chiave di crittografia ha i seguenti effetti sulle seguenti risorse che la chiave contribuisce a proteggere:
- Impossibile avviare le VM con dischi collegati. Se hai abilitato l'arresto della VM in caso di revoca della chiave, le VM con dischi collegati che la chiave contribuisce a proteggere l'arresto.
- Non è possibile collegare i dischi alle VM né creare snapshot per le VM.
- Non è possibile utilizzare gli snapshot per creare un disco.
- Non è possibile usare immagini per creare un disco.
Se disabiliti la chiave, puoi invertire gli effetti precedenti abilitando la chiave. Se elimini la chiave, non potrai annullare gli effetti precedenti.
Configura l'arresto della VM in caso di revoca della chiave Cloud KMS
Puoi configurare la tua VM per l'arresto automatico quando revoke la chiave Cloud KMS che contribuisce a proteggere un Persistent Disk collegato alla VM. Puoi revoke una chiave disattivandola o eliminandola. Se questa impostazione è abilitata, la VM si arresta entro 7 ore dalla revoca della chiave.
Se abiliti di nuovo la chiave, puoi riavviare la VM con il disco collegato che la chiave contribuisce a proteggere. La VM non si riavvia automaticamente dopo aver abilitato la chiave.
Console
Per configurare l'arresto di una VM quando viene revocata una chiave Cloud KMS:
- Inizia a creare una VM che include 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
Usa il comando gcloud compute instances create
per creare una VM e includi --key-revocation-action-type=stop
.
gcloud compute instances createVM_NAME
\ --imageIMAGE
\ --key-revocation-action-type=stop
REST
Utilizza il metodo instances.insert
per creare una VM, quindi 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 modello di istanza per creare VM che vengono arrestate 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 viene revocata una chiave Cloud KMS.
- Inizia creando 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 modello 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=stop
REST
Creare una richiesta POST nel 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 arrestate in caso di revoca della chiave, specifica "keyRevocationActionType":"STOP"
.
Ad esempio, un modello di istanza con i campi obbligatori minimi per creare VM che vengono arrestate in caso di 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 l'arresto alla revoca di Cloud KMS, crea e collega un Persistent Disk criptato con una chiave Cloud KMS.