Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby szybko utworzyć poufnej maszyny wirtualnej platformy Azure, możesz użyć szablonu usługi Azure Resource Manager (szablonu usługi ARM). Poufne maszyny wirtualne działają na obu procesorach AMD wspieranych przez procesory AMD SEV-SNP i Intel wspierane przez intel TDX w celu uzyskania szyfrowania i izolacji pamięci maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Poufne omówienie 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 użycie subskrypcji z płatnością zgodnie z rzeczywistym użyciem.
- 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ć poufne maszyny wirtualne przy użyciu szablonu usługi ARM za pomocą interfejsu wiersza polecenia platformy Azure:
Zaloguj się do konta platformy Azure w interfejsie wiersza polecenia platformy Azure.
az loginUstaw subskrypcję platformy Azure. Zastąp
<subscription-id>ciąg 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ą na platformie Azure przy użyciu szablonu usługi 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 poufnej maszyny wirtualnej za pomocą interfejsu wiersza polecenia platformy Azure (interfejs wiersza polecenia platformy Azure) 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ę. W przypadku tylko jednostek SKU Intel TDX i obrazów opartych na systemie Linux klienci mogą wybraćNonPersistedTPMtyp zabezpieczeń do wdrożenia przy użyciu efemerycznej maszyny wirtualnej vTPM.NonPersistedTPMW przypadku typu zabezpieczeń użyj minimalnej wartości "apiVersion": "2023-09-01" wMicrosoft.Compute/virtualMachinespliku 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>ciąg identyfikatorem subskrypcji. Upewnij się, że używasz subskrypcji spełniającej wymagania wstępne.az account set --subscription <subscription-id>Udzielanie poufnej jednostki
Confidential VM Orchestratorusługi maszyny wirtualnej dzierżawieW 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 magazynu kluczy i poufne maszyny wirtualnej muszą znajdować się w tym samym regionie świadczenia usługi Azure.
$resourceGroup = <key vault resource group> $region = <Azure region> az group create --name $resourceGroup --location $regionUtwórz wystąpienie magazynu kluczy przy użyciu jednostki SKU w warstwie 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 rolę właściciela w tym magazynie kluczy.
Nadaj
Confidential VM Orchestratoruprawnienia igetreleasemagazynowi 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.
Postępuj zgodnie z przewodnikiem Szybki start, aby utworzyć zarządzany moduł HSM usługi Azure Key Vault w celu aprowizowania 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 USŁUGI 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.kidWdrażanie 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óż poufne maszyny wirtualnej przy użyciu klucza zarządzanego przez klienta.
Pobierz identyfikator zasobu des.
$desID = (az disk-encryption-set show -n $desName -g $resourceGroup --query [id] -o tsv)Wdróż poufne maszyny wirtualnej przy użyciu poufnego szablonu arm maszyny wirtualnej dla środowiska Intel TDX i pliku parametrów wdrożenia (na przykład
azuredeploy.parameters.win2022.json) przy użyciu klucza zarządzanego 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.