Comment créer une image personnalisée pour les machines virtuelles confidentielles Azure
S’applique à : ✔️ Machines virtuelles Linux
Ce « guide pratique » vous montre comment utiliser la interface de ligne de commande Azure (Azure CLI) pour créer une image personnalisée pour votre machine virtuelle confidentielle (machine virtuelle confidentielle) dans Azure. L’interface Azure CLI permet de créer et gérer des ressources Azure par le biais de la ligne de commande ou de scripts.
La création d’une image personnalisée vous permet de préconfigurer votre machine virtuelle confidentielle avec des logiciels, des paramètres et des mesures de sécurité spécifiques qui répondent à vos besoins. Si vous souhaitez apporter une image Ubuntu qui n’est pas compatible avec les machines virtuelles confidentielles, vous pouvez suivre les étapes ci-dessous pour voir quelles sont les conditions minimales requises pour votre image.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
Lancement d’Azure Cloud Shell
Azure Cloud Shell est un interpréteur de commandes interactif et gratuit que vous pouvez utiliser pour exécuter les étapes de cet article. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.
Pour ouvrir Cloud Shell, sélectionnez simplement Essayer en haut à droite d’un bloc de code. Vous pouvez également ouvrir Cloud Shell dans un onglet distinct du navigateur en accédant à https://shell.azure.com/bash. Sélectionnez Copier pour copier les blocs de code, collez-les dans Cloud Shell et sélectionnez Entrée pour les exécuter.
Si vous préférez installer et utiliser l’interface de ligne de commande en local, ce démarrage rapide nécessite au minimum la version 2.0.30 d’Azure CLI. Exécutez az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Créer un groupe de ressources
Créez un groupe de ressources avec la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.
Remarque
Les machines virtuelles confidentielles ne sont pas disponibles dans tous les emplacements. Pour les emplacements actuellement pris en charge, consultez la disponibilité des produits de machines virtuelles par région Azure.
az group create --name $resourceGroupName --location eastus
Créer une image personnalisée pour les machines virtuelles confidentielles Azure
Créez une machine virtuelle avec une image Ubuntu de choix dans la liste des images support Azure ed.
Vérifiez que la version du noyau est au moins 5.15.0-1037-azure. Vous pouvez utiliser « uname -r » après vous être connecté à la machine virtuelle pour case activée la version du noyau. Ici, vous pouvez ajouter des modifications à l’image comme vous le voyez.
Libérez votre machine virtuelle.
az vm deallocate --name $vmname --resource-group $resourceGroupName
Créez un jeton d’accès partagé (jeton SAP) pour le disque du système d’exploitation et stockez-le dans une variable. Notez que ce disque de système d’exploitation n’a pas besoin d’être dans le même groupe de ressources que la machine virtuelle confidentielle.
disk_name=$(az vm show --name $vmname --resource-group $resourceGroupName | jq -r .storageProfile.osDisk.name) disk_url=$(az disk grant-access --duration-in-seconds 3600 --name $disk_name --resource-group $resourceGroupName | jq -r .accessSas)
Créer un compte de stockage pour stocker le disque exporté
- Créez un compte de stockage.
az storage account create --resource-group ${resourceGroupName} --name ${storageAccountName} --location $region --sku "Standard_LRS"
- Créez un conteneur sur le compte de stockage.
az storage container create --name $storageContainerName --account-name $storageAccountName --resource-group $resourceGroupName
- Générez un jeton d’accès partagé en lecture (jeton SAP) dans le conteneur de stockage et enregistrez-le dans une variable.
container_sas=$(az storage container generate-sas --name $storageContainerName --account-name $storageAccountName --auth-mode key --expiry 2024-01-01 --https-only --permissions dlrw -o tsv)
- À l’aide d’azcopy, copiez le disque du système d’exploitation dans le conteneur de stockage.
blob_url="https://${storageAccountName}.blob.core.windows.net/$storageContainerName/$referenceVHD" azcopy copy "$disk_url" "${blob_url}?${container_sas}"
Créer une image confidentielle prise en charge
- Créez une galerie d’images partagées.
az sig create --resource-group $resourceGroupName --gallery-name $galleryName
- Créez une machine virtuelle confidentielle de définition sig (Shared Image Gallery) prise en charge. Définissez de nouveaux noms pour la définition d’image de la galerie, l’éditeur SIG et la référence SKU.
az sig image-definition create --resource-group $resourceGroupName --location $region --gallery-name $galleryName --gallery-image-definition $imageDefinitionName --publisher $sigPublisherName --offer ubuntu --sku $sigSkuName --os-type Linux --os-state specialized --hyper-v-generation V2 --features SecurityType=ConfidentialVMSupported
- Obtenez l’ID du compte de stockage.
storageAccountId=$(az storage account show --name $storageAccountName --resource-group $resourceGroupName | jq -r .id)
- Créez une version d’image SIG.
az sig image-version create --resource-group $resourceGroupName --gallery-name $galleryName --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --os-vhd-storage-account $storageAccountId --os-vhd-uri $blob_url
- Stockez l’ID de la version de l’image SIG créée à l’étape précédente.
galleryImageId=$(az sig image-version show --gallery-image-definition $imageDefinitionName --gallery-image-version $galleryImageVersion --gallery-name $galleryName --resource-group $resourceGroupName | jq -r .id)
Créer une machine virtuelle confidentielle
- Créez une machine virtuelle avec la commande az vm create. Pour plus d’informations, consultez démarrage sécurisé et vTPM. Pour plus d’informations sur le chiffrement de disque, consultez Chiffrement de disque de système d’exploitation confidentiel. Actuellement, les machines virtuelles confidentielles prennent en charge les tailles de machines virtuelles de la série DC et de la série EC.
az vm create \ --resource-group $resourceGroupName \ --name $cvmname \ --size Standard_DC4as_v5 \ --enable-vtpm true \ --enable-secure-boot true \ --image $galleryImageId \ --public-ip-sku Standard \ --security-type ConfidentialVM \ --os-disk-security-encryption-type VMGuestStateOnly \ --specialized