Rychlý start: Vytvoření důvěrného virtuálního počítače pomocí Azure CLI

Platí pro: ✔️ Virtuální počítače s Windows s Linuxem ✔️

V tomto rychlém startu se dozvíte, jak pomocí rozhraní příkazového řádku Azure (Azure CLI) nasadit důvěrný virtuální počítač (důvěrný virtuální počítač) v Azure. Azure CLI slouží k vytváření a správě prostředků Azure prostřednictvím příkazového řádku nebo skriptů.

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Spuštění služby Azure Cloud Shell

Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít ke spuštění kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.

Pokud chcete otevřít Cloud Shell, vyberte položku Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete otevřít také na samostatné kartě prohlížeče tak, že přejdete na https://shell.azure.com/bash. Výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.

Pokud chcete rozhraní příkazového řádku nainstalovat a používat místně, tento rychlý start vyžaduje Azure CLI verze 2.38.0 nebo novější. Verzi zjistíte spuštěním příkazu az--version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění northeurope :

Poznámka:

Důvěrné virtuální počítače nejsou dostupné ve všech umístěních. V aktuálně podporovaných umístěních se podívejte, které produkty virtuálních počítačů jsou dostupné v jednotlivých oblastech Azure.

az group create --name myResourceGroup --location northeurope

Vytvoření důvěrného virtuálního počítače pomocí klíče spravovaného platformou

Vytvořte virtuální počítač pomocí příkazu az vm create.

Následující příklad vytvoří virtuální počítač myVM a přidá uživatelský účet azureuser. Tento --generate-ssh-keys parametr slouží k automatickému vygenerování klíče SSH a jeho umístění do výchozího umístění klíče(~/.ssh). Pokud místo toho chcete použít konkrétní sadu klíčů, použijte možnost --ssh-key-values. Vyberte sizedůvěrnou velikost virtuálního počítače. Další informace najdete v tématu podporované důvěrné rodiny virtuálních počítačů.

Zvolte VMGuestStateOnly pro žádné důvěrné šifrování disku s operačním systémem. Nebo zvolte DiskWithVMGuestState důvěrné šifrování disku s operačním systémem pomocí klíče spravovaného platformou. Zabezpečené spouštění je ve výchozím nastavení povolené, ale je volitelné pro VMGuestStateOnly. Další informace najdete v tématu zabezpečené spouštění a virtuální počítač vTPM. Další informace o šifrování disků a šifrování na hostiteli najdete v tématu Důvěrné šifrování disku s operačním systémem a šifrování na hostiteli.

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --size Standard_DC4es_v5 \
  --admin-username <azure-username> \
  --admin-password <azure-password> \
  --enable-vtpm true \
  --image "Canonical:0001-com-ubuntu-confidential-vm-jammy:22_04-lts-cvm:latest" \
  --public-ip-sku Standard \
  --security-type ConfidentialVM \
  --os-disk-security-encryption-type VMGuestStateOnly \
  --enable-secure-boot true \
  --encryption-at-host \

Vytvoření virtuálního počítače a podpůrných prostředků trvá několik minut. Následující příklad ukazuje, že operace vytvoření virtuálního počítače byla úspěšná.

{
  "fqdns": "",
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "northeurope",
  "macAddress": "<MAC-address>",
  "powerState": "VM running",
  "privateIpAddress": "10.20.255.255",
  "publicIpAddress": "192.168.255.255",
  "resourceGroup": "myResourceGroup",
  "zones": ""
}

Poznamenejte publicIpAddress si použití později.

Vytvoření důvěrného virtuálního počítače pomocí klíče spravovaného zákazníkem

Pokud chcete vytvořit sadu důvěrných šifrování disků, máte dvě možnosti: Použití služby Azure Key Vault nebo modulu hardwarového zabezpečení spravovaného službou Azure Key Vault (HSM). Na základě potřeb zabezpečení a dodržování předpisů můžete zvolit jednu z možností. Je ale důležité si uvědomit, že standardní skladová položka není podporovaná. Následující příklad používá Azure Key Vault Premium.

  1. Udělte důvěrnému instančnímu objektu Confidential VM Orchestrator virtuálního počítače tenantovi. V tomto kroku musíte být globální Správa nebo potřebujete mít roli Řízení přístupu uživatelů Správa istrator RBAC. Nainstalujte sadu Microsoft Graph SDK a spusťte následující příkazy.
Connect-Graph -Tenant "your tenant ID" Application.ReadWrite.All
New-MgServicePrincipal -AppId bf7b6499-ff71-4aa2-97a4-f372087be7f0 -DisplayName "Confidential VM Orchestrator"
  1. Vytvořte službu Azure Key Vault pomocí příkazu az keyvault create . Pro cenovou úroveň vyberte Premium (včetně podpory klíčů založených na HSM). Ujistěte se, že v tomto trezoru klíčů máte roli vlastníka.
