A GitHub Actions használata az Azure-hoz való csatlakozáshoz

Megtudhatja, hogyan használhatja az Azure-bejelentkezést az Azure PowerShell vagyaz Azure CLI használatával az Azure-erőforrások használatához.

Az Azure PowerShell vagy az Azure CLI GitHub Actions-munkafolyamatban való használatához először be kell jelentkeznie az Azure bejelentkezési művelettel.

Az Azure bejelentkezési művelet két különböző hitelesítési módot támogat az Azure-ral:

Alapértelmezés szerint a bejelentkezési művelet bejelentkezik az Azure CLI-vel, és beállítja a GitHub Actions futókörnyezetét az Azure CLI-hez. Az Azure PowerShellt az Azure bejelentkezési művelet tulajdonságával enable-AzPSSession használhatja. Ezzel beállítja a GitHub Actions futókörnyezetét az Azure PowerShell-modullal.

Az Azure-bejelentkezéssel nyilvános vagy szuverén felhőkhöz csatlakozhat, például az Azure Governmenthez és az Azure Stack Hubhoz.

Az Azure bejelentkezési művelet használata az OpenID Csatlakozás

Egy Azure-bejelentkezés OpenID-Csatlakozás használatával való beállításához és GitHub Actions-munkafolyamatban való használatához a következőkre lesz szüksége:

  • Egy Microsoft Entra-alkalmazás, amely rendelkezik az előfizetéséhez megfelelő szerepkörrel rendelkező szolgáltatásnévvel.
  • A GitHub Actions által a GitHub-adattárba kibocsátott jogkivonatok megbízhatóságához összevont hitelesítő adatokkal konfigurált Microsoft Entra-alkalmazás. Ezt az Azure Portalon vagy a Microsoft Graph REST API-kkal konfigurálhatja.
  • Egy GitHub Actions-munkafolyamat, amely a GitHub-problémák jogkivonatait kéri a munkafolyamathoz, és az Azure bejelentkezési műveletét használja.

Microsoft Entra-alkalmazás és szolgáltatásnév létrehozása

Létre kell hoznia egy Microsoft Entra-alkalmazást és szolgáltatásnevet, majd hozzá kell rendelnie egy szerepkört az előfizetéséhez, hogy a munkafolyamat hozzáférhessen az előfizetéséhez.

  1. Ha nem rendelkezik meglévő alkalmazással, regisztráljon egy új Microsoft Entra-alkalmazást és szolgáltatásnevet, amely hozzáfér az erőforrásokhoz. Ennek a folyamatnak a részeként győződjön meg arról, hogy:

    • Az alkalmazás regisztrálása a Microsoft Entra-azonosítóval, és szolgáltatásnév létrehozása
    • Szerepkör hozzárendelése az alkalmazáshoz
  2. Nyissa meg Alkalmazásregisztrációk az Azure Portalon, és keresse meg az alkalmazást. Másolja ki a GitHub Actions-munkafolyamatban használni kívánt alkalmazás- (ügyfél-) azonosító és címtár-(bérlői) azonosító értékeit.

  3. Nyissa meg az Előfizetéseket az Azure Portalon, és keresse meg az előfizetését. Másolja ki az előfizetés azonosítóját.

Összevont hitelesítő adatok hozzáadása

Összevont hitelesítő adatokat az Azure Portalon vagy a Microsoft Graph REST API-val adhat hozzá.

  1. Nyissa meg Alkalmazásregisztrációk az Azure Portalon, és nyissa meg a konfigurálni kívánt alkalmazást.
  2. Az alkalmazásban lépjen a Tanúsítványok és titkos kódok elemre.
    Select Certificates & secrets.
  3. Az Összevont hitelesítő adatok lapon válassza a Hitelesítő adatok hozzáadása lehetőséget. Add the federated credential
  4. Válassza ki az Azure-erőforrásokat üzembe helyező Hitelesítő forgatókönyvet a GitHub Actionsben. A hitelesítő adatok megadásával hozza létre a hitelesítő adatokat.
Mező Description Példa
Organization A GitHub-szervezet neve vagy GitHub-felhasználóneve. contoso
Adattár A GitHub-adattár neve. contoso-app
Entitástípus A GitHub-munkafolyamatokból érkező OIDC-kérelmek hatókörének szűrésére használt szűrő. Ez a mező a jogcím létrehozásához subject használható. Environment, Branch, Pull requestTag
GitHub-név A környezet, ág vagy címke neve. main
Név Az összevont hitelesítő adatok azonosítója. contoso-deploy

