Questo argomento fornisce informazioni su come criptare i dischi con le 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 chiavi di crittografia gestite dal cliente (CMEK), vedi Proteggere le risorse utilizzando chiavi Cloud KMS.
L'utilizzo delle CSEK implica che tu fornisca le tue chiavi di crittografia, mentre Compute Engine le utilizza per proteggere le chiavi generate da Google utilizzate per criptare e decriptare i tuoi dati. Solo gli utenti in grado di fornire la chiave corretta possono utilizzare risorse protette da una chiave di crittografia fornita dal cliente (CSEK).
Google non archivia le tue chiavi sui suoi server e non può accedere ai tuoi dati protetti a meno che non fornisci la chiave. Ciò significa anche che se dimentichi o perdi la chiave, Google non potrà recuperare la chiave né i dati criptati con la chiave smarrita.
Quando elimini un disco permanente, Google ignora le chiavi di crittografia, rendendo i dati irrecuperabili. Questa operazione è irreversibile.
Prima di iniziare
- Ulteriori informazioni su dischi, immagini e snapshot di dischi.
-
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 intendi 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.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Per utilizzare gli esempi di API REST su 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
-
Limitazioni
Per la crittografia lato client si applicano le seguenti limitazioni:
Limitazioni generali
La disponibilità delle chiavi di crittografia fornite dal cliente dipende dalla località dell'account di fatturazione, non dalla località della risorsa.
Le chiavi di crittografia fornite dal cliente non sono disponibili per gli account di fatturazione che si trovano nei seguenti paesi:
- Brasile
- India
Limitazioni tecniche
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 gli SSD locali perché le unità SSD locali non durano oltre la durata di una VM. Le unità SSD locali sono già protette con una chiave di crittografia temporanea che Google non conserva.
Compute Engine non archivia le chiavi di crittografia con modelli di istanza, perciò devi archiviare le tue chiavi in KMS per criptare i dischi in un gruppo di istanze gestite.
Non puoi sospendere le istanze a cui sono collegati dischi protetti da CSEK.
Specifiche
Questa sezione descrive le specifiche di crittografia e il formato della CSEK.
Crittografia
Compute Engine utilizza la tua chiave di crittografia per proteggere le chiavi di crittografia di Google con la crittografia AES-256.
Formato chiave obbligatorio
Spetta a te generare e gestire la tua chiave. Devi fornire per Compute Engine una chiave che sia una stringa a 256 bit codificata in RFC 4648 standard base64.
Di seguito è riportato un esempio di chiave codificata in Base64, generata con la stringa "Hello from 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 di chiave RSA
Oltre a codificare la chiave in base64, puoi eseguire il wrapping della chiave utilizzando un certificato di chiave pubblica RSA fornito da Google, codificare la chiave in base64 e quindi utilizzare questa chiave nelle richieste.
Il wrapping RSA è un processo in cui utilizzi una chiave pubblica per criptare i dati. Dopo essere stati criptati con la chiave pubblica, i dati possono essere decriptati solo mediante la rispettiva chiave privata. In questo caso, la chiave privata è nota solo ai servizi Google Cloud. Se esegui il wrapping della chiave utilizzando il certificato RSA, garantisci che solo i servizi Google Cloud possano annullare il wrapping della chiave e utilizzarla per proteggere i tuoi dati.
Per maggiori informazioni, consulta Crittografia RSA.
Per creare una chiave con wrapping RSA per Compute Engine, segui questi passaggi:
- Esegui il wrapping della chiave utilizzando la chiave pubblica fornita in un certificato gestito da Compute Engine. Assicurati di eseguire il wrapping della chiave utilizzando la spaziatura interna OAEP, non la spaziatura interna PKCS #1 v1.5.
- Codifica la chiave con wrapping RSA utilizzando la codifica Base64 standard.
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 la chiave ed eseguire il wrapping RSA di una chiave; utilizza un metodo che conosci. Di seguito sono riportati due esempi di wrapping RSA della chiave che potresti utilizzare.
Esempio 1
Le seguenti istruzioni utilizzano l'utilità a riga di comando openssl per eseguire il wrapping RSA e la codifica di una chiave.
Facoltativo: genera una chiave casuale a 256 bit (32 byte). Se hai già un token che vuoi usare, 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 il wrapping della chiave tramite wrapping RSA, 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
Esempio 2
Di seguito è riportato uno script Python di esempio che genera una stringa casuale a 256 bit (32 byte) e crea una chiave con wrapping RSA codificata in Base64 utilizzando la libreria di crittografia:
Ora la tua chiave è pronta per essere utilizzata.
Utilizza una chiave con wrapping RSA
Utilizzando Google Cloud CLI, puoi fornire una chiave normale e una chiave con wrapping RSA allo stesso modo.
Nell'API, utilizza la proprietà sha256
anziché rawKey
se vuoi invece utilizzare una chiave con wrapping RSA.
Crittografia delle risorse con CSEK mediante lo strumento a riga di comando
Configurazione
Le chiavi di crittografia possono essere utilizzate tramite Google Cloud CLI.
File di chiave
Quando utilizzi lo strumento a riga di comando gcloud compute
per impostare le chiavi, fornisci le chiavi codificate mediante un file delle chiavi che le contiene sotto forma di elenco JSON. Un file di chiavi può contenere più chiavi, in modo da poterle gestire in un unico posto. In alternativa, puoi creare singoli file di chiave
per gestire ogni chiave separatamente. Un file della chiave è utilizzabile solo con gcloud CLI.
Se utilizzi REST, devi fornire la chiave direttamente nella richiesta.
Ogni voce nel file della chiave deve fornire:
- L'URI completo della risorsa protetta dalla chiave
- La chiave corrispondente
- Il tipo di chiave,
raw
orsa-encrypted
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 ha esito negativo.
Ecco un esempio di file chiave:
[ { "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 chiave
Se utilizzi un file chiave, limita l'accesso al file solo alle persone che ne hanno bisogno. Assicurati di impostare le autorizzazioni appropriate per questi file e valuta la possibilità di criptarli utilizzando strumenti aggiuntivi:
- Su Windows, valuta la possibilità di utilizzare BitLocker o Crittografia file system (EFS).
- Su macOS, valuta la possibilità di utilizzare FileVault 2.
- Su Linux, prendi in considerazione Linux Unified Key Config (LUKS) o eCryptfs.
Cripta un nuovo disco permanente con CSEK
Puoi criptare un nuovo disco permanente fornendo una chiave durante la creazione della VM o del disco.
Console
Vai alla pagina Dischi.
Fai clic su Crea disco e inserisci le proprietà per il nuovo disco.
In Crittografia, seleziona Chiave fornita dal cliente.
Fornisci la chiave di crittografia per il disco nella casella di testo e seleziona Chiave con wrapping se la chiave è stata sottoposta a wrapping con la chiave RSA pubblica.
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 componente gcloud 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 elaborata (non con wrapping RSA) o all'API beta per una chiave con wrapping RSA. Fornisci una delle seguenti proprietà nella richiesta:
rawKey
: se la tua chiave è codificata in Base64rsaEncryptedKey
: se la chiave è con wrapping RSA e codifica in Base64
Ad esempio, per criptare un nuovo disco durante la creazione di una 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 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" }
Crea uno snapshot da un disco criptato con CSEK
Se crei uno snapshot da un disco criptato, anche questo deve essere criptato. Devi specificare una chiave per criptare lo snapshot. Non puoi convertire dischi criptati o snapshot criptati per utilizzare 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 dagli snapshot dei dischi criptati con chiavi di crittografia gestite dal cliente (CMEK), che sono incrementali. I prezzi degli snapshot si basano sulle dimensioni totali dello snapshot, quindi uno snapshot completo potrebbe costare più di uno snapshot incrementale.
Per creare lo snapshot di un disco permanente da un disco criptato, la richiesta di creazione di 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
Vai alla pagina Istantanee.
Fai clic su Crea snapshot.
In Disco di origine, scegli il disco criptato di cui vuoi creare uno snapshot.
Fornisci la chiave di crittografia per il disco nella casella di testo e seleziona Chiave con wrapping se la chiave è stata sottoposta a wrapping con la chiave RSA pubblica.
Cripta il nuovo snapshot fornendo una chiave di crittografia aggiuntiva nella sezione Crittografia.
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 elaborata (non con wrapping RSA) o all'API beta per una chiave con wrapping 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 va a buon fine.
snapshotEncryptionKey
consente di fornire una chiave per criptare lo snapshot in modo che, se lo snapshot viene utilizzato per creare nuovi dischi permanenti, sia necessario fornire una chiave corrispondente. Questa chiave deve seguire il formato della chiave precedente. Puoi anche scegliere di lasciare questa proprietà non definita e lo snapshot può essere utilizzato per creare nuovi dischi permanenti senza richiedere una chiave.
Crea una nuova immagine da un disco o un'immagine personalizzata criptati 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
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 RSA pubblica, seleziona Chiave con wrapping.
gcloud
Segui le istruzioni per creare un'immagine e aggiungi il flag --csek-key-file
con un percorso al file della chiave di crittografia per l'oggetto di origine criptato. Utilizza il componente gcloud beta
se
usi una chiave con wrapping RSA:
gcloud (beta) compute images create .... --csek-key-file example-file.json
Se vuoi criptare la nuova immagine con la chiave, aggiungi la chiave 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 di origine. Ad esempio, includi una delle seguenti proprietà a seconda del tipo di oggetto di origine:
- Disco permanente:
sourceDiskEncryptionKey
- Immagine:
sourceImageEncryptionKey
Includi anche le proprietà rawKey
o rsaEncryptedKey
a seconda del
tipo di chiave. Invia una richiesta all'API v1 per una chiave non elaborata (non con wrapping 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
consente di fornire una chiave per criptare l'immagine in modo che, quando questa viene utilizzata per creare nuovi dischi permanenti, sia necessario fornire una chiave corrispondente. Questa chiave deve seguire lo stesso formato descritto sopra. Puoi anche scegliere di lasciare questa proprietà non definita e l'immagine può essere utilizzata per creare nuovi dischi permanenti senza richiedere una chiave.
Criptare 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 disco e caricare il file compresso in Cloud Storage.
Importa l'immagine personalizzata di Compute Engine che vuoi criptare. Specifica l'URI del file compresso e specifica anche un percorso al file della chiave di crittografia.
Console
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.
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 componente gcloud beta
:
gcloud (beta) compute images create [IMAGE_NAME] \ --source-uri gs://[BUCKET_NAME]/[COMPRESSED_FILE] \ --csek-key-file [KEY_FILE]
Sostituisci quanto segue:
[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 workstation locale.
REST
Per criptare una nuova immagine creata da un file RAW, aggiungi la nuova proprietà imageEncryptionKey
alla richiesta di creazione dell'immagine, seguita da rawKey
o rsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non con wrapping 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==" } }
Crea un disco permanente da una risorsa criptata con CSEK
Crea un disco da uno snapshot criptato con CSEK
Console
Vai alla pagina Dischi.
Fai clic su Crea disco.
In Tipo di origine, seleziona Istantanea.
In Crittografia, seleziona una soluzione di gestione delle chiavi di crittografia.
Se la chiave è stata sottoposta a wrapping con la chiave RSA pubblica, seleziona Chiave con wrapping.
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 componente gcloud 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 da rawKey
o rsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non con wrapping 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==" } }
Crea un disco da un'immagine criptata con CSEK
Console
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 RSA pubblica, seleziona Chiave con wrapping.
gcloud
Nello strumento gcloud compute
, fornisci la chiave di crittografia per l'immagine utilizzando il flag --csek-key-file
quando crei il disco. Se utilizzi una chiave con wrapping RSA, utilizza il componente gcloud beta
:
gcloud (beta) compute disks create ... --image example-image --csek-key-file example-file.json
REST
Per utilizzare un'immagine criptata, fornisci sourceImageEncryptionKey
, seguito
da rawKey
o rsaEncryptedKey
. Invia una richiesta all'API v1 per una chiave non elaborata (non con wrapping 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
Vai alla pagina Crea un'istanza.
Nella sezione Disco di avvio, fai clic su Cambia e attieniti alla procedura seguente:
- 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 RSA pubblica.
Fai clic su Seleziona.
Continua con il processo di creazione della VM.
gcloud
Per creare una VM e collegare un disco criptato, crea un file di chiavi e fornisci la chiave utilizzando il flag --csek-key-file
quando crei la VM. Se utilizzi una chiave con wrapping RSA, utilizza il componente gcloud 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
o rsaEncryptedKey
con la specifica del disco. Invia una richiesta all'API v1 per una chiave non elaborata (non con wrapping 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 maggiori dettagli sull'arresto o sull'avvio di una VM con dischi criptati, vedi Riavvio di una VM con un disco criptato.
Utilizzo della riga di comando per creare risorse miste
Se vuoi creare un mix di risorse criptate dal cliente e standard in una singola richiesta con Google Cloud CLI, puoi utilizzare il flag --csek-key-file
con un file della chiave e il flag --no-require-csek-key-create
nella tua richiesta. Fornendo entrambi i flag, gcloud CLI crea tutte le risorse criptate dal cliente definite in modo esplicito nel file della chiave e crea anche eventuali risorse standard specificate da te.
Ad esempio, supponiamo che un file di 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, creare una VM con un disco criptato standard nella stessa richiesta, puoi farlo come segue:
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 in modo esplicito
nel file della chiave. Aggiungendo l'elemento --no-require-csek-key-create
, vengono creati entrambi i dischi, uno criptato con il file della chiave e l'altro criptato con la crittografia Google.
Rimuovi la CSEK da un disco permanente
Puoi decriptare i contenuti di un disco criptato dal cliente e creare un nuovo disco che utilizza la crittografia predefinita di Compute Engine.
- 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.
Dopo la creazione, il nuovo disco permanente utilizza la crittografia predefinita di Compute Engine per proteggere i contenuti del disco. Tutti gli snapshot creati da quel disco devono utilizzare anche la crittografia predefinita.