Questo argomento fornisce informazioni su come criptare i dischi con chiavi di crittografia fornite dal cliente.
Per informazioni sulla crittografia del disco, vedi Informazioni sulla crittografia del disco.
Per informazioni sulla crittografia dei dischi con le chiavi di crittografia gestite dal cliente (CMEK), consulta Proteggere le risorse utilizzando le chiavi Cloud KMS.
Se utilizzi le CSEK, fornisci le tue chiavi di crittografia e Compute Engine le utilizza per proteggere le chiavi generate da Google utilizzate per criptare e decriptare i tuoi dati. Solo gli utenti che possono fornire la chiave corretta possono utilizzare le risorse protette da una chiave di crittografia fornita dal cliente (CSEK).
Google non memorizza le tue chiavi sui suoi server e non può accedere ai tuoi dati protetti, a meno che tu non fornisca la chiave. Ciò significa anche che se dimenticate o perdete la chiave, Google non ha modo di recuperarla o di recuperare i dati criptati con la chiave persa.
Quando elimini un disco permanente, Google elimina le chiavi di crittografia, rendendo i dati irrecuperabili. Questa operazione è irreversibile.
Prima di iniziare
- Scopri di più su dischi, immagini e snapshot dei dischi.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Brasile
- India
Puoi criptare solo nuovi dischi permanenti con la tua chiave. Non puoi criptare i dischi permanenti esistenti con la tua chiave.
Non puoi utilizzare le tue chiavi con i dischi SSD locali, perché le chiavi sono gestite dall'infrastruttura di Google e vengono eliminate quando la VM viene arrestata.
Compute Engine non memorizza le chiavi di crittografia con i modelli di istanze, quindi devi memorizzare le tue chiavi in KMS per criptare i dischi in un gruppo di istanze gestite.
Non puoi sospendere le istanze con dischi protetti da CSEK collegati.
- Esegui il wrapping della chiave utilizzando la chiave pubblica fornita in un certificato gestito da Compute Engine. Assicurati di avvolgere la chiave utilizzando il riempimento OAEP, non il riempimento PKCS #1 v1.5.
- Codifica la chiave con wrapping RSA utilizzando la codifica Base64 standard.
(Facoltativo) Genera una chiave casuale a 256 bit (32 byte). Se hai già una chiave che vuoi utilizzare, puoi saltare questo passaggio. Esistono molti modi per generare una chiave. Ad esempio:
$ head -c 32 /dev/urandom | LC_CTYPE=C tr '\n' = > mykey.txt
Scarica il certificato di chiave pubblica:
$ curl -s -O -L https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Estrai la chiave pubblica dal certificato:
$ openssl x509 -pubkey -noout -in google-cloud-csek-ingress.pem > pubkey.pem
Esegui l'operazione RSA-wrap sulla chiave, assicurandoti di sostituire
mykey.txt
con il tuo file della chiave.$ openssl rsautl -oaep -encrypt -pubin -inkey pubkey.pem -in mykey.txt -out rsawrappedkey.txt
Codifica la chiave con wrapping RSA in base64.
$ openssl enc -base64 -in rsawrappedkey.txt | tr -d '\n' | sed -e '$a\' > rsawrapencodedkey.txt
- L'URI completo della risorsa protetta dalla chiave
- La chiave corrispondente
- Il tipo di chiave,
raw
orsa-encrypted
- Su Windows, valuta la possibilità di utilizzare BitLocker o Encrypting File System (EFS).
- Su macOS, ti consigliamo di utilizzare FileVault 2.
- Su Linux, valuta la possibilità di utilizzare Linux Unified Key Setup (LUKS) o eCryptfs.
Vai alla pagina Dischi.
Fai clic su Crea disco e inserisci le proprietà del nuovo disco.
In Crittografia, seleziona Chiave fornita dal cliente.
Specifica la chiave di crittografia del disco nella casella di testo e seleziona Chiave con wrapping se la chiave è stata inserita nella chiave pubblica RSA.
rawKey
: se la chiave è codificata Base64rsaEncryptedKey
: se la chiave è con wrapping RSA e codificata in base64Vai alla pagina Snapshot.
Fai clic su Crea snapshot.
In Disco di origine, scegli il disco criptato di cui vuoi creare uno snapshot.
Specifica la chiave di crittografia del disco nella casella di testo e seleziona Chiave con wrapping se la chiave è stata inserita nella chiave pubblica RSA.
Crittografa il nuovo snapshot fornendo una chiave di crittografia aggiuntiva nella sezione Crittografia.
Vai alla pagina Immagini.
Fai clic su Crea immagine.
In Disco di origine, scegli il disco criptato di cui vuoi creare un'immagine.
In Crittografia, seleziona una soluzione di gestione delle chiavi di crittografia.
Se la chiave è stata sottoposta a wrapping con la chiave pubblica RSA, seleziona Chiave con wrapping.
- Disco permanente:
sourceDiskEncryptionKey
- Immagine:
sourceImageEncryptionKey
Vai alla pagina Immagini.
Fai clic su Crea immagine.
In Origine, scegli File Cloud Storage.
In File Cloud Storage, inserisci l'URI Cloud Storage.
In Crittografia, scegli Chiave fornita dal cliente e fornisci la chiave di crittografia per criptare l'immagine nella casella di testo.
[IMAGE_NAME]
: il nome della nuova immagine personalizzata.[BUCKET_NAME]
: il nome del bucket Cloud Storage che contiene il file immagine compresso.[COMPRESSED_FILE]
: il nome del file immagine compresso.[KEY_FILE]
: il percorso di un file della chiave di crittografia sulla tua workstation locale.Vai alla pagina Dischi.
Fai clic su Crea disco.
In Tipo di origine, seleziona Snapshot.
In Crittografia, seleziona una soluzione di gestione delle chiavi di crittografia.
Se la chiave è stata sottoposta a wrapping con la chiave pubblica RSA, seleziona Chiave con wrapping.
Vai alla pagina Dischi.
Fai clic su Crea disco.
In Tipo di origine, seleziona Immagine.
In Crittografia, seleziona una soluzione di gestione delle chiavi di crittografia.
Se la chiave è stata sottoposta a wrapping con la chiave pubblica RSA, seleziona Chiave con wrapping.
Vai alla pagina Crea un'istanza.
Nella sezione Disco di avvio, fai clic su Cambia e segui questi passaggi:
- Nella pagina Disco di avvio, fai clic sulla scheda Dischi esistenti.
- Dall'elenco Disco, scegli un disco criptato esistente da collegare alla VM.
Inserisci la chiave di crittografia nella casella di testo e seleziona Chiave con wrapping se la chiave è stata sottoposta a wrapping con la chiave pubblica RSA.
Fai clic su Seleziona.
Continua con la procedura di creazione della VM.
- Crea un'immagine del disco criptato e specifica la crittografia automatica per la nuova immagine.
- Utilizza la nuova immagine per creare un nuovo disco permanente.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Per CSEK si applicano le seguenti limitazioni:
Limitazioni generali
La disponibilità delle chiavi di crittografia fornite dal cliente dipende dalla località del tuo account di fatturazione, non dalla località della risorsa.
Le chiavi di crittografia fornite dal cliente non sono disponibili per gli account di fatturazione situati nei seguenti paesi:
Limitazioni tecniche
Specifiche
Questa sezione descrive la specifica di crittografia e il formato di CSEK.
Crittografia
Compute Engine utilizza la tua chiave di crittografia per proteggere le chiavi di crittografia di Google con crittografia AES-256.
Formato della chiave richiesto
Spetta a te generare e gestire la chiave. Devi fornire a Compute Engine una chiave che sia una stringa di 256 bit codificata in base64 standard RFC 4648.
Di seguito è riportato un esempio di chiave codificata in base64, generata con la stringa "Un saluto da Google Cloud Platform"
SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
Può essere generato utilizzando il seguente script:
read -sp "String:" ; \ [[ ${#REPLY} == 32 ]] && \ echo "$(echo -n "$REPLY" | base64)" || \ (>&2 echo -e "\nERROR:Wrong Size"; false)
Wrapping chiave RSA
Oltre a codificare la chiave in base64, facoltativamente puoi avvolgerla utilizzando un certificato di chiave pubblica RSA fornito da Google, codificarla in base64 e poi utilizzarla nelle richieste.
Il wrapping RSA è un processo in cui utilizzi una chiave pubblica per criptare i dati. Dopo che i dati sono stati criptati con la chiave pubblica, possono essere decriptati solo dalla rispettiva chiave privata. In questo caso, la chiave privata è nota solo ai servizi Google Cloud. Se esegui il wrapping della chiave con il certificato RSA, assicurati che solo i servizi Google Cloud possano annullare il wrapping della chiave e utilizzarla per proteggere i tuoi dati.
Per ulteriori informazioni, consulta Crittografia RSA.
Per creare una chiave con wrapping RSA per Compute Engine:
Scarica il certificato pubblico gestito da Compute Engine da:
https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
Esistono molti modi per generare e applicare il wrapping RSA alla chiave. Utilizza un metodo che ti è familiare. Di seguito sono riportati due esempi di wrapping della chiave con RSA che puoi utilizzare.
Esempio 1
Le seguenti istruzioni utilizzano l'utilità a riga di comando openssl per eseguire l'wrapping RSA e la codifica di una chiave.
Esempio 2
Di seguito è riportato uno script Python di esempio che genera una stringa random di 256 bit (32 byte) e crea una chiave con wrapping RSA codificata in base64 utilizzando la libreria cryptography:
La chiave è ora pronta per l'uso.
Utilizza una chiave con wrapping RSA
Con Google Cloud CLI, puoi fornire una chiave normale e una chiave con wrapping RSA nello stesso modo.
Nell'API, utilizza la proprietà
sha256
anzichérawKey
se vuoi utilizzare una chiave con wrapping RSA.Crittografia delle risorse con CSEK utilizzando lo strumento a riga di comando
Configurazione
Le chiavi di crittografia possono essere utilizzate tramite Google Cloud CLI.
File della chiave
Quando utilizzi lo strumento a riga di comando
gcloud compute
per impostare le chiavi, fornisci le chiavi codificate utilizzando un file di chiavi che le contiene come elenco JSON. Un file di chiavi può contenere più chiavi, consentendoti di gestirne molte in un unico posto. In alternativa, puoi creare file di chiavi singole per gestire ogni chiave separatamente. Un file di chiavi è utilizzabile solo con l'interfaccia a riga di comando gcloud. Quando utilizzi REST, devi fornire la chiave direttamente nella richiesta.Ogni voce del file della chiave deve fornire:
Quando utilizzi il file della chiave nelle richieste, lo strumento cerca le risorse corrispondenti e utilizza le rispettive chiavi. Se non vengono trovate risorse corrispondenti, la richiesta non va a buon fine.
Un file di chiavi di esempio ha il seguente aspetto:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY+c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/my-private-snapshot", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Best practice per la gestione del file della chiave
Se utilizzi un file di chiavi, limita l'accesso al file solo a chi ne ha bisogno. Assicurati di impostare le autorizzazioni appropriate su questi file e prendi in considerazione la possibilità di criptarli utilizzando strumenti aggiuntivi:
Crittografare un nuovo disco permanente con CSEK
Puoi criptare un nuovo disco permanente fornendo una chiave durante la creazione della VM o del disco.
Console
gcloud
Nello strumento
gcloud compute
, cripta un disco utilizzando il flag--csek-key-file
durante la creazione della VM. Se utilizzi una chiave con wrapping RSA, utilizza il componentegcloud beta
:gcloud (beta) compute instances create example-instance --csek-key-file example-file.json
Per criptare un disco permanente autonomo:
gcloud (beta) compute disks create example-disk --csek-key-file example-file.json
REST
Puoi criptare un disco utilizzando la proprietà
diskEncryptionKey
e inviando una richiesta all'API v1 per una chiave non protetta (non RSA) o all'API beta per una chiave protetta con RSA. Fornisci una delle seguenti proprietà nella richiesta:Ad esempio, per criptare un nuovo disco durante la creazione della VM con una chiave con wrapping RSA:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/instances { "machineType": "zones/us-central1-a/machineTypes/e2-standard-2", "disks": [ { "type": "PERSISTENT", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-9-stretch-v20170619" }, "boot": true } ], ... }
Analogamente, puoi anche utilizzare REST per creare un nuovo disco permanente autonomo e criptarlo con la tua chiave:
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/ us-central1-a/disks?sourceImage=https%3A%2F%2Fwww.googleapis.com%2Fcompute%2F alpha%2Fprojects%2Fdebian-cloud%2Fglobal%2Fimages%2Fdebian-9-stretch-v20170619 { "name": "new-encrypted-disk-key", "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "type": "zones/us-central1-a/diskTypes/pd-standard" }
Creare uno snapshot da un disco criptato con CSEK
Se crei uno snapshot da un disco criptato, anche lo snapshot deve essere criptato. Devi specificare una chiave per criptare lo snapshot. Non puoi convertire i dischi criptati o gli snapshot criptati in modo che utilizzino la crittografia predefinita di Compute Engine, a meno che non crei una nuova immagine disco e un nuovo disco permanente.
Gli snapshot dei dischi criptati con CSEK sono sempre snapshot completi. Ciò è diverso degli snapshot dei dischi criptati con chiavi di crittografia gestite dal cliente (CMEK), che sono incrementali. Il prezzo degli snapshot si basa sulla dimensione totale dello snapshot, pertanto uno snapshot completo potrebbe costare più di uno incrementale.
Per creare uno snapshot di un disco permanente da un disco criptato, la richiesta di creazione dello snapshot deve fornire la chiave di crittografia utilizzata per criptare il disco permanente.
Consulta le best practice per disco permanente permanenti prima di creare lo snapshot.
Console
REST
Per effettuare la richiesta, fornisci la proprietà
sourceDiskEncryptionKey
per accedere al disco permanente di origine. Devi criptare il nuovo snapshot utilizzando la proprietàsnapshotEncryptionKey
.Invia una richiesta all'API v1 per una chiave non protetta (non RSA) o all'API beta per una chiave protetta con RSA.
POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk/createSnapshot { "snapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "name": "snapshot-encrypted-disk" }
La proprietà
sourceDiskEncryptionKey
deve corrispondere alla chiave utilizzata per criptare il disco permanente. In caso contrario, la richiesta non andrà a buon fine.snapshotEncryptionKey
ti consente di fornire una chiave per criptare lo snapshot in modo che, se lo snapshot viene utilizzato per creare nuovi dischi permanenti, debba essere fornita una chiave corrispondente. Questa chiave deve seguire il formato della chiave precedente. Puoi anche scegliere di lasciare questa proprietà undefined e lo snapshot può essere utilizzato per creare nuovi dischi permanenti senza richiedere una chiave.Creare una nuova immagine da un disco o un'immagine personalizzata criptata con CSEK
Puoi creare immagini personalizzate da dischi permanenti criptati o copiare immagini criptate. Non puoi utilizzare la console per copiare le immagini. Utilizza Google Cloud CLI o REST per copiare le immagini.
Console
gcloud
Segui le istruzioni per creare un'immagine e aggiungi il flag
--csek-key-file
con il percorso del file della chiave di crittografia per l'oggetto di origine criptato. Utilizza il componentegcloud beta
se utilizzi una chiave con wrapping RSA:gcloud (beta) compute images create .... --csek-key-file example-file.json
Se vuoi criptare la nuova immagine con la tua chiave, aggiungila al file della chiave:
[ { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/source-disk", "key": "acX3RqzxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c=", "key-type": "raw" }, { "uri": "https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/the-new-image", "key": "TF0t-cSfl7CT7xRF1LTbAgi7U6XXUNC4zU_dNgx0nQc=", "key-type": "raw" } ]
REST
La richiesta di creazione dell'API deve contenere la proprietà della chiave di crittografia per l'oggetto source. Ad esempio, includi una delle seguenti proprietà a seconda del tipo di oggetto di origine:
Includi anche le proprietà
rawKey
orsaEncryptedKey
, a seconda del tipo di chiave. Invia una richiesta all'API v1 per una chiave non elaborata (non RSA) o all'API beta per una chiave con wrapping RSA. L'esempio seguente converte un disco permanente criptato e con wrapping RSA in un'immagine che utilizza la stessa chiave di crittografia.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "name": "image-encrypted-disk", "sourceDiskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceDisk": "projects/myproject/zones/us-central1-a/disks/source-disks" }
La proprietà facoltativa
imageEncryptionKey
ti consente di fornire una chiave per criptare l'immagine in modo che, quando l'immagine viene utilizzata per creare nuovi dischi permanenti, debba essere fornita una chiave corrispondente. Questa chiave deve seguire lo stesso formato della chiave descritto sopra. Puoi anche scegliere di lasciare questa proprietà undefined e l'immagine può essere utilizzata per creare nuovi dischi permanenti senza richiedere una chiave.Crittografare un'immagine importata con CSEK
Puoi criptare una nuova immagine quando importi manualmente 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.
Importa l'immagine Compute Engine personalizzata che vuoi criptare. Specifica l'URI del file compresso e anche un percorso per il file della chiave di crittografia.
Console
gcloud
Utilizza il comando
compute images create
per creare una nuova immagine e specifica il flag--csek-key-file
con un file della chiave di crittografia. Se utilizzi una chiave con wrapping RSA, utilizza il componentegcloud beta
:gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Sostituisci quanto segue:
REST
Per criptare una nuova immagine creata da un file RAW, aggiungi la nuova proprietà
imageEncryptionKey
alla richiesta di creazione dell'immagine, seguita darawKey
orsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non RSA) o all'API beta per una chiave con wrapping RSA.POST https://compute.googleapis.com/compute/beta/projects/myproject/global/images { "rawDisk": { "source": "http://storage.googleapis.com/example-image/example-image.tar.gz" }, "name": "new-encrypted-image", "sourceType": "RAW", "imageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Creare un disco permanente da una risorsa criptata con CSEK
Creare un disco da uno snapshot criptato con CSEK
Console
gcloud
Nello strumento
gcloud compute
, fornisci la chiave di crittografia per lo snapshot utilizzando il flag--csek-key-file
quando crei il disco. Se utilizzi una chiave con wrapping RSA, utilizza il componentegcloud beta
:gcloud (beta) compute disks create ... --source-snapshot example-snapshot --csek-key-file example-file.json
REST
Per utilizzare uno snapshot criptato, fornisci
sourceSnapshotEncryptionKey
nella richiesta, seguito darawKey
orsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non RSA) o all'API beta per una chiave con wrapping RSA. Ad esempio, in un nuovo disco permanente autonomo utilizzando uno snapshot criptato:POST https://compute.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-snapshot", "sourceSnapshot": "global/snapshots/encrypted-snapshot", "sourceSnapshotEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" } }
Creare un disco da un'immagine criptata con CSEK
Console
gcloud
Nello strumento
gcloud compute
, fornisci la chiave di crittografia dell'immagine utilizzando il flag--csek-key-file
quando crei il disco. Se utilizzi una chiave con wrapping RSA, utilizza il componentegcloud beta
:gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Per utilizzare un'immagine criptata, fornisci
sourceImageEncryptionKey
, seguito darawKey
orsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non RSA) o all'API beta per una chiave con wrapping RSA.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks { "name": "disk-from-encrypted-image", "sourceImageEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, "sourceImage": "global/images/encrypted-image" }
Collegamento di un disco criptato con CSEK a una nuova VM
Console
gcloud
Per creare una VM e collegare un disco criptato, crea un file della chiave e fornisci la chiave utilizzando il flag
--csek-key-file
durante la creazione della VM. Se utilizzi una chiave con wrapping RSA, utilizza il componentegcloud beta
:gcloud (beta) compute instances create example-instance \ --disk name=example-disk,boot=yes \ --csek-key-file example-file.json
REST
Crea una VM utilizzando l'API Compute Engine e fornisci
rawKey
orsaEncryptedKey
con la specifica del disco. Invia una richiesta all'API v1 per una chiave non elaborata (non RSA) o all'API beta per una chiave con wrapping RSA.Ecco uno snippet di una specifica del disco di esempio:
"disks": [ { "deviceName": "encrypted-disk", "source": "projects/myproject/zones/us-central1-f/disks/encrypted-disk", "diskEncryptionKey": { "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" } } ]
Avvio o riavvio di VM con dischi criptati con CSEK
Per informazioni dettagliate su come arrestare o avviare una VM con dischi criptati, leggi Riavviare una VM con un disco criptato.
Utilizzo della riga di comando per creare risorse miste
Se vuoi creare una combinazione di risorse con crittografia standard e crittografia gestita dal cliente in una singola richiesta con Google Cloud CLI, puoi utilizzare il flag
--csek-key-file
con un file di chiavi e il flag--no-require-csek-key-create
nella richiesta. Fornendo entrambi i flag, gcloud CLI crea le risorse criptate dal cliente che sono esplicitamente definite nel file della chiave e crea anche le risorse standard specificate.Ad esempio, supponiamo che un file della chiave contenga quanto segue:
[ { "uri": "https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-a/disks/example-disk", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ]
Se vuoi creare una VM con un disco criptato dal cliente utilizzando il file della chiave e contemporaneamente una VM con un disco criptato standard nella stessa richiesta, puoi procedere nel seguente modo:
gcloud beta compute instances create example-disk example-disk-2 \ --csek-key-file mykeyfile.json --no-require-csek-key-create
Normalmente, non sarebbe possibile creare
example-disk-2
se hai specificato il flag--csek-key-file
perché il disco non è definito esplicitamente nel file della chiave. Se aggiungi--no-require-csek-key-create
, vengono creati entrambi i dischi, uno criptato utilizzando il file della chiave e l'altro criptato utilizzando la crittografia di Google.Rimuovere il CSEK da un disco permanente
Puoi decriptare i contenuti di un disco criptato dal cliente e creare un nuovo disco che utilizzi la crittografia predefinita di Compute Engine.
Dopo aver creato il nuovo disco permanente, viene utilizzata la crittografia predefinita di Compute Engine per proteggere i contenuti del disco. Anche gli snapshot creati da quel disco devono utilizzare la crittografia predefinita.
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 2024-11-28 UTC.
-