Création d'une image personnalisée chiffrée
Lorsque vous disposez d'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 des données encapsulées (ou cryptées) est stockée avec les métadonnées de votre 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 que vous disposez des autorisations requises IBM Cloud Identity and Access Management pour pouvoir importer l'image depuis IBM Cloud Object Storage et pour que votre WDEK puisse être utilisé pour le cryptage 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 de QEMU 2.12 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 chiffré qcow2 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.qcow2Pour 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.qcow2en 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.qcow2Pour 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
infosur 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.qcow2Pour 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é à l'aide du cryptage LUKS et de votre phrase de passe unique, vous pouvez le télécharger sur 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 avez besoin 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). Le WDEK est la phrase de passe que vous avez utilisée pour crypter votre image enveloppée avec votre CRK, de sorte que votre phrase de passe ne soit connue que de vous. 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.
Déclassé Les Hyper Protect Crypto Services sont déclassés. Les clients peuvent utiliser les instances existantes jusqu'au 20 mars 2027. Pour plus d'informations, voir Dépréciation de IBM Cloud Hyper Protect Crypto Services. Pour une protection continue, envisagez de migrer vos clés de chiffrement existantes vers une instance Dedicated Key Protect. Pour plus d'informations, voir le guide de la migration.
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 instance de service Key Protect permet de s'assurer 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
abc123par 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"|base64Pour 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 utilisée par Key Protect 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 PLAINTEXTOù 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 sur 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 sur 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.