Quickstart: Azure Attestation instellen met Azure PowerShell

Volg de onderstaande stappen voor het maken en configureren van een Attestation-provider met behulp van Azure PowerShell. Zie Overzicht van Azure PowerShell voor meer informatie over het installeren en uitvoeren van Azure PowerShell.

Notitie

De Az.Attestation PowerShell-module is nu geïntegreerd in de Az PowerShell-module. Minimale versie van az-module die is vereist voor de ondersteuning van attestation-bewerkingen:

  • Az PowerShell-module 6.5.0

De PowerShell Gallery heeft TLS-versies (Transport Layer Security) 1.0 en 1.1 afgeschaft. TLS 1,2 of een latere versie wordt aanbevolen. De volgende fouten kunnen optreden:

  • WAARSCHUWING: Kan pakketbron 'https://www.powershellgallery.com/api/v2' niet oplossen
  • PackageManagement\Install-Package: er is geen overeenkomst gevonden voor de opgegeven zoekcriteria en modulenaam

Als u wilt blijven werken met de PowerShell Gallery, voert u de volgende opdracht uit vóór de installatie-module-opdrachten

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

Aanmelden bij Azure

Meld u aan bij Azure in de PowerShell-console (zonder verhoogde toegangsrechten).

Connect-AzAccount

Als dat nodig is, schakelt u over naar het abonnement dat moet worden gebruikt voor Azure Attestation.

Set-AzContext -Subscription <subscription id>  

Registreer de resourceprovider Microsoft.Attestation

Registreer de resourceprovider Microsoft.Attestation in een abonnement. Zie Azure-resourceproviders en -typenvoor meer informatie over Azure-resourceproviders en het configureren en het beheren van resourceproviders. Het registreren van een resourceprovider is slechts eenmaal vereist voor een abonnement.

Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation

Regionale beschikbaarheid van Azure Attestation

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

Maak een Azure-resourcegroep

Maak een resource groep voor de Attestation-provider. Andere Azure-resources (inclusief een virtuele machine met clienttoepassingsexemplaren) kunnen in dezelfde resourcegroep worden geplaatst.

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

Notitie

Zodra een attestation-provider is gemaakt in deze resourcegroep, moet een Microsoft Entra-gebruiker de rol Attestation-inzender hebben voor de provider om bewerkingen uit te voeren, zoals het beheer van beleidsconfiguratie-/beleidsbetekeningscertificaten. Deze machtigingen kunnen ook worden overgenomen met rollen als Eigenaar (machtigingen voor jokertekens)/ Inzender (machtigingen met jokertekens) voor het abonnement/de resourcegroep.

Maak en beheer een Attestation-provider

New-AzAttestation maakt een Attestation-provider.

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

PolicySignerCertificateFile is een bestand dat een set vertrouwde ondertekeningssleutels specificeert. Als er een bestandsnaam is opgegeven voor de parameter PolicySignerCertificateFile, kan de Attestation-provider alleen worden geconfigureerd met beleid in ondertekende JWT-indeling. Anders kan beleid worden geconfigureerd in een tekst of een niet-ondertekende JWT-indeling.

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

Zie Voorbeelden Certificaat van beleidsondertekening voor het voorbeeld PolicySignersCertificateFile.

Get-AzAttestation haalt de eigenschappen van de Attestation-provider zoals status en AttestURI op. Maak een notitie van AttestURI, omdat deze later nodig is.

Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup  

Met de bovenstaande opdracht moet uitvoer worden geproduceerd in deze indeling:

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: 

Attestation-providers kunnen worden verwijderd met de cmdlet Remove-AzAttestation.

Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

Beleidsbeheer

Voor het beheren van beleid heeft een Microsoft Entra-gebruiker de volgende machtigingen nodig voor 'Acties':

  • Microsoft.Attestation/attestationProviders/attestation/read
  • Microsoft.Attestation/attestationProviders/attestation/write
  • Microsoft.Attestation/attestationProviders/attestation/delete

Als u deze acties wilt uitvoeren, moet een Microsoft Entra-gebruiker de rol Attestation-inzender hebben voor de attestation-provider. Deze machtigingen kunnen ook worden overgenomen met rollen als Eigenaar (machtigingen voor jokertekens)/ Inzender (machtigingen met jokertekens) voor het abonnement/de resourcegroep.

Als u beleid wilt lezen, heeft een Microsoft Entra-gebruiker de volgende machtiging nodig voor 'Acties':

  • Microsoft.Attestation/attestationProviders/attestation/read

Als u deze actie wilt uitvoeren, moet een Microsoft Entra-gebruiker de rol Attestation Reader hebben voor de attestation-provider. De leesmachtigingen kunnen ook worden overgenomen met rollen zoals Lezer (machtigingen voor jokertekens) voor het abonnement/de resourcegroep.

Deze PowerShell-cmdlets bieden beleidsbeheer voor een attestation-provider (één TEE tegelijk).

Get-AzAttestationPolicy retourneert het huidige beleid voor de opgegeven TEE. De cmdlet geeft beleid weer in de tekst- en JWT-indeling van het beleid.

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

De ondersteunde TEE-typen zijn SgxEnclave, OpenEnclave en VbsEnclave.

Set-AttestationPolicy stelt een nieuw beleid in voor de opgegeven TEE. De cmdlet accepteert beleid in tekst- of JWT-indeling en wordt beheerd door de parameter PolicyFormat. "Tekst" is de standaardwaarde voor 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 

Als PolicySignerCertificateFile wordt opgegeven tijdens het maken van een Attestation-provider, kunnen beleidsregels alleen worden geconfigureerd in ondertekende JWT-indeling. Anders kan beleid worden geconfigureerd in een tekst of een niet-ondertekende JWT-indeling.

Attestation-beleid in JWT-indeling moet een claim met de naam "AttestationPolicy" bevatten. Voor ondertekend beleid moet JWT zijn ondertekend met een persoonlijke sleutel die overeenkomt met een van de bestaande certificaten voor beleidsondertekening.

Zie Voorbeelden van een Attestation-beleid voor voorbeelden van beleid.

Reset-AzAttestationPolicy stelt het beleid opnieuw in op de standaardwaarde voor de opgegeven TEE.

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

Beheer van certificaten voor beleidsondertekening

Deze PowerShell-cmdlets bieden beheer van certificaten voor beleidsaantekening voor een attestation-provider:

Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

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

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

Het certificaat van beleidsondertekening is een ondertekende JWT met een claim met de naam "maa-policyCertificate". De waarde van de claim is een JWK, die de vertrouwde ondertekeningssleutel bevat die moet worden toegevoegd. De JWT moet zijn ondertekend met een persoonlijke sleutel die overeenkomt met een van de bestaande certificaten voor beleidsondertekening.

Alle semantische manipulatie van het certificaat voor beleids ondertekenen moet buiten PowerShell worden uitgevoerd. Wat PowerShell betreft, is dit een eenvoudige tekenreeks.

Zie Voorbeelden certificaat van beleidsondertekening voor een voorbeeldertificaat van beleidsondertekening.

Zie Azure Attestation PowerShell-cmdlets voor meer informatie over de cmdlets en de bijbehorende parameters

Volgende stappen