Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz użyć szablonu usługi Azure Resource Manager (szablonu ARM), aby szybko utworzyć platformy Azure poufną maszynę wirtualną. Poufne maszyny wirtualne działają zarówno na procesorach AMD obsługiwanych przez AMD SEV-SNP, jak i na procesorach Intel obsługiwanych przez Intel TDX, aby zapewnić szyfrowanie i izolację pamięci maszyn wirtualnych. Aby uzyskać więcej informacji, zobacz artykuł Omówienie poufnej maszyny wirtualnej.
W tym samouczku omówiono wdrażanie poufnej maszyny wirtualnej z konfiguracją niestandardową.
Wymagania wstępne
- Subskrypcja platformy Azure. Konta bezpłatnej wersji próbnej nie mają dostępu do maszyn wirtualnych używanych w tym samouczku. Jedną z opcji jest skorzystanie z subskrypcji w modelu płatności za użycie.
- Jeśli chcesz wdrożyć z poziomu interfejsu wiersza polecenia platformy Azure, zainstaluj program PowerShell i zainstaluj interfejs wiersza polecenia platformy Azure.
Wdrażanie poufnego szablonu maszyny wirtualnej przy użyciu interfejsu wiersza polecenia platformy Azure
Można wdrożyć poufny szablon maszyny wirtualnej z opcjonalnym szyfrowaniem poufnym dysku systemu operacyjnego za pomocą klucza zarządzanego przez platformę.
Aby utworzyć i wdrożyć poufną maszynę wirtualną przy użyciu szablonu ARM za pomocą interfejsu wiersza polecenia platformy Azure (Azure CLI):
Zaloguj się do konta Azure w narzędziu Azure CLI.
az loginUstaw subskrypcję platformy Azure. Zastąp
<subscription-id>identyfikatorem subskrypcji. Upewnij się, że używasz subskrypcji spełniającej wymagania wstępne.az account set --subscription <subscription-id>Ustaw zmienne dla poufnej maszyny wirtualnej. Podaj nazwę wdrożenia (), grupę zasobów (
$deployName$resourceGroup), nazwę maszyny wirtualnej ($vmName) i region platformy Azure ($region). Zastąp przykładowe wartości własnymi informacjami.Uwaga
Poufne maszyny wirtualne nie są dostępne we wszystkich lokalizacjach. W przypadku aktualnie obsługiwanych lokalizacji zobacz , które produkty maszyn wirtualnych są dostępne w regionie świadczenia usługi Azure.
$deployName="<deployment-name>" $resourceGroup="<resource-group-name>" $vmName= "<confidential-vm-name>" $region="<region-name>"Jeśli określona grupa zasobów nie istnieje, utwórz grupę zasobów o tej nazwie.
az group create -n $resourceGroup -l $regionWdróż maszynę wirtualną w Azure przy użyciu szablonu ARM z niestandardowym plikiem parametrów i plikiem szablonu.
az deployment group create ` -g $resourceGroup ` -n $deployName ` -u "<json-template-file-path>" ` -p "<json-parameter-file-path>" ` -p vmLocation=$region ` vmName=$vmName
Definiowanie niestandardowego pliku parametrów
Podczas tworzenia maszyny wirtualnej poufnej za pomocą interfejsu wiersza polecenia platformy Azure (Azure CLI) należy zdefiniować niestandardowy plik parametrów. Aby utworzyć niestandardowy plik parametrów JSON:
Zaloguj się do konta platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure.
Utwórz plik parametrów JSON. Na przykład
azuredeploy.parameters.json.W zależności od używanego obrazu systemu operacyjnego skopiuj przykładowy plik parametrów systemu Windows lub przykładowy plik parametrów systemu Linux do pliku parametrów.
Edytuj kod JSON w pliku parametrów zgodnie z potrzebami. Na przykład zaktualizuj nazwę obrazu systemu operacyjnego (
osImageName) lub nazwę użytkownika administratora (adminUsername).Skonfiguruj ustawienie typu zabezpieczeń (
securityType). WybierzVMGuestStateOnlyopcję braku poufnego szyfrowania dysku systemu operacyjnego. Możesz też wybraćDiskWithVMGuestStateopcję poufnego szyfrowania dysku systemu operacyjnego przy użyciu klucza zarządzanego przez platformę. Tylko w przypadku jednostek SKU Intel TDX oraz obrazów opartych na systemie Linux klienci mogą wybrać typ zabezpieczeniaNonPersistedTPM, aby wdrożyć efemeryczny moduł vTPM. W przypadku typu zabezpieczeńNonPersistedTPMużyj co najmniej wartości "apiVersion": "2023-09-01" pod elementemMicrosoft.Compute/virtualMachinesw pliku szablonu.Zapisz plik parametrów.
Przykładowy plik parametrów systemu Windows
Użyj tego przykładu, aby utworzyć niestandardowy plik parametrów dla poufnej maszyny wirtualnej z systemem Windows.
{
"$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>"
}
}
}
Przykładowy plik parametrów systemu Linux
Użyj tego przykładu, aby utworzyć niestandardowy plik parametrów dla poufnej maszyny wirtualnej opartej na systemie Linux.
{
"$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>
}
}
}
Uwaga
Zastąp odpowiednio wartość osImageName.
Wdrażanie poufnego szablonu maszyny wirtualnej przy użyciu poufnego szyfrowania dysku systemu operacyjnego za pomocą klucza zarządzanego przez klienta
Zaloguj się do konta platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure.
az loginUstaw subskrypcję platformy Azure. Zastąp
<subscription-id>identyfikatorem subskrypcji. Upewnij się, że używasz subskrypcji spełniającej wymagania wstępne.az account set --subscription <subscription-id>Przyznaj poufną nazwę główną usługi VM
Confidential VM OrchestratordzierżawcyW tym kroku musisz być administratorem globalnym lub musisz mieć rolę RBAC administratora dostępu użytkowników. Zainstaluj zestaw Microsoft Graph SDK , aby wykonać poniższe polecenia.
Connect-Graph -Tenant "your tenant ID" Application.ReadWrite.All New-MgServicePrincipal -AppId bf7b6499-ff71-4aa2-97a4-f372087be7f0 -DisplayName "Confidential VM Orchestrator"Konfigurowanie usługi Azure Key Vault. Aby zamiast tego użyć zarządzanego modułu HSM usługi Azure Key Vault, zobacz następny krok.
Utwórz grupę zasobów dla magazynu kluczy. Wystąpienie usługi Key Vault i poufna maszyna wirtualna muszą znajdować się w tym samym regionie platformy Azure.
$resourceGroup = <key vault resource group> $region = <Azure region> az group create --name $resourceGroup --location $regionUtwórz magazyn kluczy z jednostką SKU Premium i wybierz preferowany region. Standardowa jednostka SKU nie jest obsługiwana.
$KeyVault = <name of key vault> az keyvault create --name $KeyVault --resource-group $resourceGroup --location $region --sku Premium --enable-purge-protectionUpewnij się, że masz przypisaną rolę właściciela w tym magazynie kluczy.
Nadaj uprawnienia
Confidential VM Orchestratorelementomgetireleasemagazynu kluczy.$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
(Opcjonalnie) Jeśli nie chcesz używać usługi Azure Key Vault, zamiast tego możesz utworzyć zarządzany moduł HSM usługi Azure Key Vault.
Skorzystaj z przewodnika Szybki start, aby utworzyć zarządzany moduł HSM usługi Azure Key Vault w celu wdrożenia i aktywowania zarządzanego modułu HSM usługi Azure Key Vault.
Włącz ochronę przed przeczyszczaniem w zarządzanym module HSM platformy Azure. Ten krok jest wymagany do włączenia wydania klucza.
az keyvault update-hsm --subscription $subscriptionId -g $resourceGroup --hsm-name $hsm --enable-purge-protection trueNadaj
Confidential VM Orchestratoruprawnienia zarządzanemu modułowi 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
Utwórz nowy klucz przy użyciu usługi Azure Key Vault. Aby zamiast tego użyć zarządzanego modułu HSM platformy Azure, zobacz następny krok.
Utwórz nowy klucz za pomocą polecenia 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-policyUzyskaj informacje o utworzonym kluczu.
$encryptionKeyVaultId = ((az keyvault show -n $KeyVault -g $resourceGroup) | ConvertFrom-Json).id $encryptionKeyURL= ((az keyvault key show --vault-name $KeyVault --name $KeyName) | ConvertFrom-Json).key.kidWdróż zestaw szyfrowania dysków (DES) przy użyciu szablonu ARM DES (
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=$regionPrzypisz dostęp do klucza do pliku DES.
$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
(Opcjonalnie) Utwórz nowy klucz na podstawie zarządzanego modułu HSM platformy Azure.
Utwórz nowy klucz za pomocą polecenia 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-policyUzyskaj informacje o utworzonym kluczu.
$encryptionKeyURL = ((az keyvault key show --hsm-name $hsm --name $KeyName) | ConvertFrom-Json).key.kidWdróż system DES.
$desName = <name of DES> az disk-encryption-set create -n $desName ` -g $resourceGroup ` --key-url $encryptionKeyURLPrzypisz dostęp do klucza do 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
Wdróż poufną maszynę wirtualną za pomocą klucza zarządzanego przez klienta.
Pobierz identyfikator zasobu DES.
$desID = (az disk-encryption-set show -n $desName -g $resourceGroup --query [id] -o tsv)Wdróż poufną maszynę wirtualną przy użyciu poufnego szablonu ARM maszyny wirtualnej dla technologii Intel TDX oraz pliku parametrów wdrożenia (na przykład
azuredeploy.parameters.win2022.json) z kluczem zarządzanym przez klienta.$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
Połącz się z zaufaną maszyną wirtualną, aby upewnić się, że tworzenie zakończyło się pomyślnie.