Snabbstart: Skapa en konfidentiell virtuell dator med Azure CLI
Gäller för: ✔️ Virtuella Linux-datorer ✔️, virtuella Windows-datorer
Den här snabbstarten visar hur du använder Azure Command-Line Interface (Azure CLI) för att distribuera en konfidentiell virtuell dator (konfidentiell virtuell dator) i Azure. Azure CLI används för att skapa och hantera Azure-resurser via antingen kommandoraden eller skripten.
Förutsättningar
Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.
Starta Azure Cloud Shell
Azure Cloud Shell är ett kostnadsfritt interaktivt gränssnitt som du kan använda för att köra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.
Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Du kan också öppna Cloud Shell på en separat webbläsarflik genom att gå till https://shell.azure.com/bash. Välj Kopiera för att kopiera kodblocken, klistra in det i Cloud Shell och välj Retur för att köra det.
Om du föredrar att installera och använda CLI lokalt kräver den här snabbstarten Azure CLI version 2.38.0 eller senare. Kör az--version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Skapa en resursgrupp
Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen northeurope :
Kommentar
Konfidentiella virtuella datorer är inte tillgängliga på alla platser. För platser som stöds för närvarande, se vilka VM-produkter som är tillgängliga per Azure-region.
az group create --name myResourceGroup --location northeurope
Skapa en konfidentiell virtuell dator med en plattformshanterad nyckel
Skapa en virtuell dator med kommandot az vm create.
Följande exempel skapar virtuell dator med namnet myVM och lägger till ett användarkonto med namnet azureuser. Parametern --generate-ssh-keys
används för att automatiskt generera en SSH-nyckel och placera den på standardnyckelplatsen(~/.ssh). Om du i stället vill använda en specifik uppsättning nycklar använder du alternativet --ssh-key-values
.
För size
väljer du en konfidentiell VM-storlek. Mer information finns i Konfidentiella VM-familjer som stöds.
Välj VMGuestStateOnly
om det inte finns någon konfidentiell kryptering för OS-diskar. Du kan också välja DiskWithVMGuestState
konfidentiell kryptering för OS-diskar med en plattformshanterad nyckel. Säker start är aktiverat som standard, men är valfritt för VMGuestStateOnly
. Mer information finns i säker start och vTPM. Mer information om diskkryptering och kryptering på värden finns i konfidentiell os-diskkryptering och kryptering på värden.
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
Det tar några minuter att skapa den virtuella datorn och stödresurser. Utdataresultatet i följande exempel anger att den virtuella datorn har skapats.
{
"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": ""
}
Anteckna att du publicIpAddress
vill använda senare.
Skapa en konfidentiell virtuell dator med hjälp av en kundhanterad nyckel
Om du vill skapa en uppsättning konfidentiell diskkryptering har du två alternativ: Använda Azure Key Vault eller Azure Key Vault managed Hardware Security Module (HSM). Baserat på dina säkerhets- och efterlevnadsbehov kan du välja något av alternativen. Observera dock att standard-SKU:n inte stöds. I följande exempel används Azure Key Vault Premium.
- Bevilja konfidentiellt huvudnamn
Confidential VM Orchestrator
för den virtuella datorns tjänst till klientorganisationen. För det här steget måste du vara global administratör eller ha rollen Administratör för användaråtkomstadministratör. Installera Microsoft Graph SDK för att köra kommandona nedan.
Connect-Graph -Tenant "your tenant ID" Application.ReadWrite.All
New-MgServicePrincipal -AppId bf7b6499-ff71-4aa2-97a4-f372087be7f0 -DisplayName "Confidential VM Orchestrator"
- Skapa ett Azure Key Vault med kommandot az keyvault create . För prisnivån väljer du Premium (innehåller stöd för HSM-säkerhetskopierade nycklar). Kontrollera att du har en ägarroll i det här nyckelvalvet.
az keyvault create -n keyVaultName -g myResourceGroup --enabled-for-disk-encryption true --sku premium --enable-purge-protection true --enable-rbac-authorization false
- Ge
Confidential VM Orchestrator
behörigheter tillget
ochrelease
nyckelvalvet.
$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
- Skapa en nyckel i nyckelvalvet med az keyvault key create. För nyckeltypen använder du RSA-HSM.
az keyvault key create --name mykey --vault-name keyVaultName --default-cvm-policy --exportable --kty RSA-HSM
- Skapa diskkrypteringsuppsättningen med az disk-encryption-set create. Ange krypteringstypen till
ConfidentialVmEncryptedWithCustomerKey
.
$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
- Ge diskkrypteringsuppsättningen resursåtkomst till nyckelvalvet med hjälp av 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
- Använd diskkrypteringsuppsättningens ID för att skapa den virtuella datorn.
$diskEncryptionSetID=(az disk-encryption-set show -n diskEncryptionSetName -g myResourceGroup --query [id] -o tsv)
- Skapa en virtuell dator med kommandot az vm create. Välj
DiskWithVMGuestState
för konfidentiell kryptering av os-diskar med en kundhanterad nyckel. Det är valfritt att aktivera säker start, men rekommenderas. Mer information finns i säker start och vTPM. Mer information om diskkryptering finns i konfidentiell os-diskkryptering.
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 \
Det tar några minuter att skapa den virtuella datorn och stödresurser. Utdataresultatet i följande exempel anger att den virtuella datorn har skapats.
{
"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": ""
}
Anteckna att du publicIpAddress
vill använda senare.
Ansluta och intyga AMD-baserad CVM via Microsoft Azure Attestation Sample App
Använd följande steg om du vill använda ett exempelprogram i C++ för användning med API:erna för gästattestering. I det här exemplet används en konfidentiell virtuell Linux-dator. För Windows, se bygginstruktioner för Windows.
Logga in på den konfidentiella virtuella datorn med dess offentliga IP-adress.
Installera paketet
build-essential
. Det här paketet installerar allt som krävs för att kompilera exempelprogrammet.
sudo apt-get install build-essential
- Installera paketen nedan.
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
Installera attesteringspaketet. Ersätt
<version>
med den version som du laddade ned.
sudo dpkg -i azguestattestation1_<latest-version>_amd64.deb
- När ovanstående paket har installerats använder du stegen nedan för att skapa och köra appen.
cd confidential-computing-cvm-guest-attestation/cvm-attestation-sample-app
sudo cmake . && make
sudo ./AttestationClient -o token
- Om du vill konvertera webbtoken till en JSON använder du stegen nedan.
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 .