Snabbstart: Konfigurera Azure Attestation med Azure PowerShell
Följ stegen nedan för att skapa och konfigurera en attesteringsprovider med hjälp av Azure PowerShell. Se Översikt över Azure PowerShell för information om hur du installerar och kör Azure PowerShell.
Kommentar
Az.Attestation PowerShell-modulen är nu integrerad i Az PowerShell-modulen. Lägsta version av Az-modulen som krävs för att stödja attesteringsåtgärder:
- Az PowerShell-modul 6.5.0
PowerShell-galleriet har inaktuella TLS-versionerna (Transport Layer Security) 1.0 och 1.1. TLS 1.2 eller en senare version rekommenderas. Därför kan du få följande fel:
- VARNING! Det går inte att lösa paketkällanhttps://www.powershellgallery.com/api/v2
- PackageManagement\Install-Package: Ingen matchning hittades för det angivna sökvillkoren och modulnamnet
Om du vill fortsätta att interagera med PowerShell-galleriet kör du följande kommando före kommandona Install-Module
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Logga in på Azure
Logga in på Azure i PowerShell-konsolen (utan utökade åtkomstbehörigheter).
Connect-AzAccount
Om det behövs växlar du till den prenumeration som ska användas för Azure-attestering.
Set-AzContext -Subscription <subscription id>
Registrera resursprovidern Microsoft.Attestation
Registrera resursprovidern Microsoft.Attestation i prenumerationen. Mer information om Azure-resursprovidrar och hur du konfigurerar och hanterar resursprovidrar finns i Azure-resursprovidrar och -typer. Registrering av en resursprovider krävs bara en gång för en prenumeration.
Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation
Regional tillgänglighet för Azure-attestering
(Get-AzResourceProvider -ProviderNamespace Microsoft.Attestation)[0].Locations
Skapa en Azure-resursgrupp
Skapa en resursgrupp för attesteringsprovidern. Andra Azure-resurser (inklusive en virtuell dator med klientprograminstans) kan placeras i samma resursgrupp.
$location = "uksouth"
$attestationResourceGroup = "<attestation provider resource group name>"
New-AzResourceGroup -Name $attestationResourceGroup -Location $location
Kommentar
När en attesteringsprovider har skapats i den här resursgruppen måste en Microsoft Entra-användare ha rollen Attesteringsdeltagare på providern för att utföra åtgärder som principkonfiguration/principsigneringscertifikathantering. Dessa behörigheter kan också ärvas med roller som Ägare (jokerteckenbehörigheter)/ Deltagare (jokerteckenbehörigheter) i prenumerationen/resursgruppen.
Skapa och hantera en attesteringsprovider
New-AzAttestation skapar en attesteringsprovider.
$attestationProvider = "<attestation provider name>"
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location
PolicySignerCertificateFile är en fil som anger en uppsättning betrodda signeringsnycklar. Om ett filnamn anges för parametern PolicySignerCertificateFile kan attesteringsprovidern endast konfigureras med principer i signerat JWT-format. Annars kan principen konfigureras i text eller i ett osignerat JWT-format.
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location -PolicySignersCertificateFile "C:\test\policySignersCertificates.pem"
Exempel på PolicySignersCertificateFile finns i exempel på principsignercertifikat.
Get-AzAttestation hämtar attesteringsproviderns egenskaper som status och AttestURI. Anteckna AttestURI eftersom det kommer att behövas senare.
Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Kommandot ovan ska generera utdata i det här formatet:
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:
Attesteringsprovidrar kan tas bort med cmdleten Remove-AzAttestation.
Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Principhantering
För att kunna hantera principer kräver en Microsoft Entra-användare följande behörigheter för "Åtgärder":
- Microsoft.Attestation/attestationProviders/attestation/read
- Microsoft.Attestation/attestationProviders/attestation/write
- Microsoft.Attestation/attestationProviders/attestation/delete
För att utföra dessa åtgärder måste en Microsoft Entra-användare ha rollen Attesteringsdeltagare på attesteringsprovidern. Dessa behörigheter kan också ärvas med roller som Ägare (jokerteckenbehörigheter)/ Deltagare (jokerteckenbehörigheter) i prenumerationen/resursgruppen.
För att kunna läsa principer kräver en Microsoft Entra-användare följande behörighet för "Åtgärder":
- Microsoft.Attestation/attestationProviders/attestation/read
För att utföra den här åtgärden måste en Microsoft Entra-användare ha rollen Attesteringsläsare på attesteringsprovidern. Läsbehörigheterna kan också ärvas med roller som Läsare (jokerteckenbehörigheter) i prenumerationen/resursgruppen.
Dessa PowerShell-cmdletar tillhandahåller principhantering för en attesteringsprovider (en TEE i taget).
Get-AzAttestationPolicy returnerar den aktuella principen för angiven TEE. Cmdleten visar principen i både text- och JWT-format för principen.
$teeType = "<tee Type>"
Get-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Tee-typer som stöds är "SgxEnclave", "OpenEnclave" och "VbsEnclave".
Set-AttestationPolicy anger en ny princip för angiven TEE. Cmdleten accepterar principen i antingen text- eller JWT-format och styrs av parametern PolicyFormat. "Text" är standardvärdet för 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
Om PolicySignerCertificateFile tillhandahålls när en attesteringsprovider skapas kan principer endast konfigureras i signerat JWT-format. Annars kan principen konfigureras i text eller i ett osignerat JWT-format.
Attesteringsprincipen i JWT-format måste innehålla ett anspråk med namnet "AttestationPolicy". För signerad princip måste JWT signeras med en privat nyckel som motsvarar något av de befintliga principsigneringscertifikaten.
Exempel på principer finns i exempel på en attesteringsprincip.
Reset-AzAttestationPolicy återställer principen till standard för angiven TEE.
Reset-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Hantering av principsignerarecertifikat
Dessa PowerShell-cmdletar tillhandahåller principsigneringscertifikathantering för en attesteringsprovider:
Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
Remove-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
Principsigneringscertifikat är en signerad JWT med anspråket "maa-policyCertificate". Värdet för anspråket är en JWK som innehåller den betrodda signeringsnyckel som ska läggas till. JWT måste signeras med en privat nyckel som motsvarar något av de befintliga principsigneringscertifikaten.
All semantisk manipulering av principsigneringscertifikatet måste göras utanför PowerShell. När det gäller PowerShell är det en enkel sträng.
Exempel på principsigneringscertifikat finns i exempel på principsigneringscertifikat.
Mer information om cmdletar och dess parametrar finns i Azure Attestation PowerShell-cmdletar