快速入門:使用 Azure PowerShell 設定 Azure 證明

請遵循下列步驟,使用 Azure PowerShell 建立及設定證明提供者。 如需如何安裝和執行 Azure PowerShell 的資訊,請參閱 Azure PowerShell 概觀。

注意

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 證明的訂用帳戶。

Set-AzContext -Subscription <subscription id>  

註冊 Microsoft.Attestation 資源提供者

在訂用帳戶中註冊 Microsoft.Attestation 資源提供者。 如需 Azure 資源提供者以及如何設定和管理資源提供者的詳細資訊,請參閱 Azure 資源提供者和類型 。 只有訂用帳戶需要註冊資源提供者一次。

Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation

Azure 證明的區域可用性

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

建立 Azure 資源群組

建立證明提供者的資源群組。 其他 Azure 資源(包括具有用戶端應用程式實例的虛擬機器)可以放在相同的資源群組中。

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

注意

在此資源群組中建立證明提供者之後,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 會擷取證明提供者屬性,例如 status 和 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 Cmdlet 刪除證明提供者。

Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

原則管理

為了管理原則,Microsoft Entra 使用者需要下列「動作」許可權:

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

若要執行這些動作,Microsoft Entra 使用者必須在證明提供者上具有 證明參與者 角色。 這些許可權也可以與訂用帳戶/資源群組上的擁有者 (萬用字元許可權)/ 參與者 (萬用字元許可權)等 角色一起繼承。

為了讀取原則,Microsoft Entra 使用者需要下列「動作」許可權:

  • Microsoft.Attestation/attestationProviders/attestation/read

若要執行此動作,Microsoft Entra 使用者必須在證明提供者上具有 證明讀者 角色。 讀取權限也可以與訂用帳戶/資源群組上的讀取者 (萬用字元許可權)等 角色一起繼承。

這些 PowerShell Cmdlet 會為證明提供者提供原則管理(一次一個 TEE)。

Get-AzAttestationPolicy 會傳回指定 TEE 的目前原則。 Cmdlet 會以原則的文字和 JWT 格式顯示原則。

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

支援的 TEE 類型為 「SgxEnclave」、「OpenEnclave」 和 「VbsEnclave」。

Set-AttestationPolicy 會為指定的 TEE 設定新的原則。 Cmdlet 會接受文字或 JWT 格式的原則,並由 PolicyFormat 參數控制。 「Text」 是 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 

如果在建立證明提供者期間提供 PolicySignerCertificateFile,則原則只能以已簽署的 JWT 格式設定。 否則可以使用文字或未簽署的 JWT 格式來設定原則。

JWT 格式的證明原則必須包含名為 「AttestationPolicy」 的宣告。 對於已簽署的原則,JWT 必須使用對應至任何現有原則簽署者憑證的私密金鑰進行簽署。

如需原則範例,請參閱 證明原則 的範例。

Reset-AzAttestationPolicy 會將指定 TEE 的原則重設為預設值。

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

原則簽署者憑證管理

這些 PowerShell Cmdlet 會為證明提供者提供原則簽署者憑證管理:

Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

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

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

原則簽署者憑證是已簽署的 JWT,其宣告名為 「maa-policyCertificate」。 宣告的值是 JWK,其中包含要新增的受信任簽署金鑰。 JWT 必須使用對應至任何現有原則簽署者憑證的私密金鑰進行簽署。

原則簽署者憑證的所有語意操作都必須在 PowerShell 外部完成。 就 PowerShell 而言,它是簡單的字串。

如需原則簽署者憑證範例,請參閱 原則簽署者憑證 的範例。

如需 Cmdlet 及其參數的詳細資訊,請參閱 Azure 證明 PowerShell Cmdlet

下一步