Usar uma identidade de carga de trabalho de um fluxo de trabalho do GitHub Actions

Concluído

Depois de criar uma identidade de carga de trabalho e atribuí-la ao seu ambiente do Azure, é hora de usá-la em seu fluxo de trabalho do GitHub Actions. Nesta unidade, você aprenderá sobre as duas alterações que precisa fazer em sua definição de fluxo de trabalho.

Permitir que o fluxo de trabalho solicite tokens

Você precisa permitir que seu fluxo de trabalho de implantação solicite tokens. No fluxo de trabalho, adicione a propriedade permissions:

permissions:
  id-token: write
  contents: read

Entrar no Azure

O fluxo de trabalho de implantação usa a ação azure/login para entrar no Azure. Ao usar uma identidade de carga de trabalho, você precisa especificar três entradas:

Entrada Descrição
client-id A ID do aplicativo para o registro de aplicativo. Confirme se usa a ID do aplicativo e não a ID do objeto.
tenant-id O identificador exclusivo do seu locatário (diretório) do Microsoft Entra.
subscription-id A ID de assinatura do Azure na qual você implantará.

Cada um desses valores é um GUID.

Ao definir os valores, você pode optar por especificá-los diretamente no arquivo de definição de fluxo de trabalho:

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

No entanto, algumas organizações tratam esses identificadores como dados secretos ou não permitem que identificadores sejam confirmados em repositórios Git. Você também pode usar segredos do GitHub para especificar os valores:

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

Ao longo dos roteiros de aprendizagem para o Bicep, usamos segredos para armazenar e gerenciar esses identificadores. Você pode decidir qual abordagem funciona melhor para sua organização.

Implantar no Azure

Depois que o fluxo de trabalho entrar no Azure, você poderá implantar o arquivo Bicep usando a ação azure/arm-deploy. A seguinte definição de fluxo de trabalho mostra um fluxo de trabalho de implantação Bicep completo que usa identidades de fluxo de trabalho:

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