Usar uma identidade de carga de trabalho de um fluxo de trabalho de Ações do GitHub

Concluído

Depois de criar uma identidade de carga de trabalho e atribuir-lhe acesso ao seu ambiente do Azure, é hora de usá-la em seu fluxo de trabalho de Ações do GitHub. Nesta unidade, você aprenderá sobre as duas alterações que precisa fazer na definição do 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 seu fluxo de trabalho, adicione a permissions propriedade:

permissions:
  id-token: write
  contents: read

Iniciar sessão no Azure

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

Entrada Description
client-id O ID do aplicativo para o registro do aplicativo. Certifique-se de usar a ID do aplicativo e não a ID do objeto.
tenant-id O identificador exclusivo para seu locatário do Microsoft Entra (diretório).
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 do fluxo de trabalho:

- uses: azure/login@v1
  with:
    client-id: 'A123b4567c-1234-1a2b-2b1a-1234abc12345'
    tenant-id: 'b31a1123-3210-10ab-23bc-123c1b32a012'
    subscription-id: 'B123a4567c-1234-2b1a-1b2b-11a2b01b2b3c0'

No entanto, algumas organizações tratam esses identificadores como dados secretos ou não permitem que os identificadores sejam comprometidos com 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 caminhos de aprendizagem do Bicep, usamos segredos para armazenar e gerenciar esses identificadores. Você pode decidir qual abordagem funciona melhor para sua organização.

Implementar no Azure

Depois que seu fluxo de trabalho entrar no Azure, você poderá implantar um arquivo Bicep usando a azure/arm-deploy ação. A definição de fluxo de trabalho a seguir mostra um fluxo de trabalho completo de implantação do Bicep 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