Szybki start: konfigurowanie zaświadczania platformy Azure za pomocą programu Azure PowerShell

Wykonaj poniższe kroki, aby utworzyć i skonfigurować dostawcę zaświadczania przy użyciu programu Azure PowerShell. Aby uzyskać informacje na temat instalowania i uruchamiania programu Azure PowerShell, zobacz Omówienie programu Azure PowerShell .

Uwaga

Moduł Az.Attestation Programu PowerShell jest teraz zintegrowany z modułem Az programu PowerShell. Minimalna wersja modułu Az wymagana do obsługi operacji zaświadczania:

  • Moduł Az programu PowerShell 6.5.0

Galeria programu PowerShell ma przestarzałe protokoły Transport Layer Security (TLS) w wersji 1.0 i 1.1. Zalecane jest użycie protokołu TLS 1.2 lub nowszej. W związku z tym mogą wystąpić następujące błędy:

  • OSTRZEŻENIE: Nie można rozpoznać źródła pakietu "https://www.powershellgallery.com/api/v2"
  • PackageManagement\Install-Package: Nie znaleziono dopasowania dla określonych kryteriów wyszukiwania i nazwy modułu

Aby kontynuować interakcję z Galeria programu PowerShell, uruchom następujące polecenie przed poleceniami Install-Module

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 

Logowanie się do platformy Azure

Zaloguj się do platformy Azure w konsoli programu PowerShell (bez podniesionych uprawnień dostępu).

Connect-AzAccount

W razie potrzeby przejdź do subskrypcji, która ma być używana na potrzeby zaświadczania platformy Azure.

Set-AzContext -Subscription <subscription id>  

Rejestrowanie dostawcy zasobów Microsoft.Attestation

Zarejestruj dostawcę zasobów Microsoft.Attestation w subskrypcji. Aby uzyskać więcej informacji na temat dostawców zasobów platformy Azure i sposobu konfigurowania dostawców zasobów i zarządzania nimi, zobacz Dostawcy zasobów i typy platformy Azure. Zarejestrowanie dostawcy zasobów jest wymagane tylko raz dla subskrypcji.

Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation

Regionalna dostępność zaświadczania platformy Azure

(Get-AzResourceProvider -ProviderNamespace Microsoft.Attestation)[0].Locations

Tworzenie grupy zasobów platformy Azure

Utwórz grupę zasobów dla dostawcy zaświadczania. Inne zasoby platformy Azure (w tym maszyna wirtualna z wystąpieniem aplikacji klienckiej) można umieścić w tej samej grupie zasobów.

$location = "uksouth" 
$attestationResourceGroup = "<attestation provider resource group name>"
New-AzResourceGroup -Name $attestationResourceGroup -Location $location 

Uwaga

Po utworzeniu dostawcy zaświadczania w tej grupie zasobów użytkownik Firmy Microsoft Entra musi mieć rolę Współautor zaświadczania na dostawcy, aby wykonywać operacje, takie jak zarządzanie certyfikatami konfiguracji zasad/podpisywania zasad. Te uprawnienia można również dziedziczyć za pomocą ról, takich jak Właściciel (uprawnienia z symbolami wieloznacznymi)/ Współautor (uprawnienia z symbolami wieloznacznymi) w subskrypcji/grupie zasobów.

Tworzenie dostawcy zaświadczania i zarządzanie nim

New-AzAttestation tworzy dostawcę zaświadczania.

$attestationProvider = "<attestation provider name>" 
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location

PolicySignerCertificateFile to plik określający zestaw zaufanych kluczy podpisywania. Jeśli określono nazwę pliku dla parametru PolicySignerCertificateFile, można skonfigurować dostawcę zaświadczania tylko przy użyciu zasad w podpisanym formacie JWT. Inne zasady można skonfigurować w tekście lub niepodpisanym formacie JWT.

New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location -PolicySignersCertificateFile "C:\test\policySignersCertificates.pem"

Aby uzyskać przykład PolicySignersCertificateFile, zobacz przykłady certyfikatu osoby podpisujących zasady.

Polecenie Get-AzAttestation pobiera właściwości dostawcy zaświadczania, takie jak status i AttestURI. Zanotuj identyfikator AttestURI, ponieważ będzie on potrzebny później.

Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup  

Powyższe polecenie powinno wygenerować dane wyjściowe w tym formacie:

Id:/subscriptions/MySubscriptionID/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/MyAttestationProvider
Location: MyLocation
ResourceGroupName: MyResourceGroup
Name: MyAttestationProvider
Status: Ready
TrustModel: AAD
AttestUri: https://MyAttestationProvider.us.attest.azure.net 
Tags: 
TagsTable: 

