Краткое руководство. Настройка службы "Аттестация Azure" с помощью Azure PowerShell

Выполнив описанные ниже шаги, вы установите и настроите поставщик аттестации с помощью Azure PowerShell. Сведения о том, как установить и запустить Azure PowerShell, см. в статье Общие сведения об Azure PowerShell.

Примечание.

Модуль Az.Attestation PowerShell теперь интегрирован в модуль Az PowerShell. Минимальная версия модуля Az, необходимая для поддержки операций аттестации:

  • Модуль Az PowerShell 6.5.0

Для коллекции PowerShell не рекомендуется использовать протокол TLS (Transport Layer Security) версий 1.0 и 1.1. Используйте TLS версии 1.2 или более поздней. По этой причине могут появляться следующие сообщения об ошибках.

  • ПРЕДУПРЕЖДЕНИЕ. Не удается разрешить источник пакета 'https://www.powershellgallery.com/api/v2'
  • PackageManagement\Install-Package: совпадение не найдено для указанного критерия поиска и имени модуля

Чтобы продолжить взаимодействие с коллекцией PowerShell Gallery, выполните следующие команды перед командами Install-Module.

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

Вход в Azure

Войдите в Azure из консоли PowerShell (без повышенных прав доступа).

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 извлекает такие свойства поставщика аттестации, как текущее состояние и 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 требуются следующие разрешения для действий:

  • 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 предоставляют управление политиками для поставщика аттестации (один 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>

Сертификат для подписывания политик представляет собой подписанный маркер JWT, в котором есть утверждение с именем maa-policyCertificate. Значение утверждения — это JWK, который содержит доверенный ключ подписи для добавления. Для подписывания JWT нужно применить закрытый ключ, соответствующий любому из существующих сертификатов для подписывания политик.

Все семантические манипуляции с сертификатом подписывания политики должны выполняться за пределами PowerShell. Для среды PowerShell он является простой строкой.

Пример использования сертификата для подписывания политик см. здесь.

Дополнительные сведения о командлетах и их параметрах см. в статье Командлеты PowerShell для службы "Аттестация Azure".

Следующие шаги