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:
- Szolgáltatásnév titkos kódokkal
- OpenID Csatlakozás (OIDC) egy Azure-szolgáltatásnévvel összevont identitás hitelesítő adatokkal
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.
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
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.
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á.
- Nyissa meg Alkalmazásregisztrációk az Azure Portalon, és nyissa meg a konfigurálni kívánt alkalmazást.
- Az alkalmazásban lépjen a Tanúsítványok és titkos kódok elemre.
- Az Összevont hitelesítő adatok lapon válassza a Hitelesítő adatok hozzáadása lehetőséget.
- 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 request Tag |
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.
Nyissa meg a GitHub-adattárat, és lépjen a Gépház.
Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.
Titkos kulcsok létrehozása a következőhöz
AZURE_CLIENT_ID
: ,AZURE_TENANT_ID
ésAZURE_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 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.
.
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.
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
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.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
A GitHubon nyissa meg az adattárat.
Nyissa meg a Gépház a navigációs menüben.
Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.
Válassza az Új tárház titkos kódját.
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
.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_CREDENTIALS
tá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.