Partilhar via


Guia de 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. Consulte Visão geral do Azure PowerShell para obter informações sobre como instalar e executar o Azure PowerShell.

Nota

O módulo Az.Attestation PowerShell agora está integrado ao módulo Az PowerShell. Versão mínima do módulo Az necessária para suportar operações de atestado:

  • Az PowerShell módulo 6.5.0

A Galeria do PowerShell preteriu as versões 1.0 e 1.1 do Transport Layer Security (TLS). TLS 1.2 ou uma versão posterior é recomendado. Portanto, você pode receber os seguintes erros:

  • AVISO: Não é possível resolver a origem do pacote 'https://www.powershellgallery.com/api/v2'
  • PackageManagement\Install-Package: Não foi encontrada nenhuma correspondência para os critérios de pesquisa especificados e o nome do módulo

Para continuar a interagir com a Galeria do PowerShell, execute o seguinte comando antes dos comandos Install-Module

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

Iniciar sessão no Azure

Entre no Azure no console do PowerShell (sem privilégios de acesso elevados).

Connect-AzAccount

Se necessário, mude para a assinatura a ser usada para o Atestado do Azure.

Set-AzContext -Subscription <subscription id>  

Registrar provedor de recursos Microsoft.Attestation

Registre o provedor de recursos Microsoft.Attestation na assinatura. Para obter mais informações sobre provedores de recursos do Azure e como configurar e gerenciar provedores de recursos, consulte Provedores e tipos 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 

Nota

Depois que um provedor de atestado é criado nesse grupo de recursos, um usuário do Microsoft Entra deve ter a função de 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 assinaturas/recursos.

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. A política Else pode ser configurada em texto ou em um formato JWT não assinado.

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

Para o exemplo PolicySignersCertificateFile, consulte exemplos de certificado de signatário de política.

Get-AzAttestation recupera as propriedades do provedor de atestado, como status e AttestURI. Tome nota do AttestURI, pois 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

Gestão de políticas

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 deve ter a função de 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 assinaturas/recursos.

Para ler políticas, um usuário do Microsoft Entra requer a seguinte permissão para "Ações":

  • Microsoft.Attestation/attestationProviders/attestation/read

Para executar essa ação, um usuário do Microsoft Entra deve ter a função de Leitor de Atestado no provedor de atestado. As permissões de leitura também podem ser herdadas com funções como Reader (permissões curinga) no grupo de assinatura/recursos.

Esses cmdlets do PowerShell fornecem gerenciamento de políticas para um provedor de atestado (um TEE de cada vez).

Get-AzAttestationPolicy retorna a política atual para o TEE especificado. O cmdlet exibe a política no formato texto e JWT da política.

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

Os tipos de TEE suportados 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 texto ou JWT e é controlado pelo parâmetro PolicyFormat. "Text" é o valor padrão para 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. A política Else pode ser configurada em texto ou em um formato JWT não assinado.

A política de atestado no formato JWT deve conter uma declaração chamada "AttestationPolicy". Para a política assinada, o JWT deve ser assinado com a chave privada correspondente a qualquer um dos certificados de signatário de política existentes.

Para exemplos de políticas, consulte exemplos de uma política de atestado.

Reset-AzAttestationPolicy redefine a política como padrão para o TEE especificado.

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

Gerenciamento de certificados de signatário de políticas

Estes cmdlets do PowerShell fornecem 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 da política é um JWT assinado com a declaração denominada "maa-policyCertificate". O valor da declaração é um JWK, que contém a chave de assinatura confiável a ser adicionada. O JWT deve ser assinado com a chave privada correspondente a qualquer um dos certificados de signatário de política existentes.

Toda a manipulação semântica do certificado de signatário da política deve ser feita fora do PowerShell. No que diz respeito ao PowerShell, é uma cadeia de caracteres simples.

Para obter um exemplo de certificado de signatário de política, consulte exemplos de certificado de signatário de política.

Para obter mais informações sobre os cmdlets e seus parâmetros, consulte Azure Attestation PowerShell cmdlets

Próximos passos