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

Nästa steg