Usar uma identidade de carga de trabalho de um fluxo de trabalho do GitHub Actions
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