Usare Crittografia dischi di Azure con sequenziazione del set di scalabilità di macchine virtuali
È possibile aggiungere estensioni come crittografia dischi di Azure a un set di scalabilità di macchine virtuali di Azure in un ordine specificato. A tale scopo, usare il sequenziamento dell'estensione.
In generale, la crittografia deve essere applicata a un disco:
- Dopo le estensioni o gli script personalizzati che preparano i dischi o i volumi.
- Prima di estensioni o script personalizzati che accedono o utilizzano i dati nei dischi o nei volumi crittografati.
In entrambi i casi, la provisionAfterExtensions
proprietà designa l'estensione da aggiungere più avanti nella sequenza.
Modelli di Azure di esempio
Se si vuole applicare Crittografia dischi di Azure dopo un'altra estensione, inserire la provisionAfterExtensions
proprietà nel blocco di estensione AzureDiskEncryption.
Ecco un esempio che usa "CustomScriptExtension", uno script di PowerShell che inizializza e formatta un disco Windows, seguito da "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')]"
}
}
},
]
}
}
Se si vuole applicare Crittografia dischi di Azure prima di un'altra estensione, inserire la provisionAfterExtensions
proprietà nel blocco dell'estensione da seguire.
Ecco un esempio che usa "AzureDiskEncryption" seguito da "VMDiagnosticsSettings", un'estensione che fornisce funzionalità di monitoraggio e diagnostica in una macchina virtuale di Azure basata su 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"
}
}
},
]
}
}
Per un modello più approfondito, vedere:
- Applicare l'estensione Crittografia dischi di Azure dopo uno script della shell personalizzato che formatta il disco (Linux): deploy-extseq-linux-ADE-after-customscript.json
Passaggi successivi
- Altre informazioni sul sequenziamento delle estensioni: provisioning dell'estensione sequenza in set di scalabilità di macchine virtuali.
- Altre informazioni sulla proprietà: Informazioni di riferimento sul
provisionAfterExtensions
modello Microsoft.Compute virtualMachineScaleSets/extensions. - Crittografia dischi di Azure per set di scalabilità di macchine virtuali
- Crittografare un set di scalabilità di macchine virtuali usando l'interfaccia della riga di comando di Azure
- Crittografare un set di scalabilità di macchine virtuali usando l'Azure PowerShell
- Creare e configurare un insieme di credenziali delle chiavi per Crittografia dischi di Azure