Creazione di un'immagine personalizzata crittografata
Quando si dispone di un'immagine personalizzata di qcow2 che soddisfa i requisiti per un'infrastruttur IBM Cloud® Virtual Private Cloud, è possibile crittografarla. La seguente procedura descrive come crittografare la propria immagine personalizzata con la crittografia LUKS utilizzando QEMU e la propria passphrase univoca. Dopo aver crittografato l'immagine, impacchettare la passphrase con la chiave root del cliente (CRK). La chiave di crittografia dei dati avvolti (o crittografati) viene memorizzata con i metadati dell'immagine quando la importi su IBM Cloud VPC.
Un modo rapido per creare un'immagine personalizzata crittografata è utilizzando l'immagine dal volume. Puoi usare questa funzione per creare un'immagine personalizzata dal volume di boot di un'istanza e specificare la codifica gestita dal cliente. Per ulteriori informazioni, vedi Informazioni sulla creazione di un'immagine da un volume.
Non puoi utilizzare un'immagine personalizzata crittografata in un catalogo privato o su un server bare metal.
Per ulteriori informazioni, vedi Introduzione alle chiavi SSH.
Come funzionano le immagini personalizzate crittografate
Dopo aver crittografato un'immagine personalizzata con la tua passphrase, la carichi in IBM Cloud Object Storage. Prima di importare l'immagine crittografata in IBM Cloud VPC, devi configurare un KMS (key management service) e creare un CRK (customer root key). Utilizza quindi il tuo CRK per proteggere la passphrase che utilizzi per crittografare la tua immagine. Impacchettando la tua passphrase segreta con il tuo CRK, crei ciò a cui il KMS si riferisce come chiave di crittografia dei dati impacchettata (WDEK). Il wrapping dei dati della passphrase li crittografa e li protegge in modo da non dover mai condividere la passphrase in testo semplice.
Quando importi l'immagine, devi specificare il nome risorsa cloud (CRN) per la tua chiave root del cliente (CRK) memorizzata nel tuo KMS. È necessario specificare anche il testo crittografico per la chiave di crittografia dei dati impacchettata (WDEK). La passphrase è sempre codificata in WDEK. Viene annullato solo quando viene avviato un server virtuale che utilizza l'immagine crittografata.
Quando sei pronto a eseguire il provisioning di un server virtuale con l'immagine crittografata, le informazioni di crittografia non sono necessarie. Il WDEK e il CRN del CRK vengono memorizzati come metadati con l'immagine. Per ulteriori informazioni, vedi Informazioni sulle immagini personalizzate crittografate.
Panoramica del processo dell'immagine crittografata
I seguenti passi riepilogano il processo di alto livello che devi completare per avere esito positivo con la creazione e importazione di un'immagine crittografata. Le sezioni successive forniscono i dettagli su come completare i passi.
- Creare un'immagine crittografata utilizzando QEMU e una passphrase a scelta per crittografare un file qcow2 con la crittografia LUKS.
- Carica il file di immagine crittografato in IBM Cloud Object Storage.
- Esegui il provisioning di un servizio di gestione delle chiavi, crea una chiave root del cliente (CRK) e quindi impacchetta la tua passphrase con il CRK per generare una chiave di codifica dei dati impacchettata (WDEK).
- Assicurati di disporre delle autorizzazioni richieste IBM Cloud Identity and Access Management in modo da poter importare l'immagine da IBM Cloud Object Storage e poter utilizzare il tuo WDEK per la crittografia dei dati.
- Importa l'immagine in IBM Cloud VPC. Devi specificare l'ubicazione di IBM Cloud Object Storage, la CRK memorizzata nel tuo KMS e il tuo testo cifrato WDEK.
Crittografia dell'immagine
In questo passo, si utilizza QEMU per specificare la propria passphrase e codificare l'immagine personalizzata con la codifica LUKS.
L'immagine personalizzata che intendi codificare deve soddisfare i requisiti dell'immagine personalizzata per l'infrastruttura IBM Cloud VPC. Confermare di aver completato i requisiti di preparazione dell'immagine nei seguenti argomenti:
- Introduzione alle immagini personalizzate
- Creazione di un'immagine personalizzata Linux
- Creazione di un'immagine personalizzata Windows
Per completare l'attività di codifica, è necessario che sia installato QEMU versione 2.12 o successiva.
Per completare le istruzioni di crittografia QEMU è necessario utilizzare un sistema operativo Linux o Windows. Il sistema operativo Mac non è supportato.
Completa la seguente procedura utilizzando QEMU per creare un secondo file qcow2 codificato della tua immagine personalizzata.
-
Determina la tua passphrase da utilizzare per crittografare la tua immagine. I comandi di esempio in questa attività utilizzano la passphrase
abc123. Mantenere la passphrase disponibile. Successivamente è necessario impacchettare la passphrase per creare una chiave di crittografia dei dati impacchettata (WDEK). WDEK è obbligatorio quando importi l'immagine in IBM Cloud VPC. -
Verifica la tua immagine personalizzata qcow2 corrente utilizzando il seguente comando:
qemu-img info my_100G_custom_image.qcow2Per questo esempio, dovresti vedere una risposta simile al seguente output:
image: my_100G_custom_image.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.28 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false -
Creare un nuovo file qcow2 vuoto della stessa dimensione e codificarlo con la codifica LUKS. Utilizzare la passphrase scelta, ad esempio,
abc123, per codificare il file:qemu-img create --object secret,id=sec0,data=abc123 -f qcow2 -o encrypt.format=luks,encrypt.key-secret=sec0 my_100G_custom_image-encrypted.qcow2 100G -
Converti la tua immagine qcow2,
my_100G_custom_image.qcow2nell'immagine crittografata,my_100G_custom_image-encrypted.qcow2.qemu-img convert --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 --target-image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -n -p -
Confrontare i due file per verificare che siano identici.
qemu-img compare --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,file.filename=my_100G_custom_image.qcow2 driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2 -p -
Controllare che il file non contenga errori.
qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2Per questo esempio, dovresti vedere una risposta simile al seguente output:
No errors were found on the image. 16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 1074790400 -
Eseguire
infosul nuovo file crittografato per verificare che sia la dimensione e il livello di crittografia previsti.qemu-img info my_100G_custom_image-encrypted.qcow2Per questo esempio, dovresti vedere una risposta simile al seguente output:
image: my_100G_custom_image-encrypted.qcow2 file format: qcow2 virtual size: 100 GiB (107374182400 bytes) disk size: 1.27 GiB cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
Carica l'immagine crittografate in IBM Cloud Object Storage
Quando il tuo file di immagine è crittografato con la crittografia LUKS e la tua passphrase univoca, puoi caricarla in IBM Cloud Object Storage completando la seguente procedura:
- Assicurati che il tuo file di immagine personalizzata abbia un nome descrittivo in modo da poterlo poi identificare facilmente.
- Nella pagina Oggetti del tuo bucket IBM Cloud Object Storage, fai clic su Carica. Puoi utilizzare il plug-in di trasferimento ad alta velocità Aspera per caricare immagini più grandi di 200 MB:
Configurazione delle chiavi e del servizio di gestione delle chiavi
Per importare un'immagine personalizzata crittografata in IBM Cloud VPC, è necessario un servizio di gestione delle chiavi. Hai anche bisogno di una chiave root del cliente (CRK) e una chiave di crittografia dei dati impacchettata (WDEK). Il WDEK è la passphrase che hai utilizzato per crittografare la tua immagine avvolta con il tuo CRK, in modo che la tua passphrase rimanga nota solo a te. WDEK viene utilizzato per accedere all'immagine crittografata quando viene avviata un'istanza del server virtuale che utilizza l'immagine crittografata.
Deprecato Il sito Hyper Protect Crypto Services è deprecato. I clienti possono utilizzare le istanze esistenti fino al 20 marzo 2027. Per ulteriori informazioni, vedere Deprecazione di IBM Cloud Hyper Protect Crypto Services. Per una protezione continua, prendete in considerazione la possibilità di migrare le chiavi di crittografia esistenti su un'istanza Dedicated Key Protect. Per ulteriori informazioni, consultare la Guida alla migrazione.
Il seguente elenco è un riepilogo dei requisiti di gestione delle chiavi:
- Esegui il provisioning di un servizio di gestione chiavi supportato, Key Protect o Hyper Protect Crypto Services.
- Importa una chiave root del cliente (CRK) nel servizio di gestione delle chiavi o creane una nel servizio di gestione delle chiavi.
- Esegui il wrap (protect) della passphrase che hai utilizzato per crittografare la tua immagine con la tua chiave root del cliente per creare una chiave di crittografia dei dati impacchettata (WDEK).
La seguente procedura di esempio è specifica per Key Protect ma il flusso generale si applica anche a Hyper Protect Crypto Services. Se stai utilizzando Hyper Protect Crypto Services, vedi le informazioni su Hyper Protect Crypto Services per delle istruzioni corrispondenti.
-
Esegui il provisioning del servizio Key Protect.
Il provisioning di un'istanza del servizio Key Protect garantisce che questa includa gli aggiornamenti più recenti necessari per la crittografia gestita dal cliente.
-
Crea o importa una chiave root del cliente (CRK) in IBM Key Protect.
Pianifica in anticipo l'importazione delle chiavi controllando le tue opzioni per la creazione e la crittografia del materiale della chiave. Per aggiungere sicurezza, puoi abilitare l'importazione sicura del materiale della chiave utilizzando un token di importazione per crittografare il tuo materiale della chiave prima di portarlo nel cloud.
-
Utilizza la tua CRK (customer root key) per impacchettare o proteggere la passphrase univoca che hai utilizzato per crittografare la tua immagine con la crittografia LUKS. Nell'esempio di crittografia dell'immagine, abbiamo utilizzato la passphrase
abc123.-
Assicurati che il plugin CLI Key Protect sia installato in modo da poter generare un WDEK. Per ulteriori informazioni, vedi Installazione del plugin della CLI Key Protect.
-
Codifica la tua passphrase con la codifica Base64 per prepararla per il wrapping con il tuo CRK. Esegui il seguente comando, sostituendo la tua passphrase per
abc123. Il parametro -n è richiesto in modo da non codificare un nuovo carattere di riga, il che fa sì che la passphrase impacchettata non funzioni.echo -n "abc123"|base64Per questo esempio, dovresti vedere una risposta simile al seguente output:
YWJjMTIz -
Impacchetta la tua passphrase codificata con il tuo CRK eseguendo il comando
ibmcloud kp key wrap. Sebbene la passphrase utilizzata per generare l'immagine crittografata non sia tecnicamente una chiave di crittografia dei dati, è la terminologia utilizzata da Key Protect per i dati nei wrapper e nei wrapper. I dati restituiti da Key Protect vengono indicati come WDEK. Per ulteriori informazioni, consultare kp key wrap.ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXTDove KEY_ID è l'ID della chiave root che vuoi utilizzare per il wrapping, INSTANCE_ID è l'ID istanza che identifica la tua istanza del servizio Key Protect e PLAINTEXT è la tua passphrase codificata. Ad esempio, YWJjMTIz.
Per questo esempio, dovresti vedere una risposta simile al seguente output:
Wrapping key... SUCCESS Ciphertext eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0= -
Salvare o conservare in memoria il testo cifrato per il WDEK. È necessario specificare il testo cifrato WDEK quando si importa l'immagine cifrata in IBM Cloud VPC.
-
Prerequisiti di autorizzazione IAM
Assicurati di aver creato le autorizzazioni richieste in IBM Cloud Identity and Access Management.
- Da IBM Cloud Identity and Access Management (IAM), creare un'autorizzazione tra Cloud Block Storage (servizio di origine) e il servizio di gestione delle chiavi (servizio di destinazione). L'autorizzazione consente ai servizi backplane IBM Cloud di utilizzare la tua WDEK per la crittografia dei dati.
- Assicurati di aver creato un'autorizzazione IAM tra Servizio immagine per VPC e IBM Cloud Object Storage. Specifica Infrastructure Services come servizio di origine. Specifica Servizio immagini per VPC come tipo di risorsa. Specifica IBM Cloud Object Storage come servizio di destinazione. L'autorizzazione è in modo che il servizio immagini per VPC possa accedere a immagini in IBM Cloud Object Storage. Per ulteriori informazioni, vedi Concessione dell'accesso a IBM Cloud Object Storage per importare le immagini.
Passi successivi
Quando la tua immagine viene crittografata correttamente, il tuo KMS è configurato e hai creato le chiavi richieste, puoi importare l'immagine in IBM Cloud VPC. Quando l'immagine è disponibile in IBM Cloud VPC, puoi utilizzarla per eseguire il provisioning di istanze. Assicurati di aver concesso l'accesso a IBM Cloud Object Storage per importare immagini.
Quando sei pronto a eseguire il provisioning di una nuova istanza del server virtuale con l'immagine crittografata, non sono necessarie informazioni di crittografia. La chiave di crittografia dei dati con wrapping (WDEK) e il CRN della chiave root del cliente (CRK) vengono archiviati come metadati con l'immagine.