Uso de una identidad de carga de trabajo desde un flujo de trabajo de Acciones de GitHub
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