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 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:

  • Az 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. Tenga en cuenta que 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. Tenga en cuenta que 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 Azure AD 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 certificados de firmante de directivas. Estos permisos también se pueden heredar con roles tales como Propietario (permisos comodín) o 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-AzAttestation -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-AzAttestation -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-AzAttestation -Name $attestationProvider -ResourceGroupName $attestationResourceGroup  

El comando anterior debe generar una salida como la siguiente:

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-AzAttestation -Name $attestationProvider -ResourceGroupName $attestationResourceGroup

Administración de directivas

Para administrar directivas, un usuario de Azure AD necesita los siguientes permisos para las "acciones":

  • Microsoft.Attestation/attestationProviders/attestation/read
  • Microsoft.Attestation/attestationProviders/attestation/write
  • Microsoft.Attestation/attestationProviders/attestation/delete

Para realizar estas acciones, un usuario de Azure AD 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) o Colaborador (permisos comodín) en la suscripción o el grupo de recursos.

Para leer directivas, un usuario de Azure AD necesita los siguientes permisos para las "acciones":

  • Microsoft.Attestation/attestationProviders/attestation/read

Para realizar esta acción, el usuario de Azure AD 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 certificados de firmante 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

Los 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.

Tenga en cuenta que toda la manipulación semántica del certificado del firmante de directivas 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.

Pasos siguientes