Démarrage rapide : Configurer Azure Attestation avec Azure PowerShell

Suivez les étapes ci-dessous pour créer et configurer un fournisseur d’attestations à l’aide d’Azure PowerShell. Pour plus d’informations sur l’installation et l’exécution d’Azure PowerShell, consultez Vue d’ensemble d’Azure PowerShell.

Notes

Le module Az.Attestation PowerShell est maintenant intégré dans le module Az PowerShell. Version minimale du module Az nécessaire pour prendre en charge les opérations d’attestation :

  • Module Az PowerShell 6.5.0

PowerShell Gallery a déprécié les versions 1.0 et 1.1 du protocole TLS (Transport Layer Security). TLS 1.2 ou une version ultérieure est recommandé. Vous risquez donc de recevoir les erreurs suivantes :

  • AVERTISSEMENT : Impossible de résoudre la source du package « https://www.powershellgallery.com/api/v2  »
  • PackageManagement\Install-Package : Aucune correspondance n’a été trouvée pour les critères de recherche et le nom de module spécifiés

Pour continuer à interagir avec PowerShell Gallery, exécutez la commande suivante avant les commandes Install-Module

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

Connexion à Azure

Connectez-vous à Azure dans la console PowerShell (sans privilèges d’accès élevés).

Connect-AzAccount

Si nécessaire, basculez vers l’abonnement à utiliser pour Azure Attestation.

Set-AzContext -Subscription <subscription id>  

Inscrire le fournisseur de ressources Microsoft.Attestation

Inscrivez le fournisseur de ressources Microsoft.Attestation dans l’abonnement. Pour plus d’informations sur les fournisseurs de ressources Azure et sur la configuration et la gestion des fournisseurs de ressources, consultez Fournisseurs et types de ressources Azure. L’inscription d’un fournisseur de ressources n’est nécessaire qu’une seule fois pour un abonnement.

Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation

Disponibilité régionale d’Azure Attestation

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

Création d’un groupe de ressources Azure

Créez un groupe de ressources pour le fournisseur d’attestations. D’autres ressources Azure (y compris une machine virtuelle avec une instance d’application cliente) peuvent être placées dans le même groupe de ressources.

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

Remarque

Une fois qu’un fournisseur d’attestations est créé dans ce groupe de ressources, un utilisateur Microsoft Entra doit avoir un rôle Contributeur d’attestation sur le fournisseur pour effectuer des opérations telles que la gestion de certificats de configuration de stratégie/de signataire de stratégie. Ces autorisations peuvent également être héritées avec des rôles, tels que Propriétaire (autorisations génériques)/Contributeur (autorisations génériques) sur l’abonnement/le groupe de ressources.

Créer et gérer un fournisseur d’attestations

New-AzAttestation crée un fournisseur d’attestations.

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

PolicySignerCertificateFile est un fichier qui spécifie un jeu de clés de signature approuvées. Si un nom de fichier est spécifié pour le paramètre PolicySignerCertificateFile, le fournisseur d’attestations peut être configuré uniquement avec des stratégies au format JWT signé. Sinon, la stratégie peut être configurée dans du texte ou dans un format JWT non signé.

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

Pour obtenir un exemple de fichier PolicySignersCertificateFile, consultez Exemples de certificat du signataire de stratégie.

Get-AzAttestation récupère les propriétés du fournisseur d’attestations telles que status et AttestURI. Prenez note de la propriété AttestURI, car vous en aurez besoin plus tard.

Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup  

La commande ci-dessus doit produire une sortie au format suivant :

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: 

Les fournisseurs d’attestations peuvent être supprimés à l’aide de l’applet de commande Remove-AzAttestation.

Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

Gestion des stratégies

Afin de gérer les stratégies, un utilisateur Microsoft Entra doit avoir les autorisations suivantes pour « Actions » :

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

Pour effectuer ces actions, un utilisateur Microsoft Entra doit avoir le rôle Contributeur d’attestation sur le fournisseur d’attestation. Ces autorisations peuvent également être héritées avec des rôles, tels que Propriétaire (autorisations génériques)/Contributeur (autorisations génériques) sur l’abonnement/le groupe de ressources.

Afin de lire les stratégies, un utilisateur Microsoft Entra doit avoir l’autorisation suivante pour « Actions » :

  • Microsoft.Attestation/attestationProviders/attestation/read

Pour effectuer cette action, un utilisateur Microsoft Entra doit avoir le rôle Lecteur d’attestation sur le fournisseur d’attestation. Les autorisations de lecture peuvent également être héritées avec des rôles, tels que Lecteur (autorisations génériques) sur l’abonnement/ le groupe de ressources.

Ces cmdlets PowerShell permettent de gérer les stratégies pour un fournisseur d’attestations (un environnement d’exécution de confiance à la fois).

Get-AzAttestationPolicy retourne la stratégie actuelle pour l’environnement TEE spécifié. L’applet de commande affiche la stratégie à la fois dans le texte et le format JWT de la stratégie.

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

Les types d’environnements d’exécution de confiance (TEE, Trusted Execution Environment) pris en charge sont « SgxEnclave », « OpenEnclave » et « VbsEnclave ».

Set-AttestationPolicy définit une nouvelle stratégie pour l’environnement TEE spécifié. L’applet de commande accepte une stratégie au format texte ou JWT et est contrôlée par le paramètre PolicyFormat. « Text » est la valeur par défaut de 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 

Si PolicySignerCertificateFile est fourni lors de la création d’un fournisseur d’attestations, les stratégies peuvent être configurées uniquement au format JWT signé. Sinon, la stratégie peut être configurée dans du texte ou dans un format JWT non signé.

La stratégie d’attestation au format JWT doit contenir une revendication nommée « AttestationPolicy ». Pour la stratégie signée, le JWT doit être signé avec une clé privée correspondant à l’un des certificats de signataire de stratégie existants.

Pour obtenir des exemples de stratégie, consultez Exemples de stratégie d’attestation.

Reset-AzAttestationPolicy rétablit la valeur par défaut de la stratégie pour l’environnement TEE spécifié.

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

Gestion des certificats du signataire de stratégie

Ces cmdlets PowerShell permettent de gérer les certificats de signataire de stratégie pour un fournisseur d’attestations :

Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

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

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

Le certificat du signataire de stratégie est un jeton JWT signé avec une revendication nommée « maa-policyCertificate ». La valeur de la revendication est un objet JWK qui contient la clé de signature approuvée à ajouter. Le jeton JWT doit être signé avec une clé privée correspondant à l’un des certificats de signataire de stratégie existants.

Toute manipulation sémantique du certificat de signataire de stratégie doit être effectuée en dehors de PowerShell. En ce qui concerne PowerShell, il s’agit d’une simple chaîne.

Pour obtenir un exemple de certificat du signataire de stratégie, consultez Exemples de certificat de signataire de stratégie.

Pour plus d’informations sur les applets de commande et leurs paramètres, consultez Applets de commande PowerShell pour Azure Attestation.

Étapes suivantes