Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda en Azure Resource Manager-mall (ARM-mall) för att snabbt skapa en konfidentiell virtuell Azure-dator. Konfidentiella virtuella datorer körs på både AMD-processorer som backas upp av AMD SEV-SNP- och Intel-processorer som backas upp av Intel TDX för att uppnå vm-minneskryptering och isolering. Mer information finns i Översikt över konfidentiell virtuell dator.
I den här självstudien beskrivs distribution av en konfidentiell virtuell dator med en anpassad konfiguration.
Förutsättningar
- En Azure-prenumeration. Kostnadsfria utvärderingskonton har inte åtkomst till de virtuella datorer som används i den här självstudien. Ett alternativ är att använda en betala per användning-prenumeration.
- Om du vill distribuera från Azure CLI installerar du PowerShell och installerar Azure CLI.
Distribuera en mall för konfidentiell virtuell dator med Azure CLI
Du kan distribuera en mall för konfidentiell virtuell dator som har valfri kryptering av os-disken konfidentiellt via en plattformshanterad nyckel.
Så här skapar och distribuerar du din konfidentiella virtuella dator med hjälp av en ARM-mall via Azure CLI:
Logga in på ditt Azure-konto i Azure CLI.
az loginAnge din Azure-prenumeration. Ersätt
<subscription-id>med din prenumerationsidentifierare. Se till att använda en prenumeration som uppfyller kraven.az account set --subscription <subscription-id>Ange variablerna för den konfidentiella virtuella datorn. Ange distributionsnamnet (
$deployName), resursgruppen ($resourceGroup), namnet på den virtuella datorn ($vmName) och Azure-regionen ($region). Ersätt exempelvärdena med din egen information.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.
$deployName="<deployment-name>" $resourceGroup="<resource-group-name>" $vmName= "<confidential-vm-name>" $region="<region-name>"Om den angivna resursgruppen inte finns skapar du en resursgrupp med det namnet.
az group create -n $resourceGroup -l $regionDistribuera den virtuella datorn till Azure med hjälp av en ARM-mall med en anpassad parameterfil och mallfil.
az deployment group create ` -g $resourceGroup ` -n $deployName ` -u "<json-template-file-path>" ` -p "<json-parameter-file-path>" ` -p vmLocation=$region ` vmName=$vmName
Definiera anpassad parameterfil
När du skapar en konfidentiell virtuell dator via Azures kommandoradsgränssnitt (Azure CLI) måste du definiera en anpassad parameterfil. Så här skapar du en anpassad JSON-parameterfil:
Logga in på ditt Azure-konto via Azure CLI.
Skapa en JSON-parameterfil. Exempel:
azuredeploy.parameters.jsonBeroende på vilken OS-avbildning du använder kopierar du antingen Windows-exempelparameterfilen eller Linux-exempelparameterfilen till parameterfilen.
Redigera JSON-koden i parameterfilen efter behov. Du kan till exempel uppdatera os-avbildningsnamnet (
osImageName) eller administratörens användarnamn (adminUsername).Konfigurera inställningen för säkerhetstyp (
securityType). VäljVMGuestStateOnlyom det inte finns någon konfidentiell kryptering för OS-diskar. Du kan också väljaDiskWithVMGuestStatekonfidentiell kryptering för OS-diskar med en plattformshanterad nyckel. Endast för Intel TDX-SKU:er och Linux-baserade avbildningar kan kunderna välja denNonPersistedTPMsäkerhetstyp som ska distribueras med en tillfällig vTPM.NonPersistedTPMFör säkerhetstypen använder du den minsta "apiVersion": "2023-09-01" underMicrosoft.Compute/virtualMachinesi mallfilen.Spara parameterfilen.
Exempel på Windows-parameterfil
Använd det här exemplet om du vill skapa en anpassad parameterfil för en Windows-baserad konfidentiell virtuell dator.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmSize": {
"value": "Standard_DC2as_v5"
},
"osImageName": {
"value": "Windows Server 2022 Gen 2"
},
"securityType": {
"value": "DiskWithVMGuestState"
},
"adminUsername": {
"value": "testuser"
},
"adminPasswordOrKey": {
"value": "<your password>"
}
}
}
Exempel på Linux-parameterfil
Använd det här exemplet om du vill skapa en anpassad parameterfil för en Linux-baserad konfidentiell virtuell dator.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmSize": {
"value": "Standard_DC2as_v5"
},
"osImageName": {
"value": "Ubuntu 20.04 LTS Gen 2"
},
"securityType": {
"value": "DiskWithVMGuestState"
},
"adminUsername": {
"value": "testuser"
},
"authenticationType": {
"value": "sshPublicKey"
},
"adminPasswordOrKey": {
"value": <your SSH public key>
}
}
}
Kommentar
Ersätt osImageName-värdet i enlighet med detta.
Distribuera en konfidentiell mall för virtuell dator med konfidentiell kryptering av os-diskar via kundhanterad nyckel
Logga in på ditt Azure-konto via Azure CLI.
az loginAnge din Azure-prenumeration. Ersätt
<subscription-id>med din prenumerationsidentifierare. Se till att använda en prenumeration som uppfyller kraven.az account set --subscription <subscription-id>Bevilja konfidentiellt huvudnamn
Confidential VM Orchestratorför vm-tjänsten till klientorganisationenFö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"Konfigurera ditt Azure Key Vault. Mer information om hur du använder en Hanterad HSM för Azure Key Vault finns i nästa steg.
Skapa en resursgrupp för ditt nyckelvalv. Din key vault-instans och din konfidentiella virtuella dator måste finnas i samma Azure-region.
$resourceGroup = <key vault resource group> $region = <Azure region> az group create --name $resourceGroup --location $regionSkapa en key vault-instans med en Premium SKU och välj önskad region. Standard-SKU:n stöds inte.
$KeyVault = <name of key vault> az keyvault create --name $KeyVault --resource-group $resourceGroup --location $region --sku Premium --enable-purge-protectionKontrollera att du har en ägarroll i det här nyckelvalvet.
Ge
Confidential VM Orchestratorbehörigheter tillgetochreleasenyckelvalvet.$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json az keyvault set-policy --name $KeyVault --object-id $cvmAgent.Id --key-permissions get release
(Valfritt) Om du inte vill använda ett Azure Key Vault kan du skapa en Hanterad HSM för Azure Key Vault i stället.
Följ snabbstarten för att skapa en Azure Key Vault Managed HSM för att etablera och aktivera Azure Key Vault Managed HSM.
Aktivera rensningsskydd på Azure Managed HSM. Det här steget krävs för att aktivera nyckelversion.
az keyvault update-hsm --subscription $subscriptionId -g $resourceGroup --hsm-name $hsm --enable-purge-protection trueGe
Confidential VM Orchestratorbehörigheter till hanterad HSM.$cvmAgent = az ad sp show --id "bf7b6499-ff71-4aa2-97a4-f372087be7f0" | Out-String | ConvertFrom-Json az keyvault role assignment create --hsm-name $hsm --assignee $cvmAgent.Id --role "Managed HSM Crypto Service Release User" --scope /keys/$KeyName
Skapa en ny nyckel med Hjälp av Azure Key Vault. Mer information om hur du använder en Azure Managed HSM finns i nästa steg.
Skapa en ny nyckel med az keyvault key create
$KeyName = <name of key> $KeySize = 3072 az keyvault key create --vault-name $KeyVault --name $KeyName --ops wrapKey unwrapkey --kty RSA-HSM --size $KeySize --exportable true --default-cvm-policyHämta information om nyckeln som du skapade.
$encryptionKeyVaultId = ((az keyvault show -n $KeyVault -g $resourceGroup) | ConvertFrom-Json).id $encryptionKeyURL= ((az keyvault key show --vault-name $KeyVault --name $KeyName) | ConvertFrom-Json).key.kidDistribuera en diskkrypteringsuppsättning (DES) med hjälp av en DES ARM-mall (
deployDES.json).$desName = <name of DES> $deployName = <name of deployment> $desArmTemplate = <name of DES ARM template file> az deployment group create ` -g $resourceGroup ` -n $deployName ` -f $desArmTemplate ` -p desName=$desName ` -p encryptionKeyURL=$encryptionKeyURL ` -p encryptionKeyVaultId=$encryptionKeyVaultId ` -p region=$regionTilldela nyckelåtkomst till DES-filen.
$desIdentity= (az disk-encryption-set show -n $desName -g $resourceGroup --query [identity.principalId] -o tsv) az keyvault set-policy -n $KeyVault ` -g $resourceGroup ` --object-id $desIdentity ` --key-permissions wrapkey unwrapkey get
(Valfritt) Skapa en ny nyckel från en Azure Managed HSM.
Skapa en ny nyckel med az keyvault key create
$KeyName = <name of key> $KeySize = 3072 az keyvault key create --hsm-name $hsm --name $KeyName --ops wrapKey unwrapkey --kty RSA-HSM --size $KeySize --exportable true --default-cvm-policyHämta information om nyckeln som du skapade.
$encryptionKeyURL = ((az keyvault key show --hsm-name $hsm --name $KeyName) | ConvertFrom-Json).key.kidDistribuera en DES.
$desName = <name of DES> az disk-encryption-set create -n $desName ` -g $resourceGroup ` --key-url $encryptionKeyURLTilldela nyckelåtkomst till DES.
$desIdentity=$(az disk-encryption-set show -n $desName -g $resourceGroup --query [identity.principalId] -o tsv) az keyvault set-policy -n $hsm ` -g $resourceGroup ` --object-id $desIdentity ` --key-permissions wrapkey unwrapkey get
Distribuera din konfidentiella virtuella dator med den kundhanterade nyckeln.
Hämta resurs-ID:t för DES.
$desID = (az disk-encryption-set show -n $desName -g $resourceGroup --query [id] -o tsv)Distribuera den konfidentiella virtuella datorn med hjälp av en konfidentiell ARM-mall för den virtuella datorn för Intel TDX och en distributionsparameterfil (till exempel
azuredeploy.parameters.win2022.json) med den kundhanterade nyckeln.$deployName = <name of deployment> $vmName = <name of confidential VM> $cvmArmTemplate = <name of confidential VM ARM template file> $cvmParameterFile = <name of confidential VM parameter file> az deployment group create ` -g $resourceGroup ` -n $deployName ` -f $cvmArmTemplate ` -p $cvmParameterFile ` -p diskEncryptionSetId=$desID ` -p vmName=$vmName
Anslut till den konfidentiella virtuella datorn för att se till att skapandet lyckades.