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.
- Eseguire la procedura descritta all'indirizzo Key Protect, creare una chiave radice cliente (CRK), quindi avvolgere la passphrase con la CRK per generare una chiave di crittografia dei dati avvolta (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. È necessario specificare un IBM Cloud Object Storage, il CRK memorizzato nel file Key Protect e il 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 -
Controlla se il file contiene 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
IBM Cloud Hyper Protect Crypto Services sono obsolete. I clienti possono utilizzare le istanze esistenti fino al 20 marzo 2027. Per ulteriori informazioni, consultare la sezione " Deprecazione di IBM Cloud Hyper Protect Crypto Services ". Per garantire una protezione continua, valuta la possibilità di migrare le tue chiavi di crittografia esistenti su un’istanza dedicata di Key Protect. Per ulteriori informazioni, consultare la Guida alla migrazione.
Per importare un'immagine personalizzata crittografata su IBM Cloud VPC, è necessario Key Protect. 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.
Il seguente elenco è un riepilogo dei requisiti di gestione delle chiavi:
- Disposizione Key Protect.
- Importa una chiave root cliente (CRK) su Key Protect oppure creane una su Key Protect.
- 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).
-
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.
Lo stato della chiave root del cliente (CRK) influisce direttamente sulla disponibilità dell'immagine crittografata. Se la CRK viene sospesa, disattivata o distrutta, la chiave di crittografia dei dati avvolta (WDEK) non può essere decompressa e nessuna istanza di server virtuale che utilizza l'immagine crittografata potrà avviarsi. Per ulteriori informazioni, consultare la sezione “Stati e transizioni chiave ”.
-
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 crittografata su 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), crea un'autorizzazione tra Cloud Block Storage (servizio di origine) e il proprio 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
Una volta che l'immagine è stata crittografata correttamente, è stato configurato Key Protect e sono state create le chiavi necessarie, è possibile importare l'immagine su IBM Cloud VPC. Quando l'immagine è disponibile su IBM Cloud VPC, è possibile utilizzarla per creare istanze. Assicurati di aver concesso l'accesso a IBM Cloud Object Storage per importare le 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.