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)