Utiliser Azure CLI pour activer le chiffrement côté serveur à l'aide de clés gérées par le client pour les disques managés
S’applique aux : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles ✔️ Groupes identiques uniformes
Le stockage sur disque Azure vous permet de gérer vos propres clés lors de l’utilisation du chiffrement côté serveur (SSE) pour les disques managés, si vous le souhaitez. Pour obtenir des informations conceptuelles sur SSE avec des clés gérées par le client, ainsi que d’autres types de chiffrement de disque managés, consultez la section Customer-managed keys (Clés gérées par le client) de notre article sur le chiffrement de disque.
Restrictions
Pour le moment, les clés gérées par le client sont soumises aux restrictions suivantes :
- Si vous activez cette fonctionnalité pour un disque ayant des captures instantanées incrémentielles, vous ne pouvez pas la désactiver sur ce disque ou ses captures instantanées. Pour éviter cette situation, copiez toutes les données sur un disque managé totalement différent qui n’utilise pas de clés gérées par le client. Vous pouvez le faire avec Azure CLI ou le module Azure PowerShell.
- Seules les clés RSA HSM et de logiciels des tailles une tailles 2 048 bits, 3 072 bits et 4 096 bits sont prises en charge ; aucune autre clé ou taille n’est prise en charge.
- Les clés HSM nécessitent le niveau Premium de coffres de clés Azure.
- Pour les disques Ultra et SSD Premium v2 uniquement :
- Les instantanés créés à partir de disques chiffrés à l’aide du chiffrement côté serveur et des clés gérées par le client doivent être chiffrés avec les mêmes clés gérées par le client.
- Les identités managées affectées par l’utilisateur ne sont pas prises en charge pour les disques Ultra et SSD Premium v2 chiffrés avec des clés gérées par le client.
- Actuellement non pris en charge dans Azure Government ou Azure Chine.
- La plupart des ressources liées à vos clés gérées par le client (jeux de chiffrement de disque, machines virtuelles, disques et instantanés) doivent se trouver dans le même abonnement et la même région.
- Les coffres de clés Azure peuvent être utilisés à partir d’un autre abonnement, mais doivent se trouver dans la même région que votre jeu de chiffrement de disque. En préversion, vous pouvez utiliser des coffres de clés Azure à partir de différents locataires Microsoft Entra.
- Les disques chiffrés avec des clés gérées par le client peuvent uniquement se déplacer vers un autre groupe de ressources si la machine virtuelle à laquelle ils sont attachés est désallouée.
- Les disques, les captures instantanées et les images chiffrées à l’aide de clés gérées par le client ne peuvent pas être déplacés d’un abonnement à un autre.
- Les disques managés actuellement ou précédemment chiffrés à l’aide d’Azure Disk Encryption ne peuvent pas faire l’objet d’un chiffrement en utilisant des clés gérées par le client.
- Ne peut créer que jusqu’à 5 000 jeux de chiffrements de disques par région et par abonnement.
- Pour plus d’informations sur l’utilisation de clés gérées par le client avec des galeries d’images partagées, consultez Préversion : Utiliser des clés gérées par le client pour le chiffrement d’images.
Créer des ressources
Une fois la fonctionnalité activée, vous devez configurer un DiskEncryptionSet et une instance Azure Key Vault ou un HSM géré par Azure Key Vault.
Azure Key Vault
- Installez la dernière version d’Azure CLI et connectez-vous à un compte Azure avec az login.
- Créez un Azure Key Vault et une clé de chiffrement.
Quand vous créez le Key Vault, vous devez activer la protection de purge. La protection de purge garantit qu’une clé supprimée ne peut pas être supprimée définitivement tant que la période de rétention n’est pas écoulée. Ces paramètres vous protègent contre la perte de données en raison d’une suppression accidentelle. Ces paramètres sont obligatoires lors de l’utilisation d’un coffre de clés Key Vault pour le chiffrement des disques managés.
Important
N’utilisez pas de casse mixte pour la région. Si vous le faites, vous risquez de rencontrer des problèmes lors de l’attribution de disques supplémentaires à la ressource dans le Portail Azure.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
- Créez un DiskEncryptionSet. Vous pouvez affecter la valeur true à Enable-Auto-Key-rotation pour activer la rotation automatique de la clé. Lorsque vous activez la rotation automatique, le système met automatiquement à jour tous les disques managés, les captures instantanées et les images référençant le jeu de chiffrement de disque pour utiliser la nouvelle version de la clé dans un délai d’une heure.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
- Accorder à la ressource DiskEncryptionSet l’accès au coffre de clés.
Remarque
La création de l’identité de votre DiskEncryptionSet dans Microsoft Entra ID peut prendre quelques minutes à Azure. Si vous recevez une erreur comme « Impossible de trouver l’objet Active Directory » lors de l’exécution de la commande suivante, attendez quelques minutes et réessayez.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
HSM géré par Azure Key Vault
Vous pouvez également utiliser un HSM géré pour gérer vos clés.
Pour ce faire, vous devez remplir les conditions préalables suivantes :
- Installez la dernière version d’Azure CLI et connectez-vous à un compte Azure avec az login.
- Créez et configurez un HSM géré.
- Affectez des autorisations à un utilisateur, afin qu’il puisse gérer votre HSM géré.
Configuration
Une fois que vous avez créé un module HSM géré et ajouté des autorisations, activez la protection contre le vidage et créez une clé de chiffrement.
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
Ensuite, créez un DiskEncryptionSet.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
Enfin, accordez au DiskEncryptionSet l’accès au HSM géré.
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
Maintenant que vous avez créé et configuré ces ressources, vous pouvez les utiliser pour sécuriser vos disques managés. Les liens suivants contiennent des exemples de scripts, chacun avec un scénario respectif, que vous pouvez utiliser pour sécuriser vos disques managés.
Exemples
Créer une machine virtuelle à l’aide d’une image marketplace, en chiffrant le système d’exploitation et les disques de données avec des clés gérées par le client
rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName -n $vmName -l $location --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Chiffrer des disques managés existants
Vos disques existants ne doivent pas être attachés à une machine virtuelle en cours d’exécution pour que vous puissiez les chiffrer à l’aide du script suivant :
rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId
Créer un groupe de machines virtuelles identiques en utilisant une image de la Place de marché, en chiffrant le système d’exploitation et les disques de données avec des clés gérées par le client
rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
Créer un disque vide chiffré à l’aide du chiffrement côté serveur avec des clés gérées par le client et l’attacher à une machine virtuelle
vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName
diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)
az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId
Modifier la clé d’un DiskEncryptionSet pour faire pivoter la clé de toutes les ressources référençant le DiskEncryptionSet
rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId
Rechercher l’état de chiffrement côté serveur d’un disque
az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv
Important
Les clés gérées par le client s’appuient sur des identités managées pour les ressources Azure, une fonctionnalité de Microsoft Entra ID. Quand vous configurez des clés gérées par le client, une identité managée est automatiquement affectée à vos ressources à l’arrière plan. Si, par la suite, vous déplacez l’abonnement, le groupe de ressources ou le disque managé d’un répertoire Microsoft Entra vers un autre, l’identité managée associée aux disques managés n’est pas transférée vers le nouveau locataire, de sorte que les clés gérées par le client peuvent ne plus fonctionner. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Transfert d’un abonnement entre des répertoires Azure AD.
Étapes suivantes
- Découvrez les modèles Azure Resource Manager permettant de créer des disques chiffrés avec des clés gérées par le client
- Répliquer des machines avec des disques activés par les clés gérées par le client
- Configurer la reprise d’activité des machines virtuelles VMware sur Azure avec PowerShell
- Configurer la récupération d’urgence dans Azure pour les machines virtuelles Hyper-V à l’aide de PowerShell et d’Azure Resource Manager
- Pour un exemple de code, consulterCréer un disque managé à partir d’une capture instantanée avec l’interface de ligne de commande.