クイック スタート:Azure PowerShell を使用して Azure Attestation を設定する

以下の手順に沿って、Azure PowerShell を使用して構成証明プロバイダーを作成、構成します。 Azure PowerShell をインストールして実行する方法については、Azure PowerShell の概要に関するページを参照してください。

Note

Az.Attestation PowerShell モジュールは Az PowerShell モジュールに統合されました。 構成証明の操作をサポートするうえで必要な Az モジュールの最小バージョン:

  • az PowerShell モジュール 6.5.0

PowerShell ギャラリーでは、トランスポート層セキュリティ (TLS) バージョン 1.0 と 1.1 が非推奨になっています。 TLS 1.2 以降のバージョンが推奨されます。 したがって、次のエラーが表示される場合があります。

  • 警告:パッケージ ソース 'https://www.powershellgallery.com/api/v2 ' を解決できません
  • PackageManagement\Install-Package: 指定された検索条件とモジュール名に一致するものが見つかりませんでした

PowerShell ギャラリーの操作を続行するには、Install-Module コマンドの前に次のコマンドを実行してください。

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

Azure へのサインイン

(昇格されたアクセス特権を使わず) PowerShell コンソールで Azure にサインインします。

Connect-AzAccount

必要に応じて、Azure Attestation に使用するサブスクリプションに切り替えます。

Set-AzContext -Subscription <subscription id>  

Microsoft.Attestation リソース プロバイダーを登録する

Microsoft.Attestation リソース プロバイダーをサブスクリプションに登録します。 Azure リソース プロバイダーについて、またリソース プロバイダーを構成、管理する方法について詳しくは、「Azure リソース プロバイダーと種類」を参照してください。 リソース プロバイダーを登録する必要があるのは、サブスクリプションにつき 1 回のみです。

Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation

Azure Attestation を利用できるリージョン

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

Azure リソース グループの作成

構成証明プロバイダー用のリソース グループを作成します。 同じリソース グループに他の Azure リソース (クライアント アプリケーション インスタンスがインストールされている仮想マシンを含む) を配置できます。

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

Note

このリソース グループに構成証明プロバイダーが作成された場合、Microsoft Entra ユーザーがポリシーの構成、ポリシー署名者証明書の管理などの操作を実行するには、そのプロバイダーに対して構成証明の共同作成者ロールを持っている必要があります。 これらのアクセス許可は、サブスクリプションまたはリソース グループに対する所有者 (ワイルドカード アクセス許可)、共同作成者 (ワイルドカード アクセス許可) などのロールで継承させることもできます。

構成証明プロバイダーを作成して管理する

New-AzAttestation によって構成証明プロバイダーが作成されます。

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

PolicySignerCertificateFile は、信頼済みの一連の署名キーを指定するファイルです。 PolicySignerCertificateFile パラメーターにファイル名を指定した場合、構成証明プロバイダーの構成には必ず、署名された JWT 形式のポリシーを使用する必要があります。 それ以外の場合は、テキストまたは署名されていない JWT 形式でポリシーを構成することができます。

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

PolicySignersCertificateFile のサンプルについては、ポリシー署名者証明書の例を参照してください。

Get-AzAttestation では、ステータスや AttestURI など、構成証明プロバイダーのプロパティを取得します。 AttestURI は書き留めておいてください。後で必要になります。

Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup  

上記のコマンドでは、次の形式の出力が生成されます。

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: 

構成証明プロバイダーは、Remove-AzAttestation コマンドレットを使用して削除できます。

Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

ポリシー管理

ポリシーを管理するには、Microsoft Entra ユーザーに "Actions" の次のアクセス許可が必要になります。

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

これらの操作を実行するには、Microsoft Entra ユーザーが構成証明プロバイダーに対して構成証明の共同作成者ロールを持っている必要があります。 これらのアクセス許可は、サブスクリプションまたはリソース グループに対する所有者 (ワイルドカード アクセス許可)、共同作成者 (ワイルドカード アクセス許可) などのロールで継承させることもできます。

ポリシーを読み取るには、Microsoft Entra ユーザーに "Actions" の次のアクセス許可が必要になります。

  • Microsoft.Attestation/attestationProviders/attestation/read

この操作を実行するには、Microsoft Entra ユーザーが構成証明プロバイダーに対して構成証明の閲覧者ロールを持っている必要があります。 読み取りアクセス許可は、サブスクリプションまたはリソース グループに対する閲覧者 (ワイルドカード アクセス許可) などのロールで継承させることもできます。

構成証明プロバイダー用のポリシーの管理は、これらの PowerShell コマンドレットで行うことができます (一度に 1 TEE)。

Get-AzAttestationPolicy からは、指定の TEE の現行ポリシーが返されます。 このコマンドレットでは、ポリシーのテキストと JWT 形式の両方でポリシーが表示されます。

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

サポートされる TEE タイプは "SgxEnclave"、"OpenEnclave"、および "VbsEnclave" です。

Set-AttestationPolicy では、指定された TEE の新しいポリシーを設定します。 このコマンドレットは、テキストまたは JWT 形式のポリシーを受け取り、PolicyFormat パラメーターで制御されます。 PolicyFormat の既定値は "Text" です。

$policyFormat = "<policy format>"
$policy=Get-Content -path "C:\test\policy.txt" -Raw
Set-AzAttestationPolicy   -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType -Policy $policy -PolicyFormat $policyFormat 

構成証明プロバイダーの作成中に PolicySignerCertificateFile が指定された場合、ポリシーの構成は必ず、署名された JWT 形式で行う必要があります。 それ以外の場合は、テキストまたは署名されていない JWT 形式でポリシーを構成することができます。

JWT 形式の構成証明ポリシーには、"AttestationPolicy" という名前の要求が含まれている必要があります。 署名済みのポリシーの場合、JWT は、既存のポリシー署名者証明書のいずれかに対応する秘密キーで署名する必要があります。

ポリシーのサンプルについては、「構成証明ポリシーの例」を参照してください。

Reset-AzAttestationPolicy では、指定された TEE の既定値にポリシーをリセットします。

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

ポリシー署名者証明書の管理

構成証明プロバイダー用のポリシー署名者証明書の管理は、これらの PowerShell コマンドレットで行うことができます。

Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

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

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

ポリシー署名者証明書は、"maa-policyCertificate" という名前の要求を含んだ署名済みの JWT です。 要求の値は、追加する信頼済み署名キーを含んだ JWK です。 この JWT は、既存のポリシー署名者証明書のいずれかに対応する秘密キーで署名されている必要があります。

ポリシー署名者証明書のセマンティック操作はすべて、PowerShell の外で実行しなければなりません。 PowerShell からは、単純な文字列と見なされます。

ポリシー署名者証明書のサンプルについては、ポリシー署名者証明書の例を参照してください。

コマンドレットとそのパラメーターの詳細については、Azure Attestation PowerShell のコマンドレットを参照してください。

次のステップ