Inicio rápido: Configuración de Azure Attestation con Azure PowerShell
Siga los pasos que se indican a continuación para crear y configurar un proveedor de atestación mediante Azure PowerShell. Consulte Introducción a Azure PowerShell para obtener información sobre cómo instalar y ejecutar Azure PowerShell.
Nota
El módulo Az.Attestation de PowerShell ahora está integrado en el módulo Az de PowerShell. Versión mínima del módulo Az necesario para admitir las operaciones de atestación:
- Módulo Az de PowerShell 6.5.0
La Galería de PowerShell ha dejado de usar las versiones 1.0 y 1.1 de Seguridad de la capa de transporte (TLS). Se recomienda usar TLS 1.2 o una versión posterior. Puede que aparezcan los siguientes mensajes de error:
- ADVERTENCIA: No se puede resolver el origen del paquete 'https://www.powershellgallery.com/api/v2 '
- PackageManagement\Install-Package: No match was found for the specified search criteria and module name (PackageManagement\Install-Package: No se encontraron coincidencias para los criterios de búsqueda y el nombre de módulo especificados)
Para seguir interactuando con la Galería de PowerShell, ejecute el siguiente comando antes que los comandos Install-Module:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Inicio de sesión en Azure
Inicie sesión en Azure en la consola de PowerShell (sin privilegios de acceso elevados).
Connect-AzAccount
Si es necesario, cambie a la suscripción que se va a usar para Azure Attestation.
Set-AzContext -Subscription <subscription id>
Registro del proveedor de recursos Microsoft.Atestation
Registre el proveedor de recursos Microsoft.Atestation en la suscripción. Para obtener más información sobre los proveedores de recursos de Azure y cómo configurar y administrar los proveedores de recursos, consulte Tipos y proveedores de recursos de Azure. El registro de un proveedor de recursos solo es necesario una vez para una suscripción.
Register-AzResourceProvider -ProviderNamespace Microsoft.Attestation
Disponibilidad regional de Azure Attestation
(Get-AzResourceProvider -ProviderNamespace Microsoft.Attestation)[0].Locations
Creación de un grupo de recursos de Azure
Cree un grupo de recursos para el proveedor de atestación. En este mismo grupo se pueden colocar otros recursos de Azure, incluida una máquina virtual con una instancia de la aplicación cliente.
$location = "uksouth"
$attestationResourceGroup = "<attestation provider resource group name>"
New-AzResourceGroup -Name $attestationResourceGroup -Location $location
Nota:
Una vez creado un proveedor de atestación en este grupo de recursos, el usuario de Microsoft Entra debe tener el rol Colaborador de atestación en el proveedor para realizar operaciones como la configuración de directivas o la administración de firmantes de directivas de atestación. Estos permisos también se pueden heredar con roles tales como Propietario (permisos comodín), Colaborador (permisos comodín) en la suscripción o el grupo de recursos.
Creación y administración de un proveedor de atestación
New-AzAttestation crea un proveedor de atestación.
$attestationProvider = "<attestation provider name>"
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location
PolicySignerCertificateFile es un archivo que especifica un conjunto de claves de firma de confianza. Si se especifica un nombre de archivo en el parámetro PolicySignerCertificateFile, el proveedor de atestación solo se puede configurar mediante directivas con formato JWT firmado. En caso contrario, la directiva se puede configurar con un formato de texto o un formato JWT sin firma.
New-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Location $location -PolicySignersCertificateFile "C:\test\policySignersCertificates.pem"
Puede consultar un ejemplo de PolicySignersCertificateFile en Ejemplos de un certificado de firmante de directivas de atestación.
Get-AzAttestation recupera las propiedades del proveedor de atestación, como status y AttestURI. Tome nota del valor de AttestURI, ya que se necesitará más adelante.
Get-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
El comando anterior debe generar la salida en este 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:
Los proveedores de atestación se pueden eliminar con el cmdlet Remove-AzAttestation.
Remove-AzAttestationProvider -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Administración de directivas
Para administrar directivas, el usuario de Microsoft Entra necesita los siguientes permisos para "Acciones":
- Microsoft.Attestation/attestationProviders/attestation/read
- Microsoft.Attestation/attestationProviders/attestation/write
- Microsoft.Attestation/attestationProviders/attestation/delete
Para realizar estas acciones, el usuario de Microsoft Entra debe tener el rol Colaborador de atestación en el proveedor de atestación. Estos permisos también se pueden heredar con roles tales como Propietario (permisos comodín), Colaborador (permisos comodín) en la suscripción o el grupo de recursos.
Para leer directivas, el usuario de Microsoft Entra necesita el siguiente permiso para "Acciones":
- Microsoft.Attestation/attestationProviders/attestation/read
Para realizar esta acción, el usuario de Microsoft Entra debe tener el rol Lector de atestación en el proveedor de atestación. El permiso de lectura también se puede heredar con roles como Lector (permisos comodín) en la suscripción o el grupo de recursos.
Los siguientes cmdlets de PowerShell proporcionan la administración de directivas para un proveedor de atestación (un TEE a la vez).
Get-AzAttestationPolicy devuelve la directiva actual para el TEE especificado. El cmdlet muestra la directiva en el formato de texto y JWT de la directiva.
$teeType = "<tee Type>"
Get-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Los tipos de TEE admitidos son "SgxEnclave", "OpenEnclave" y "VbsEnclave".
Set-AttestationPolicy establece una nueva directiva para el TEE especificado. El cmdlet acepta la directiva con formato de texto o JWT y se controla mediante el parámetro PolicyFormat. El valor predeterminado de PolicyFormat es "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
Si se proporciona un archivo con PolicySignerCertificateFile durante la creación de un proveedor de atestación, las directivas solo se pueden configurar con formato JWT firmado. En caso contrario, la directiva se puede configurar con un formato de texto o un formato JWT sin firma.
La directiva de atestación en formato JWT debe contener una notificación denominada "AttestationPolicy". En el caso de la directiva firmada, el JWT debe estar firmado con una clave privada que se corresponda con cualquiera de los certificados de firmante de directivas existentes.
Para obtener ejemplos de directivas, consulte Ejemplos de una directiva de atestación.
Reset-AzAttestationPolicy restablece el valor predeterminado de la directiva en el TEE especificado.
Reset-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Tee $teeType
Administración de certificados de firmante de directivas
Estos siguientes cmdlets de PowerShell proporcionan la administración de certificados de firmante de directivas para un proveedor de atestación:
Get-AzAttestationPolicySigners -Name $attestationProvider -ResourceGroupName $attestationResourceGroup
Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
Remove-AzAttestationPolicySigner -Name $attestationProvider -ResourceGroupName $attestationResourceGroup -Signer <signer>
El certificado de firmante de directivas es un JWT firmado con la notificación "maa-policyCertificate". El valor de la notificación es un JWK que contiene la clave de firma de confianza que se va a agregar. El JWT debe estar firmado con una clave privada que se corresponda con cualquiera de los certificados de firmante de directivas existentes.
Toda la manipulación semántica del certificado del firmante de directivas de atestación debe realizarse fuera de PowerShell. En lo que se refiere a PowerShell, es una cadena simple.
Puede consultar un ejemplo de certificado de firmante de directivas en Ejemplos de un certificado de firmante de directivas de atestación.
Para obtener más información sobre los cmdlets y sus parámetros, consulte los cmdlets de PowerShell de Azure Attestation.