Šifrování operačního systému a připojených datových disků ve škálovací sadě virtuálních počítačů pomocí Azure CLI
Azure CLI slouží k vytváření a správě prostředků Azure z příkazového řádku nebo ve skriptech. V tomto rychlém startu se dozvíte, jak pomocí Azure CLI vytvořit a šifrovat škálovací sadu virtuálních počítačů. Další informace o použití služby Azure Disk Encryption pro škálovací sadu virtuálních počítačů najdete v tématu Azure Disk Encryption pro škálovací sady virtuálních počítačů.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Tento článek vyžaduje verzi 2.0.31 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Vytvoření škálovací sady
Než vytvoříte škálovací sadu, vytvořte skupinu prostředků pomocí příkazu az group create. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus:
az group create --name myResourceGroup --location eastus
Teď vytvořte škálovací sadu virtuálních počítačů pomocí příkazu az vmss create. Následující příklad vytvoří škálovací sadu s názvem myScaleSet , která je nastavená tak, aby se automaticky aktualizovala při použití změn, a vygeneruje klíče SSH, pokud neexistují v ~/.ssh/id_rsa. Ke každé instanci virtuálního počítače je připojený datový disk o velikosti 32 Gb a rozšíření vlastních skriptů Azure slouží k přípravě datových disků pomocí sady rozšíření az vmss:
Důležité
Nezapomeňte vybrat podporovaný operační systém s ADE. Podporovaný operační systém pro 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"}'
Vytvoření a konfigurace všech prostředků škálovací sady a virtuálních počítačů trvá několik minut.
Vytvoření trezoru klíčů Azure s povoleným šifrováním disků
Azure Key Vault může ukládat klíče, tajné kódy nebo hesla, která vám umožní bezpečně je implementovat ve vašich aplikacích a službách. Kryptografické klíče se ukládají ve službě Azure Key Vault pomocí softwarové ochrany nebo můžete importovat nebo generovat klíče v modulech hardwarového zabezpečení (HSM) certifikovaných pro ověřené standardy FIPS 140. Tyto kryptografické klíče slouží k šifrování a dešifrování virtuálních disků připojených k virtuálnímu počítači. Tyto kryptografické klíče si zachováte pod kontrolou a můžete je auditovat.
Definujte vlastní jedinečné keyvault_name. Potom vytvořte službu KeyVault pomocí příkazu az keyvault create ve stejném předplatném a oblasti jako škálovací sada a nastavte zásady přístupu k šifrování disku --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
Použití existující služby Key Vault
Tento krok se vyžaduje jenom v případě, že máte existující službu Key Vault, kterou chcete použít s šifrováním disku. Tento krok přeskočte, pokud jste vytvořili službu Key Vault v předchozí části.
Definujte vlastní jedinečné keyvault_name. Potom aktualizujte službu KeyVault pomocí příkazu az keyvault update a nastavte zásadu přístupu k šifrování disku --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
Povolení šifrování
Poznámka:
Pokud používáte škálovací sady virtuálních počítačů v flexibilním režimu orchestrace, budou zašifrovány pouze nové instance. Existující instance ve škálovací sadě budou muset být šifrovány jednotlivě nebo odebrány a nahrazeny.
Pokud chcete šifrovat instance virtuálních počítačů ve škálovací sadě, nejprve získejte informace o ID prostředku služby Key Vault pomocí příkazu az keyvault show. Tyto proměnné se používají k následnému spuštění procesu šifrování pomocí příkazu 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
Zahájení procesu šifrování může trvat minutu nebo dvě.
Vzhledem k tomu, že škálovací sada je zásada upgradu škálovací sady vytvořená v předchozím kroku nastavená na automatickou, instance virtuálních počítačů automaticky spustí proces šifrování. Ve škálovacích sadách, kde je zásada upgradu ruční, spusťte zásadu šifrování na instancích virtuálních počítačů pomocí příkazu az vmss update-instances.
Povolení šifrování pomocí klíče KEK
Šifrovací klíč klíče můžete použít také k přidání zabezpečení při šifrování škálovací sady virtuálních počítačů.
# 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
Poznámka:
Syntaxe pro hodnotu parametru disk-encryption-keyvault je řetězec úplného identifikátoru:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name.]
Syntaxe pro hodnotu parametru key-encryption-key je úplný identifikátor URI klíče KEK jako v:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Kontrola průběhu šifrování
Pokud chcete zkontrolovat stav šifrování disků, použijte příkaz az vmss encryption show:
az vmss encryption show --resource-group myResourceGroup --name myScaleSet
Když jsou instance virtuálních počítačů zašifrované, stavový kód hlásí Stav nebo šifrovaný stav, jak je znázorněno v následujícím příkladu výstupu:
[
{
"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"
}
]
Zakázání šifrování
Pokud už nechcete používat šifrované disky instancí virtuálních počítačů, můžete šifrování zakázat pomocí příkazu az vmss encryption následujícím způsobem:
az vmss encryption disable --resource-group myResourceGroup --name myScaleSet
Další kroky
- V tomto článku jste použili Azure CLI k šifrování škálovací sady virtuálních počítačů. Můžete také použít šablony Azure PowerShellu nebo Azure Resource Manageru.
- Pokud chcete, aby služba Azure Disk Encryption byla použita po zřízení jiného rozšíření, můžete použít sekvencování rozšíření.
- Tady najdete kompletní dávkový soubor s příkladem šifrování datového disku škálovací sady pro Linux. Tento příklad vytvoří skupinu prostředků, škálovací sadu Linuxu, připojí 5GB datový disk a zašifruje škálovací sadu virtuálních počítačů.