Использование Шифрование дисков Azure с последовательности расширения масштабируемого набора виртуальных машин
Расширения, такие как расширение Шифрования дисков Azure, можно добавить в масштабируемый набор виртуальных машин Azure в указанном порядке. Для этого используется последовательность расширений.
Как правило, шифрование должно применяться к диску:
- после расширений или пользовательских скриптов, подготавливающих диски или тома;
- до расширений или пользовательских скриптов, которые обращаются к данным на зашифрованных дисках или томах или используют их.
В любом случае свойство provisionAfterExtensions
указывает, какое расширение будет добавлено позже в последовательности.
Примеры шаблонов Azure
Если вы хотите, чтобы расширение Шифрования дисков Azure применялось после другого расширения, добавьте свойство provisionAfterExtensions
в блок расширения AzureDiskEncryption.
Ниже приведен пример с использованием CustomScriptExtension (скрипта PowerShell, который инициализирует и форматирует диск Windows), за которым следует 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')]"
}
}
},
]
}
}
Если вы хотите, чтобы расширение Шифрования дисков Azure применялось перед другим расширением, добавьте свойство provisionAfterExtensions
в блок последующего расширения.
Ниже приведен пример, в котором используется AzureDiskEncryption, за которым следует расширение VMDiagnosticsSettings, которое предоставляет возможности мониторинга и диагностики на виртуальной машине Azure под управлением 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"
}
}
},
]
}
}
Более подробный пример:
- Примените расширение Шифрования дисков Azure после пользовательского скрипта оболочки, который форматирует диск (Linux): deploy-extseq-linux-ADE-after-customscript.json.
Следующие шаги
- Дополнительные сведения о последовательности расширений: подготовка расширения последовательности в Масштабируемые наборы виртуальных машин.
- Дополнительные сведения о свойстве
provisionAfterExtensions
см. в статье Microsoft.Compute virtualMachineScaleSets/extensions 2018-10-01. - Шифрование дисков Azure для масштабируемых наборов виртуальных машин
- Шифрование Масштабируемые наборы виртуальных машин с помощью Azure CLI
- Шифрование Масштабируемые наборы виртуальных машин с помощью Azure PowerShell
- Creating and configuring a key vault for Azure Disk Encryption (Создание и настройка хранилища ключей для шифрования дисков Azure)