Création d'une image personnalisée chiffrée
Lorsque vous avez une image personnalisée qcow2 qui répond aux exigences de l'infrastructure IBM Cloud® Virtual Private Cloud, vous pouvez la chiffrer. La procédure suivante décrit comment chiffrer votre image personnalisée avec le chiffrement LUKS en utilisant QEMU et votre propre phrase d'authentification. Après avoir chiffré l'image, vous encapsulez la phrase passe avec votre clé racine client (CRK). La clé de chiffrement de données encapsulée (ou chiffrée) est stockée avec vos métadonnées d'image lorsque vous l'importez dans IBM Cloud VPC.
Un moyen rapide de créer une image personnalisée chiffrée consiste à utiliser une image à partir d'un volume. Vous pouvez utiliser cette fonction pour créer une image personnalisée à partir du volume d'amorçage d'une instance et spécifier le chiffrement géré par le client. Pour plus d'informations, voir A propos de la création d'une image à partir d'un volume.
Vous ne pouvez pas utiliser une image personnalisée chiffrée dans un catalogue privé ou sur un serveur bare metal.
Pour plus d'informations, voir Initiation aux clés SSH.
Fonctionnement des images personnalisées chiffrées
Une fois que vous avez chiffré une image personnalisée avec votre propre phrase passe, téléchargez-la dans IBM Cloud Object Storage. Avant d'importer l'image chiffrée dans IBM Cloud VPC, vous devez configurer une instance de service de gestion de clés (KMS) et créer une clé racine client (CRK). Ensuite, utilisez votre CRK pour protéger la phrase de passe que vous utilisez pour crypter votre image. En encapsulant votre phrase passe secrète avec votre CRK, vous créez ce que le service KMS appelle une clé de chiffrement de données encapsulée (WDEK). Le fait d'envelopper les données de votre phrase de passe les chiffre et les sécurise, de sorte que vous n'ayez jamais besoin de partager votre phrase de passe en texte clair.
Lorsque vous importez l'image, vous devez spécifier le nom de la ressource cloud (CRN) de votre clé racine client (CRK) stockée dans votre système de gestion de clés. Vous devez également spécifier le texte chiffré de la clé de chiffrement de données encapsulée (WDEK). La phrase passe est toujours stockée chiffrée dans la clé WDEK. Elle n'est désencapsulée qu'au démarrage d'un serveur virtuel qui utilise l'image chiffrée.
Lorsque vous êtes prêt à mettre à disposition un serveur virtuel avec l'image chiffrée, les informations de chiffrement ne sont pas nécessaires. La clé de chiffrement de données encapsulée (WDEK) et le nom de ressource de cloud de la clé racine client (CRK) sont stockés sous forme de métadonnées avec l'image. Pour plus d'informations, voir A propos des images personnalisées chiffrées.
Présentation du processus des images chiffrées
Les étapes suivantes récapitulent la procédure générale à suivre pour créer et importer une image chiffrée. Les sections qui suivent fournissent des détails sur la réalisation de cette procédure.
- Créez une image chiffrée à l'aide de QEMU et d'une phrase passe de votre choix pour chiffrer un fichier qcow2 à l'aide du chiffrement LUKS.
- Téléchargez le fichier image chiffré dans IBM Cloud Object Storage.
- Mettez à disposition un service de gestion de clés, créez une clé racine client (CRK), puis encapsulez votre phrase passe avec la CRK pour générer une clé de chiffrement de données encapsulée (WDEK).
- Assurez-vous de disposez des droits IBM Cloud Identity and Access Management requis afin de pouvoir importer l'image depuis IBM Cloud Object Storage et que votre WDEK puisse être utilisée pour le chiffrement des données.
- Importez l'image dans IBM Cloud VPC. Vous devez spécifier l'emplacement d'IBM Cloud Object Storage, la clé racine client stockée dans votre service de gestion de clés et le texte chiffré de votre WDEK.
Chiffrement de l'image
Dans cette étape, vous utilisez QEMU pour spécifier votre propre phrase d'authentification et crypter votre image personnalisée avec le cryptage LUKS.
L'image personnalisée que vous prévoyez de chiffrer doit répondre aux exigences des images personnalisées de l'infrastructure IBM Cloud VPC. Confirmez que vous avez rempli les conditions de préparation de l'image dans les rubriques suivantes :
- Initiation aux images personnalisées
- Création d'une image personnalisée Linux
- Création d'une image personnalisée Windows
Pour effectuer la tâche de cryptage, vous devez avoir installé la version 2.12 de QEMU ou une version ultérieure.
Vous devez utiliser un système d'exploitation Linux ou Windows pour suivre les instructions de chiffrement QEMU. Le système d'exploitation Mac n'est pas pris en charge.
Effectuez les étapes suivantes en utilisant QEMU pour créer un second fichier qcow2 crypté de votre image personnalisée.
-
Déterminez votre propre phrase passe à utiliser pour le chiffrement de votre image. Les exemples de commande de cette tâche utilisent la phrase passe
abc123
. Conservez votre phrase passe disponible. Vous devez ensuite envelopper la phrase de passe pour créer une clé de chiffrement des données enveloppée (WDEK). Cette WDEK est requise lorsque vous importez l'image dans IBM Cloud VPC. -
Vérifiez votre image personnalisée qcow2 à l'aide de la commande suivante :
qemu-img info my_100G_custom_image.qcow2
Pour cet exemple, vous obtenez une réponse similaire à la sortie suivante :
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
-
Créez un fichier qcow2 vide de même taille et chiffrez-le à l'aide du chiffrement LUKS. Utilisez la phrase passe de votre choix (par exemple,
abc123
), pour chiffrer le fichier :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
-
Convertissez votre image qcow2,
my_100G_custom_image.qcow2
en image cryptée,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
-
Comparez les deux fichiers pour vérifier qu'ils sont identiques.
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
-
Recherchez d'éventuelles erreurs dans le fichier.
qemu-img check --object secret,id=sec0,data=abc123 --image-opts driver=qcow2,encrypt.key-secret=sec0,file.filename=my_100G_custom_image-encrypted.qcow2
Pour cet exemple, vous obtenez une réponse similaire à la sortie suivante :
No errors were found on the image. 16343/1638400 = 1.00% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 1074790400
-
Exécutez
info
sur votre nouveau fichier crypté pour vérifier qu'il a la taille et le niveau de cryptage attendus.qemu-img info my_100G_custom_image-encrypted.qcow2
Pour cet exemple, vous obtenez une réponse similaire à la sortie suivante :
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
Téléchargement de l'image chiffrée dans IBM Cloud Object Storage
Lorsque votre fichier image est crypté avec le cryptage LUKS et votre phrase de passe unique, vous pouvez le télécharger vers IBM Cloud Object Storage en suivant les étapes suivantes :
- Assurez-vous que votre fichier image personnalisé comporte un nom descriptif afin que vous puissiez facilement l'identifier ultérieurement.
- Dans la page Objets de votre compartiment IBM Cloud Object Storage, cliquez sur Télécharger. Vous pouvez utiliser le plug-in de transfert à haut débit Aspera pour télécharger des images de plus de 200 Mo.
Configuration de votre service de gestion de clés et de vos clés
Pour importer une image personnalisée cryptée dans IBM Cloud VPC, vous devez disposer d'un service de gestion des clés. Vous avez également besoin d'une clé racine client (CRK) et d'une clé de chiffrement de données encapsulée (WDEK). Cette WDEK correspond à la phrase passe que vous avez utilisée pour chiffrer votre image encapsulée avec votre CRK afin que vous restiez le seul à connaître votre phrase passe. La clé WDEK permet d'accéder à l'image chiffrée au démarrage d'une instance de serveur virtuel qui utilise l'image chiffrée.
La liste suivante est un résumé des conditions préalables à la gestion des clés :
- Mettez à disposition un service de gestion de clés pris en charge, Key Protect ou Hyper Protect Crypto Services.
- Importer ou créer une clé racine client (CRK) dans le service de gestion de clés.
- Encapsuler (protéger) la phrase passe que vous avez utilisée pour chiffrer votre image avec votre clé racine client afin de créer une clé de chiffrement de données encapsulée (WDEK).
Les exemples d'étape suivants sont spécifiques à Key Protect, mais le déroulement général s'applique également à Hyper Protect Crypto Services. Si vous utilisez Hyper Protect Crypto Services, reportez-vous aux informations relatives à Hyper Protect Crypto Services pour obtenir les instructions correspondantes.
-
Mettez à disposition le service Key Protect.
Le provisionnement d'une nouvelle instance de service Key Protect garantit qu'elle inclut les mises à jour les plus récentes requises pour le chiffrement géré par le client.
-
Créez ou importez une clé racine de client (CRK) dans IBM Key Protect.
Planifiez l'importation de vos clés en vérifiant les options de création et de chiffrement du matériel de clé. Pour une sécurité renforcée, vous pouvez activer l'importation sécurisée de votre matériel de clé en utilisant un jeton d'importation pour chiffrer votre matériel de clé avant de le transférer sur le cloud.
-
Utilisez votre clé racine client (CRK) pour encapsuler ou protéger la phrase passe unique que vous avez utilisée pour chiffrer votre image à l'aide du chiffrement LUKS. Dans l'exemple de chiffrement d'image, nous avons utilisé la phrase passe
abc123
.-
Assurez-vous que le plug-in Key Protect CLI est installé afin de pouvoir générer un WDEK. Pour plus d'informations, voir Installation du plug-in d'interface de ligne de commande Key Protect.
-
Codez votre phrase passe en Base64 pour la préparer à l'encapsulage avec votre CRK. Exécutez la commande suivante en remplaçant
abc123
par votre phrase passe. Le paramètre -n est requis pour ne pas coder de caractère de retour à la ligne, ce qui empêcherait la phrase passe encapsulée de fonctionner.echo -n "abc123"|base64
Pour cet exemple, vous obtenez une réponse similaire à la sortie suivante :
YWJjMTIz
-
Encapsulez votre phrase passe codée avec votre CRK en exécutant la commande
ibmcloud kp key wrap
. Bien que la phrase de passe utilisée pour générer l'image cryptée ne soit pas techniquement une clé de cryptage des données, c'est la terminologie que Key Protect utilise pour les données dans les wraps et les unwraps. Les données renvoyées par Key Protect sont appelées WDEK. Pour plus d'informations, voir kp key wrap.ibmcloud kp key wrap KEY_ID -i INSTANCE_ID -p PLAINTEXT
Où KEY_ID est l'ID de la clé racine que vous voulez utiliser pour le wrapping, INSTANCE_ID est l'ID de l'instance qui identifie votre instance de service Key Protect, et PLAINTEXT est votre phrase d'authentification codée. Par exemple, YWJjMTIz.
Pour cet exemple, vous obtenez une réponse similaire à la sortie suivante :
Wrapping key... SUCCESS Ciphertext eyJjaXBoZXJ0ZXh0IjoiKzhjbHVqcUNP ...<redacted>... NmY3MTJjNGViIn0=
-
Sauvegardez ou stockez le texte chiffré de la clé WDEK. Vous devez spécifier le texte chiffré de la clé WDEK lorsque vous importez l'image chiffrée dans IBM Cloud VPC.
-
Prérequis de l'autorisation IAM
Assurez-vous d'avoir créé les autorisations requises dans IBM Cloud Identity and Access Management.
- A partir d'IBM Cloud Identity and Access Management (IAM), créez une autorisation entre Cloud Block Storage (service source) et votre service de gestion de clés (service cible). L'autorisation permet aux services de fond de panier IBM Cloud d'utiliser votre WDEK pour le chiffrement des données.
- Assurez-vous d'avoir créé une autorisation IAM entre Image Service for VPC et IBM Cloud Object Storage. Spécifiez Services d'infrastructure comme service source. Spécifiez Image Service for VPC comme type de ressource. Spécifiez IBM Cloud Object Storage comme service cible. L'autorisation permet au Service Image pour VPC d'accéder aux images dans IBM Cloud Object Storage Pour plus d'informations, voir la rubrique décrivant l'octroi d'un accès à IBM Cloud Object Storage pour importer des images.
Etapes suivantes
Lorsque votre image est cryptée avec succès, que votre KMS est configuré et que vous avez créé les clés nécessaires, vous pouvez importer l'image dans IBM Cloud VPC Une fois que l'image est disponible dans IBM Cloud VPC, vous pouvez l'utiliser pour mettre à disposition des instances. Vérifiez que vous disposez d'un accès accordé à IBM Cloud Object Storage pour importer des images.
Une fois que vous êtes prêt à mettre à disposition une nouvelle instance de serveur virtuel avec l'image chiffrée, aucune information de chiffrement n'est requise. La clé de chiffrement de données encapsulée (WDEK) et le nom de ressource de cloud de la clé racine client (CRK) sont stockés sous forme de métadonnées avec l'image.