Részletesebb áttekintésért tekintse meg a GitHub-adattárak megbízható alkalmazásának konfigurálása című témakört.

GitHub-titkos kódok létrehozása

Meg kell adnia az alkalmazás ügyfél-azonosítóját, bérlőazonosítóját és előfizetés-azonosítóját a bejelentkezési művelethez. Ezek az értékek közvetlenül a munkafolyamatban is megadhatóak, vagy a GitHub titkos kulcsaiban tárolhatók, és a munkafolyamatban hivatkozhatnak gombra. Az értékek GitHub-titkos kulcsként való mentése a biztonságosabb megoldás.

  1. Nyissa meg a GitHub-adattárat, és lépjen a Gépház.

    Select Settings in the navigation

  2. Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.

    Choose to add a secret

  3. Titkos kulcsok létrehozása a következőhöz AZURE_CLIENT_ID: , AZURE_TENANT_IDés AZURE_SUBSCRIPTION_ID. Használja ezeket az értékeket az Azure Active Directory-alkalmazásból a GitHub-titkos kulcsokhoz:

    GitHub-titkos kód Azure Active Directory-alkalmazás
    AZURE_CLIENT_ID Alkalmazás (ügyfél) azonosítója
    AZURE_TENANT_ID Címtár (bérlő) azonosítója
    AZURE_SUBSCRIPTION_ID Subscription ID
  4. Mentse az egyes titkos kulcsokat a Titkos kód hozzáadása gombra kattintva.

Az Azure Login beállítása OpenID Csatlakozás-hitelesítéssel

A GitHub Actions-munkafolyamat OpenID Csatlakozás használatával végez hitelesítést az Azure-ral. Az interakcióval kapcsolatos további információkért tekintse meg a GitHub Actions dokumentációját.

Ebben a példában az OpenID Csatlakozás Azure CLI használatával hitelesíthet az Azure-ral az Azure bejelentkezési művelettel. A példa GitHub-titkos kódokat használ a , tenant-idés subscription-id értékekhezclient-id. Ezeket az értékeket közvetlenül a bejelentkezési műveletben is átadhatja.

Az Azure bejelentkezési művelet tartalmaz egy opcionális audience bemeneti paramétert, amely alapértelmezés szerint a következő.api://AzureADTokenExchange Ezt a paramétert frissítheti az egyéni célközönségértékekhez.

Ez a munkafolyamat az OpenID Csatlakozás hitelesíti, és az Azure CLI használatával lekéri a csatlakoztatott előfizetés adatait, és felsorolja az erőforráscsoportot.

name: Run Azure Login with OpenID Connect
on: [push]

permissions:
      id-token: write
      contents: read
      
jobs: 
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: 'Az CLI login'
      uses: azure/login@v1
      with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
  
    - name: 'Run Azure CLI commands'
      run: |
          az account show
          az group list
          pwd 

Sikeres Azure-bejelentkezés ellenőrzése az OpenID-vel

Nyissa meg a Az CLI login műveletet, és ellenőrizze, hogy sikeresen futott-e. Ekkor megjelenik az üzenet Login successful. Ha a bejelentkezés sikertelen, megjelenik az üzenet Az CLI Login failed..

GitHub Actions Azure Login successful.

Az Azure bejelentkezési műveletének használata egyszerű szolgáltatáskóddal

Az Azure-bejelentkezés szolgáltatásnévvel való használatához először titkos kódként kell hozzáadnia az Azure-szolgáltatásnevet a GitHub-adattárhoz.

Egyszerű szolgáltatás létrehozása

Ebben a példában létrehoz egy titkos kulcsot, amelyet AZURE_CREDENTIALS az Azure-ral való hitelesítéshez használhat.

  1. Nyissa meg az Azure Cloud Shellt helyileg az Azure Portalon vagy az Azure CLI-ben .

    Megjegyzés:

    Ha az Azure Stack Hubot használja, az SQL Management-végpontot be kell állítania a következőre not supported: . az cloud update -n {environmentName} --endpoint-sql-management https://notsupported

  2. Hozzon létre egy új szolgáltatásnevet az Azure Portalon az alkalmazáshoz. A szolgáltatásnevet megfelelő szerepkörrel kell hozzárendelni.

        az ad sp create-for-rbac --name "myApp" --role contributor \
                                    --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} \
                                    --json-auth
    

    A paraméter --json-auth a bejelentkezési művelet által elfogadott eredményszótárat adja ki, amely elérhető az Azure CLI-verziókban >= 2.51.0. A használat --sdk-auth előtti verziók elavultsági figyelmeztetéssel.

  3. Másolja ki a szolgáltatásnév JSON-objektumát.

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        (...)
    }
    

