Kryptera operativsystem och anslutna datadiskar i en VM-skalningsuppsättning med Azure CLI
Azure CLI används för att skapa och hantera Azure-resurser från kommandoraden eller i skript. Den här snabbstarten visar hur du använder Azure CLI för att skapa och kryptera en VM-skalningsuppsättning. Mer information om hur du tillämpar Azure Disk-kryptering på en VM-skalningsuppsättning finns i Azure Disk Encryption for Virtual Machine Scale Sets (Azure Disk Encryption for Virtual Machine Scale Sets).
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.31 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en skalningsuppsättning
Innan du kan skapa en skalningsuppsättning skapar du en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus:
az group create --name myResourceGroup --location eastus
Skapa nu en VM-skalningsuppsättning med az vmss create. I följande exempel skapas en skalningsuppsättning med namnet myScaleSet som är inställd på att uppdateras automatiskt när ändringarna tillämpas och genererar SSH-nycklar om de inte finns i ~/.ssh/id_rsa. En 32 Gb-datadisk är ansluten till varje VM-instans och Azure Custom Script Extension används för att förbereda datadiskarna med az vmss extension set:
Viktigt!
Se till att välja operativsystem som stöds med ADE. Operativsystem som stöds för ADE.
# Create a scale set with attached data disk
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--orchestration-mode Flexible \
--image <SKU Linux Image> \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 32
# Prepare the data disk for use with the Custom Script Extension
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'
Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorer.
Skapa ett Azure-nyckelvalv aktiverat för diskkryptering
Azure Key Vault kan lagra nycklar, hemligheter eller lösenord som gör att du på ett säkert sätt kan implementera dem i dina program och tjänster. Kryptografiska nycklar lagras i Azure Key Vault med hjälp av programvaruskydd, eller så kan du importera eller generera dina nycklar i maskinvarusäkerhetsmoduler (HSM) som är certifierade enligt FIPS 140-verifierade standarder. Dessa kryptografiska nycklar används för att kryptera och dekryptera virtuella diskar som är anslutna till den virtuella datorn. Du behåller kontrollen över dessa kryptografiska nycklar och kan granska deras användning.
Definiera dina egna unika keyvault_name. Skapa sedan en KeyVault med az keyvault create i samma prenumeration och region som skalningsuppsättningen och ange åtkomstprincipen --enabled-for-disk-encryption .
# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname
# Create Key Vault
az keyvault create --resource-group myResourceGroup --name $keyvault_name --enabled-for-disk-encryption
Använda ett befintligt Key Vault
Det här steget krävs bara om du har ett befintligt Key Vault som du vill använda med diskkryptering. Hoppa över det här steget om du skapade ett Key Vault i föregående avsnitt.
Definiera dina egna unika keyvault_name. Sedan uppdaterade du din KeyVault med az keyvault update och anger åtkomstprincipen --enabled-for-disk-encryption .
# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname
# Create Key Vault
az keyvault update --name $keyvault_name --enabled-for-disk-encryption
Aktivera kryptering
Kommentar
Om du använder vm-skalningsuppsättningar i flexibelt orkestreringsläge krypteras endast nya instanser. Befintliga instanser i skalningsuppsättningen måste krypteras individuellt eller tas bort och ersättas.
Om du vill kryptera VM-instanser i en skalningsuppsättning får du först information om Key Vault-resurs-ID:t med az keyvault show. Dessa variabler används för att sedan starta krypteringsprocessen med az vmss encryption enable:
# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)
# Enable encryption of the data disks in a scale set
az vmss encryption enable \
--resource-group myResourceGroup \
--name myScaleSet \
--disk-encryption-keyvault $vaultResourceId \
--volume-type DATA
Det kan ta en minut eller två innan krypteringsprocessen startar.
Eftersom skalningsuppsättningen är en uppgraderingsprincip för skalningsuppsättningen som skapades i ett tidigare steg är inställd på automatisk startar de virtuella datorinstanserna automatiskt krypteringsprocessen. Starta krypteringsprincipen på de virtuella datorinstanserna med az vmss update-instances på skalningsuppsättningar där uppgraderingsprincipen ska vara manuell.
Aktivera kryptering med KEK för att omsluta nyckeln
Du kan också använda en nyckelkrypteringsnyckel för ökad säkerhet när du krypterar vm-skalningsuppsättningen.
# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)
# Enable encryption of the data disks in a scale set
az vmss encryption enable \
--resource-group myResourceGroup \
--name myScaleSet \
--disk-encryption-keyvault $vaultResourceId \
--key-encryption-key myKEK \
--key-encryption-keyvault $vaultResourceId \
--volume-type DATA
Kommentar
Syntaxen för värdet för parametern disk-encryption-keyvault är den fullständiga identifierarsträngen:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault--name]
Syntaxen för värdet för parametern key-encryption-key är den fullständiga URI:n för KEK som i:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Kontrollera krypteringsstatus
Om du vill kontrollera status för diskkryptering använder du az vmss encryption show:
az vmss encryption show --resource-group myResourceGroup --name myScaleSet
När virtuella datorinstanser krypteras rapporterar statuskoden EncryptionState/krypterad, enligt följande exempelutdata:
[
{
"disks": [
{
"encryptionSettings": null,
"name": "myScaleSet_myScaleSet_0_disk2_3f39c2019b174218b98b3dfae3424e69",
"statuses": [
{
"additionalProperties": {},
"code": "EncryptionState/encrypted",
"displayStatus": "Encryption is enabled on disk",
"level": "Info",
"message": null,
"time": null
}
]
}
],
"id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/virtualMachines/0",
"resourceGroup": "MYRESOURCEGROUP"
}
]
Inaktivera kryptering
Om du inte längre vill använda krypterade VM-instanser kan du inaktivera kryptering med az vmss encryption disable enligt följande:
az vmss encryption disable --resource-group myResourceGroup --name myScaleSet
Nästa steg
- I den här artikeln använde du Azure CLI för att kryptera en VM-skalningsuppsättning. Du kan också använda Azure PowerShell - eller Azure Resource Manager-mallar.
- Om du vill att Azure Disk Encryption ska tillämpas efter att ett annat tillägg har etablerats kan du använda tilläggssekvensering.
- Här finns ett exempel på en batchfil från slutpunkt till slutpunkt för datadiskkryptering för Linux-skalningsuppsättningar. Det här exemplet skapar en resursgrupp, En Linux-skalningsuppsättning, monterar en 5 GB datadisk och krypterar vm-skalningsuppsättningen.