Dostawcy zaświadczania można usunąć przy użyciu polecenia cmdlet Remove-AzAttestation.

Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

Zarządzanie zasadami

Aby zarządzać zasadami, użytkownik firmy Microsoft Entra wymaga następujących uprawnień dla "Actions":

  • Microsoft.Attestation/attestationProviders/zaświadczenie/odczyt
  • Microsoft.Attestation/attestationProviders/zaświadczenie/zapis
  • Microsoft.Attestation/attestationProviders/zaświadczenie/usuwanie

Aby wykonać te akcje, użytkownik firmy Microsoft Entra musi mieć rolę Współautor zaświadczania u dostawcy zaświadczania. Te uprawnienia można również dziedziczyć za pomocą ról, takich jak Właściciel (uprawnienia z symbolami wieloznacznymi)/ Współautor (uprawnienia z symbolami wieloznacznymi) w subskrypcji/grupie zasobów.

Aby odczytać zasady, użytkownik firmy Microsoft Entra wymaga następującego uprawnienia dla "Actions":

  • Microsoft.Attestation/attestationProviders/zaświadczenie/odczyt

Aby wykonać tę akcję, użytkownik firmy Microsoft Entra musi mieć rolę Czytelnik zaświadczania u dostawcy zaświadczania. Uprawnienia do odczytu można również dziedziczyć za pomocą ról, takich jak Czytelnik (uprawnienia z symbolami wieloznacznymi) w subskrypcji/grupie zasobów.

Te polecenia cmdlet programu PowerShell zapewniają zarządzanie zasadami dla dostawcy zaświadczania (jeden TEE naraz).

Polecenie Get-AzAttestationPolicy zwraca bieżące zasady dla określonego TEE. Polecenie cmdlet wyświetla zasady w formacie tekstowym i JWT zasad.

$teeType = "<tee Type>"
Get-AzAttestationPolicy   -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType 

Obsługiwane typy TEE to "SgxEnclave", "OpenEnclave" i "VbsEnclave".

Set-AttestationPolicy ustawia nowe zasady dla określonego TEE. Polecenie cmdlet akceptuje zasady w formacie tekstowym lub JWT i jest kontrolowane przez parametr PolicyFormat. Wartość domyślna "Text" jest wartością domyślną policyFormat.

$policyFormat = "<policy format>"
$policy=Get-Content -path "C:\test\policy.txt" -Raw
Set-AzAttestationPolicy   -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType -Policy $policy -PolicyFormat $policyFormat 

Jeśli element PolicySignerCertificateFile jest udostępniany podczas tworzenia dostawcy zaświadczania, zasady można skonfigurować tylko w podpisanym formacie JWT. Inne zasady można skonfigurować w tekście lub niepodpisanym formacie JWT.

Zasady zaświadczania w formacie JWT muszą zawierać oświadczenie o nazwie "AttestationPolicy". W przypadku podpisanych zasad zestaw JWT musi być podpisany przy użyciu klucza prywatnego odpowiadającego dowolnym z istniejących certyfikatów modułu podpisywania zasad.

Przykłady zasad można znaleźć w przykładach zasad zaświadczania.

Reset-AzAttestationPolicy resetuje zasady domyślne dla określonego TEE.

Reset-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType 

Zarządzanie certyfikatami logowania zasad

Te polecenia cmdlet programu PowerShell zapewniają zarządzanie certyfikatami modułu podpisywania zasad dla dostawcy zaświadczania:

Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>

Remove-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>

Certyfikat podpisywania zasad to podpisany zestaw JWT z oświadczeniem o nazwie "maa-policyCertificate". Wartość oświadczenia to zestaw JWK, który zawiera zaufany klucz podpisywania do dodania. Zestaw JWT musi być podpisany przy użyciu klucza prywatnego odpowiadającego dowolnym z istniejących certyfikatów modułu podpisywania zasad.

Wszystkie semantyczne manipulowanie certyfikatem narzędzia podpisywania zasad należy wykonać poza programem PowerShell. Jeśli chodzi o program PowerShell, jest to prosty ciąg.

Aby zapoznać się z przykładowym certyfikatem podpisywania zasad, zobacz przykłady certyfikatu podpisywania zasad.

Aby uzyskać więcej informacji na temat poleceń cmdlet i jego parametrów, zobacz Azure Attestation PowerShell cmdlets (Polecenia cmdlet programu PowerShell zaświadczania platformy Azure)

Następne kroki