A szolgáltatásnév hozzáadása GitHub-titkos kódként

  1. A GitHubon nyissa meg az adattárat.

  2. Nyissa meg a Gépház a navigációs menüben.

  3. Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.

    Screenshot of select Actions menu item.

  4. Válassza az Új tárház titkos kódját.

  5. Illessze be az Azure CLI parancs teljes JSON-kimenetét a titkos kód értékmezőjébe. Adja meg a titkos nevet AZURE_CREDENTIALS.

  6. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

Az Azure bejelentkezési műveletének használata

Az Azure Bejelentkezési művelettel a szolgáltatásnév titkos kódjával hitelesíthet az Azure-ban.

Ebben a munkafolyamatban az Azure bejelentkezési művelettel hitelesíthet a szolgáltatásnévben secrets.AZURE_CREDENTIALStárolt adatokkal. Ezután futtat egy Azure CLI-műveletet. A GitHub-titkos kódok munkafolyamat-fájlban való hivatkozásáról a GitHub Docs titkosított titkos kulcsainak használata című témakörben olvashat bővebben.

Ha már rendelkezik egy működő Azure-bejelentkezési lépéssel, használhatja az Azure PowerShell- vagy az Azure CLI-műveleteket. Egyéb Azure-műveleteket is használhat, például az Azure webapp üzembe helyezését és az Azure-függvényeket.

on: [push]

name: AzureLoginSample

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Log in with Azure
        uses: azure/login@v1
        with:
          creds: '${{ secrets.AZURE_CREDENTIALS }}'

Az Azure PowerShell-művelet használata

Ebben a példában az Azure Bejelentkezési művelettel jelentkezik be, majd lekér egy erőforráscsoportot az Azure PowerShell-művelettel.

on: [push]

name: AzureLoginSample

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Log in with Azure
        uses: azure/login@v1
        with:
          creds: '${{ secrets.AZURE_CREDENTIALS }}'
          enable-AzPSSession: true
      - name: Azure PowerShell Action
        uses: Azure/powershell@v1
        with:
          inlineScript: Get-AzResourceGroup -Name "< YOUR RESOURCE GROUP >"
          azPSVersion: "latest"

Az Azure CLI-művelet használata

Ebben a példában az Azure Bejelentkezési művelettel jelentkezik be, majd lekér egy erőforráscsoportot az Azure CLI művelettel.

on: [push]

name: AzureLoginSample

jobs:
build-and-deploy:
  runs-on: ubuntu-latest
  steps:

    - name: Log in with Azure
      uses: azure/login@v1
      with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Azure CLI script
      uses: azure/CLI@v1
      with:
          azcliversion: 2.0.72
          inlineScript: |
            az account show
            az storage -h

Csatlakozás az Azure Government és az Azure Stack Hub felhőihez

Ha valamelyik Azure Government-felhőbe szeretne bejelentkezni, állítsa be az opcionális paraméterkörnyezetet támogatott felhőnevekkel AzureUSGovernment vagy AzureChinaCloud. Ha ez a paraméter nincs megadva, az alapértelmezett értéket AzureCloud veszi fel, és csatlakozik az Azure Nyilvános felhőhöz.

   - name: Login to Azure US Gov Cloud with CLI
     uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
          environment: 'AzureUSGovernment'
          enable-AzPSSession: false
   - name: Login to Azure US Gov Cloud with Az Powershell
      uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_US_GOV_CREDENTIALS }}
          environment: 'AzureUSGovernment'
          enable-AzPSSession: true

Csatlakozás más Azure-szolgáltatásokkal

Az alábbi cikkek részletesen ismertetik a GitHubhoz való csatlakozást az Azure-ból és más szolgáltatásokból.

Microsoft Entra ID

Power BI

Összekötők

Azure Databricks