Usare Crittografia dischi di Azure con la sequenziazione dell'estensione del set di scalabilità di macchine virtuali
Le estensioni, ad esempio crittografia dischi di Azure, possono essere aggiunte a un set di scalabilità di macchine virtuali di Azure in un ordine specificato. A tale scopo, usare la sequenziazione 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 delle estensioni o degli 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.
Di seguito è riportato 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 desidera 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
provisionAfterExtensions
proprietà: Informazioni di riferimento sul 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 Azure PowerShell
- Creare e configurare un insieme di credenziali delle chiavi per Crittografia dischi di Azure