Uso de una identidad de carga de trabajo desde un flujo de trabajo de Acciones de GitHub

Completado

Después de crear una identidad de carga de trabajo y asignarle acceso al entorno de Azure, es el momento de usarla en el flujo de trabajo de Acciones de GitHub. En esta unidad, obtendrá información sobre los dos cambios que debe realizar en la definición del flujo de trabajo.

Concesión de permiso para que el flujo de trabajo solicite tokens

Debe permitir que el flujo de trabajo de implementación solicite tokens. En el flujo de trabajo, agregue la propiedad permissions:

permissions:
  id-token: write
  contents: read

Inicio de sesión en Azure

El flujo de trabajo de implementación usa la acción azure/login para iniciar sesión en Azure. Al usar una identidad de carga de trabajo, debe especificar tres entradas:

Entrada Descripción
client-id Id. de aplicación para el registro de la aplicación. Asegúrese de usar el id. de aplicación y no el id. de objeto.
tenant-id Identificador único del inquilino de Microsoft Entra (directorio).
subscription-id El id. de suscripción de Azure en el que se va a implementar.

Cada uno de estos valores es un GUID.

Al definir los valores, puede optar por especificarlos directamente en el archivo de definición de flujo de trabajo:

- uses: azure/login@v1
  with:
    client-id: 'A123b4567c-1234-1a2b-2b1a-1234abc12345'
    tenant-id: 'aaaabbbb-0000-cccc-1111-dddd2222eeee'
    subscription-id: 'B123a4567c-1234-2b1a-1b2b-11a2b01b2b3c0'

Sin embargo, algunas organizaciones tratan estos identificadores como datos secretos o no permiten que los identificadores se confirmen en repositorios de Git. También puede usar secretos de GitHub para especificar los valores:

- uses: azure/login@v1
  with:
    client-id: ${{ secrets.AZURE_CLIENT_ID }}
    tenant-id: ${{ secrets.AZURE_TENANT_ID }}
    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

A lo largo de las rutas de aprendizaje para Bicep, usamos secretos para almacenar y administrar estos identificadores. Puede decidir qué enfoque funciona mejor para su organización.

Implementar en Azure

Una vez que el flujo de trabajo haya iniciado sesión en Azure, puede implementar un archivo de Bicep mediante la acción azure/arm-deploy. La siguiente definición de flujo de trabajo muestra un flujo de trabajo de implementación de Bicep completo que usa identidades de flujo de trabajo:

name: MyWorkflow

on: [workflow_dispatch]

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        path: repo
    - uses: azure/login@v1
      with:
        client-id: ${{ secrets.AZURE_CLIENT_ID }}
        tenant-id: ${{ secrets.AZURE_TENANT_ID }}
        subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    - uses: azure/arm-deploy@v1
      with:
        resourceGroupName: ToyWebsite
        template: ./deploy/main.bicep