Używanie tożsamości obciążenia z przepływu pracy funkcji GitHub Actions

Ukończone

Po utworzeniu tożsamości obciążenia i przypisaniu jej dostępu do środowiska platformy Azure nadszedł czas, aby używać go w przepływie pracy funkcji GitHub Actions. W tej lekcji poznasz dwie zmiany, które należy wprowadzić w definicji przepływu pracy.

Zezwalanie przepływowi pracy na żądanie tokenów

Musisz zezwolić przepływowi pracy wdrażania na żądanie tokenów. W przepływie pracy dodaj permissions właściwość :

permissions:
  id-token: write
  contents: read

Logowanie się do platformy Azure

Przepływ pracy wdrażania używa azure/login akcji do logowania się na platformie Azure. W przypadku korzystania z tożsamości obciążenia należy określić trzy dane wejściowe:

Dane wejściowe opis
client-id Identyfikator aplikacji do rejestracji aplikacji. Pamiętaj, aby użyć identyfikatora aplikacji, a nie identyfikatora obiektu.
tenant-id Unikatowy identyfikator dzierżawy (katalogu) firmy Microsoft.
subscription-id Identyfikator subskrypcji platformy Azure, do którego wdrożysz.

Każda z tych wartości jest identyfikatorem GUID.

Podczas definiowania wartości można określić je bezpośrednio w pliku definicji przepływu pracy:

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

Jednak niektóre organizacje traktują te identyfikatory jako dane tajne lub nie zezwalają na zatwierdzanie identyfikatorów w repozytoriach Git. Możesz również użyć wpisów tajnych usługi GitHub, aby określić wartości:

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

W ramach ścieżek szkoleniowych dotyczących Bicep używamy wpisów tajnych do przechowywania tych identyfikatorów i zarządzania nimi. Możesz zdecydować, które podejście najlepiej sprawdza się w twojej organizacji.

Wdróż na platformie Azure

Po zalogowaniu przepływu pracy na platformie Azure możesz wdrożyć plik Bicep przy użyciu azure/arm-deploy akcji . Poniższa definicja przepływu pracy przedstawia kompletny przepływ pracy wdrażania Bicep, który korzysta z tożsamości przepływu pracy:

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