Używanie tożsamości obciążenia z przepływu pracy funkcji GitHub Actions
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