az keyvault create -n keyVaultName -g myResourceGroup --enabled-for-disk-encryption true --sku premium --enable-purge-protection true
  1. Udělte Confidential VM Orchestrator oprávnění trezoru get klíčů.release
$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json
az keyvault set-policy --name keyVaultName --object-id $cvmAgent.Id --key-permissions get release
  1. Vytvořte klíč v trezoru klíčů pomocí příkazu az keyvault key create. Pro typ klíče použijte RSA-HSM.
az keyvault key create --name mykey --vault-name keyVaultName --default-cvm-policy --exportable --kty RSA-HSM
  1. Vytvořte sadu šifrování disků pomocí příkazu az disk-encryption-set create. Nastavte typ šifrování na ConfidentialVmEncryptedWithCustomerKeyhodnotu .
$keyVaultKeyUrl=(az keyvault key show --vault-name keyVaultName --name mykey--query [key.kid] -o tsv)

az disk-encryption-set create --resource-group myResourceGroup --name diskEncryptionSetName --key-url $keyVaultKeyUrl  --encryption-type ConfidentialVmEncryptedWithCustomerKey
  1. Udělte šifrovacímu disku přístup k trezoru klíčů pomocí příkazu az key vault set-policy.
$desIdentity=(az disk-encryption-set show -n diskEncryptionSetName -g myResourceGroup --query [identity.principalId] -o tsv)

az keyvault set-policy -n keyVaultName -g myResourceGroup --object-id $desIdentity --key-permissions wrapkey unwrapkey get
  1. K vytvoření virtuálního počítače použijte ID sady šifrování disku.
$diskEncryptionSetID=(az disk-encryption-set show -n diskEncryptionSetName -g myResourceGroup --query [id] -o tsv)
  1. Vytvořte virtuální počítač pomocí příkazu az vm create. Zvolte DiskWithVMGuestState pro důvěrné šifrování disku s operačním systémem pomocí klíče spravovaného zákazníkem. Povolení zabezpečeného spouštění je volitelné, ale doporučuje se. Další informace najdete v tématu zabezpečené spouštění a virtuální počítač vTPM. Další informace o šifrování disků najdete v tématu Důvěrné šifrování disku s operačním systémem.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--size Standard_DC4as_v5 \
--admin-username <azure-user> \
--admin-password <azure-password> \
--enable-vtpm true \
--enable-secure-boot true \
--image "Canonical:0001-com-ubuntu-confidential-vm-focal:20_04-lts-cvm:latest" \
--public-ip-sku Standard \
--security-type ConfidentialVM \
--os-disk-security-encryption-type DiskWithVMGuestState \
--os-disk-secure-vm-disk-encryption-set $diskEncryptionSetID \

Vytvoření virtuálního počítače a podpůrných prostředků trvá několik minut. Následující příklad ukazuje, že operace vytvoření virtuálního počítače byla úspěšná.

{
  "fqdns": "",
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "<MAC-address>",
  "powerState": "VM running",
  "privateIpAddress": "10.20.255.255",
  "publicIpAddress": "192.168.255.255",
  "resourceGroup": "myResourceGroup",
  "zones": ""
}

Poznamenejte publicIpAddress si použití později.

Připojení a otestování CVM založeného na AMD prostřednictvím ukázkové aplikace Microsoft Azure Attestation

Pokud chcete použít ukázkovou aplikaci v jazyce C++ pro použití s rozhraními API pro ověření identity hosta, postupujte následovně. Tento příklad používá důvěrný virtuální počítač s Linuxem. Pokyny k sestavení pro Windows najdete v případě Windows.

  1. Přihlaste se k důvěrnému virtuálnímu počítači pomocí jeho veřejné IP adresy.

  2. Naklonujte ukázkovou linuxovou aplikaci.

  3. Nainstalujte balíček build-essential. Tento balíček nainstaluje vše potřebné pro kompilaci ukázkové aplikace.

sudo apt-get install build-essential
  1. Nainstalujte následující balíčky.
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libjsoncpp-dev
sudo apt-get install libboost-all-dev
sudo apt install nlohmann-json3-dev
  1. Stáhněte balíček ověření identity.

  2. Nainstalujte balíček ověření identity. Nezapomeňte nahradit <version> verzi, kterou jste stáhli.

sudo dpkg -i azguestattestation1_<latest-version>_amd64.deb
  1. Po instalaci výše uvedených balíčků pomocí následujících kroků sestavte a spusťte aplikaci.
cd confidential-computing-cvm-guest-attestation/cvm-attestation-sample-app
sudo cmake . && make
sudo ./AttestationClient -o token
  1. Pokud chcete webový token převést na JSON, použijte následující postup.
sudo ./AttestationClient -o token>> /attestation_output

JWT=$(cat /attestation_output)

echo -n $JWT | cut -d "." -f 1 | base64 -d 2>/dev/null | jq .
echo -n $JWT | cut -d "." -f 2 | base64 -d 2>/dev/null | jq .

Další kroky