Usar uma identidade de carga de trabalho de um fluxo de trabalho de Ações do GitHub
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