Š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

  • 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čů.