Início Rápido: Configurar o Atestado do Azure com o Azure PowerShell
Siga as etapas abaixo para criar e configurar um provedor de atestado usando o Azure PowerShell. Confira Visão geral do Azure PowerShell para obter informações sobre como instalar e executar o Azure PowerShell.
Observação
O módulo do PowerShell Az.Attestation agora está integrado ao módulo do PowerShell Az. Versão mínima do módulo Az necessária para dar suporte às operações de atestado:
- Módulo do PowerShell Az 6.5.0
A Galeria do PowerShell preteriu as versões 1.0 e 1.1 do protocolo TLS. Recomendamos usar o TLS 1.2 ou uma versão posterior. Portanto, você poderá receber os seguintes erros:
- AVISO: Não é possível resolver a origem do pacote 'https://www.powershellgallery.com/api/v2 '
- PackageManagement\Install-Package: nenhuma correspondência foi encontrada para os critérios de pesquisa especificados e o nome do módulo
Para continuar a interagir com a Galeria do PowerShell, execute o comando a seguir antes dos comandos Install-Module
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Entrar no Azure
Entre no Azure no console do PowerShell (sem privilégios de acesso elevados).
Connect-AzAccount
Se necessário, alterne para a assinatura a ser usada para o Atestado do Azure.
Set-AzContext -Subscription <subscription id>
Registrar o provedor de recursos Microsoft.Attestation
Registre o provedor de recursos Microsoft.Attestation na assinatura. Para obter mais informações sobre os provedores de recursos do Azure e como configurar e gerenciar provedores de recursos, confira Tipos e provedores de recursos do Azure. O registro de um provedor de recursos é necessário apenas uma vez para uma assinatura.
Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation
Disponibilidade regional do Atestado do Azure
(Get-AzResourceProvider -ProviderNamespace Microsoft.Attestation)[0].Locations
Criar um grupo de recursos do Azure
Crie um grupo de recursos para o provedor de atestado. Outros recursos do Azure (incluindo uma máquina virtual com instância de aplicativo cliente) podem ser colocados no mesmo grupo de recursos.
$location = "uksouth"
$attestationResourceGroup = "<attestation provider resource group name>"
New-AzResourceGroup -Name $attestationResourceGroup -Location $location
Observação
Depois que um provedor de atestado for criado nesse grupo de recursos, um usuário do Microsoft Entra precisará ter a função Colaborador de Atestado no provedor para executar operações como configuração de política/gerenciamento de certificados de signatário de política. Essas permissões também podem ser herdadas com funções como Proprietário (permissões curinga)/Colaborador (permissões curinga) no grupo de recursos/na assinatura.
Criar e gerenciar um provedor de atestado
New-AzAttestation cria um provedor de atestado.
$attestationProvider = "<attestation provider name>"
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location
PolicySignerCertificateFile é um arquivo que especifica um conjunto de chaves de assinatura confiáveis. Se um nome de arquivo for especificado para o parâmetro PolicySignerCertificateFile, o provedor de atestado poderá ser configurado somente com políticas no formato JWT assinado. Outra política pode ser configurada no formato de texto ou em um formato JWT não assinado.
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location -PolicySignersCertificateFile "C:\test\policySignersCertificates.pem"
Para obter o exemplo de PolicySignersCertificateFile, confira os exemplos de certificado de signatário de política.
Get-AzAttestation recupera as propriedades do provedor de atestado, como status e AttestURI. Anote o AttestURI, pois ele será necessário mais tarde.
Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
O comando acima deve produzir saída neste formato:
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:
Os provedores de atestado podem ser excluídos usando o cmdlet Remove-AzAttestation.
Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Gerenciamento de política
Para gerenciar políticas, um usuário do Microsoft Entra requer as seguintes permissões para "Ações":
- Microsoft.Attestation/attestationProviders/attestation/read
- Microsoft.Attestation/attestationProviders/attestation/write
- Microsoft.Attestation/attestationProviders/attestation/delete
Para executar essas ações, um usuário do Microsoft Entra precisará ter a função Colaborador de Atestado no provedor de atestado. Essas permissões também podem ser herdadas com funções como Proprietário (permissões curinga)/Colaborador (permissões curinga) no grupo de recursos/na assinatura.
Para ler políticas, um usuário do Microsoft Entra requer as seguinte permissão para "Ações":
- Microsoft.Attestation/attestationProviders/attestation/read
Para executar essa ação, um usuário do Microsoft Entra precisa ter a função Leitor de Atestado no provedor de atestado. As permissões de leitura também pode ser herdada com funções como Leitor (permissões curinga) no grupo de recursos/na assinatura.
Esses cmdlets do PowerShell fornecem o gerenciamento de política para um provedor de atestado (um TEE por vez).
Get-AzAttestationPolicy retorna a política atual para o TEE especificado. O cmdlet exibe a política no formato de texto e JWT da política.
$teeType = "<tee Type>"
Get-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Os tipos de TEE compatíveis são "SgxEnclave", "OpenEnclave" e "VbsEnclave".
Set-AttestationPolicy define uma nova política para o TEE especificado. O cmdlet aceita a política no formato de texto ou JWT e é controlado pelo parâmetro PolicyFormat. "Text" é o valor padrão 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
Se PolicySignerCertificateFile for fornecido durante a criação de um provedor de atestado, as políticas poderão ser configuradas somente no formato JWT assinado. Outra política pode ser configurada no formato de texto ou em um formato JWT não assinado.
A política de atestado no formato JWT precisa conter uma declaração chamada "AttestationPolicy". Para a política assinada, o JWT precisa ser assinado com a chave privada correspondente a um dos certificados de signatário de política existentes.
Para obter exemplos de política, confira os exemplos de uma política de atestado.
Reset-AzAttestationPolicy redefine a política para o padrão referente ao TEE especificado.
Reset-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Gerenciamento de certificados de signatário de política
Esses cmdlets do PowerShell fornecem o gerenciamento de certificados de signatário de política para um provedor de atestado:
Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
Remove-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
O certificado de signatário de política é um JWT assinado com a declaração chamada "maa-policyCertificate". O valor da declaração é um JWK, que contém a chave de assinatura confiável a ser adicionada. O JWT precisa ser assinado com a chave privada correspondente a um dos certificados de signatário de política existentes.
Todo o processamento semântico do certificado de signatário de política deve ser feito fora do PowerShell. No que diz respeito ao PowerShell, ele é uma cadeia de caracteres simples.
Para obter um exemplo de certificado de signatário de política, confira os exemplos de certificados de signatário de política.
Para obter mais informações sobre os cmdlets e os respectivos parâmetros, confira Cmdlets do PowerShell no Atestado do Azure