Utiliser Azure Disk Encryption avec le séquencement d’extensions de groupes de machines virtuelles identiques
Il est possible d’ajouter des extensions telles qu’Azure Disk Encryption à un groupe de machines virtuelles identiques dans un ordre spécifié. Pour ce faire, utilisez un séquencement d’extensions.
En règle générale, un chiffrement doit être appliqué à un disque :
- Après les extensions ou scripts personnalisés qui préparent les disques ou les volumes.
- Avant les extensions ou scripts personnalisés qui accèdent ou utilisent les données figurant sur les disques ou volumes chiffrés.
Dans les deux cas, la propriété provisionAfterExtensions
désigne l’extension à ajouter plus loin dans la séquence.
Exemples de modèles Azure
Si vous souhaitez qu’Azure Disk Encryption soit appliqué après une autre extension, placez la propriété provisionAfterExtensions
dans le bloc d’extension AzureDiskEncryption.
Voici un exemple d’utilisation de « CustomScriptExtension », un script PowerShell qui initialise et formate un disque de Windows, suivi de « AzureDiskEncryption » :
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
"name": "CustomScriptExtension",
"location": "[resourceGroup().location]",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"forceUpdateTag": "[parameters('forceUpdateTag')]",
"settings": {
"fileUris": [
"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/ade-vmss/FormatMBRDisk.ps1"
]
},
"protectedSettings": {
"commandToExecute": "powershell -ExecutionPolicy Unrestricted -File FormatMBRDisk.ps1"
}
}
},
{
"type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
"name": "AzureDiskEncryption",
"location": "[resourceGroup().location]",
"properties": {
"provisionAfterExtensions": [
"CustomScriptExtension"
],
"publisher": "Microsoft.Azure.Security",
"type": "AzureDiskEncryption",
"typeHandlerVersion": "2.2",
"autoUpgradeMinorVersion": true,
"forceUpdateTag": "[parameters('forceUpdateTag')]",
"settings": {
"EncryptionOperation": "EnableEncryption",
"KeyVaultURL": "[reference(variables('keyVaultResourceId'),'2018-02-14-preview').vaultUri]",
"KeyVaultResourceId": "[variables('keyVaultResourceID')]",
"KeyEncryptionKeyURL": "[parameters('keyEncryptionKeyURL')]",
"KekVaultResourceId": "[variables('keyVaultResourceID')]",
"KeyEncryptionAlgorithm": "[parameters('keyEncryptionAlgorithm')]",
"VolumeType": "[parameters('volumeType')]",
"SequenceVersion": "[parameters('sequenceVersion')]"
}
}
},
]
}
}
Si vous souhaitez qu’Azure Disk Encryption soit appliqué avant une autre extension, placez la propriété provisionAfterExtensions
dans le bloc de l’extension à suivre.
Voici un exemple utilisant « AzureDiskEncryption » suivi de « VMDiagnosticsSettings », une extension offrant des fonctionnalités de supervision et de diagnostics sur une machine virtuelle Azure basée sur Windows :
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "AzureDiskEncryption",
"type": "Microsoft.Compute/virtualMachineScaleSets/extensions",
"location": "[resourceGroup().location]",
"properties": {
"publisher": "Microsoft.Azure.Security",
"type": "AzureDiskEncryption",
"typeHandlerVersion": "2.2",
"autoUpgradeMinorVersion": true,
"forceUpdateTag": "[parameters('forceUpdateTag')]",
"settings": {
"EncryptionOperation": "EnableEncryption",
"KeyVaultURL": "[reference(variables('keyVaultResourceId'),'2018-02-14-preview').vaultUri]",
"KeyVaultResourceId": "[variables('keyVaultResourceID')]",
"KeyEncryptionKeyURL": "[parameters('keyEncryptionKeyURL')]",
"KekVaultResourceId": "[variables('keyVaultResourceID')]",
"KeyEncryptionAlgorithm": "[parameters('keyEncryptionAlgorithm')]",
"VolumeType": "[parameters('volumeType')]",
"SequenceVersion": "[parameters('sequenceVersion')]"
}
}
},
{
"name": "Microsoft.Insights.VMDiagnosticsSettings",
"type": "extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2016-03-30",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/myVM', copyindex())]"
],
"properties": {
"provisionAfterExtensions": [
"AzureDiskEncryption"
],
"publisher": "Microsoft.Azure.Diagnostics",
"type": "IaaSDiagnostics",
"typeHandlerVersion": "1.5",
"autoUpgradeMinorVersion": true,
"settings": {
"xmlCfg": "[base64(concat(variables('wadcfgxstart'),
variables('wadmetricsresourceid'),
concat('myVM', copyindex()),
variables('wadcfgxend')))]",
"storageAccount": "[variables('storageName')]"
},
"protectedSettings": {
"storageAccountName": "[variables('storageName')]",
"storageAccountKey": "[listkeys(variables('accountid'),
'2015-06-15').key1]",
"storageAccountEndPoint": "https://core.windows.net"
}
}
},
]
}
}
Pour un modèle plus détaillé, voir :
- Appliquer l’extension Azure Disk Encryption après un script shell personnalisé qui formate le disque (Linux) : deploy-extseq-linux-ADE-after-customscript.json
Étapes suivantes
- En savoir plus sur les séquences d’extension : Séquencer l’approvisionnement des extensions dans des groupes de machines virtuelles identiques.
- Apprenez-en davantage sur la propriété
provisionAfterExtensions
: Microsoft.Compute virtualMachineScaleSets/extensions template reference. - Azure Disk Encryption pour les groupes de machines virtuelles identiques
- Chiffrer un groupe de machines virtuelles identiques à l’aide d’Azure CLI
- Chiffrer un groupe de machines virtuelles identiques à l’aide d’Azure PowerShell
- Créer et configurer un coffre de clés pour Azure Disk Encryption