Краткое руководство. Настройка службы "Аттестация 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".