Připojení k Azure pomocí GitHub Actions
Naučte se používat přihlášení k Azure pomocí Azure PowerShellu nebo Azure CLI pro interakci s prostředky Azure.
Pokud chcete v pracovním postupu GitHub Actions použít Azure PowerShell nebo Azure CLI, musíte se nejdřív přihlásit pomocí akce přihlášení k Azure.
Akce přihlášení k Azure podporuje dva různé způsoby ověřování v Azure:
- Instanční objekt s tajnými kódy
- OpenID Připojení (OIDC) s instančním objektem Azure pomocí přihlašovacích údajů federované identity
Ve výchozím nastavení se přihlašovací akce přihlásí pomocí Azure CLI a nastaví prostředí Spouštěče GitHub Actions pro Azure CLI. Azure PowerShell můžete použít s enable-AzPSSession
vlastností akce přihlášení k Azure. Tím se nastaví prostředí GitHub Actions runneru pomocí modulu Azure PowerShell.
Pomocí přihlášení k Azure se můžete připojit k veřejným nebo suverénním cloudům, včetně Azure Government a Azure Stack Hubu.
Použití akce přihlášení k Azure s openID Připojení
Pokud chcete nastavit přihlášení Azure pomocí OpenID Připojení a použít ho v pracovním postupu GitHub Actions, budete potřebovat:
- Aplikace Microsoft Entra s instančním objektem, který má přiřazenou odpovídající roli k vašemu předplatnému.
- Aplikace Microsoft Entra nakonfigurovaná s federovanými přihlašovacími údaji tak, aby důvěřovala tokenům vydaným GitHub Actions ve vašem úložišti GitHub. Můžete to nakonfigurovat na webu Azure Portal nebo pomocí rozhraní MICROSOFT Graph REST API.
- Pracovní postup GitHub Actions, který žádá o tokeny problému GitHubu na pracovní postup, a používá akci přihlášení k Azure.
Vytvoření aplikace Microsoft Entra a instančního objektu
Budete muset vytvořit aplikaci Microsoft Entra a instanční objekt a pak k aplikaci přiřadit roli, aby váš pracovní postup získal přístup k vašemu předplatnému.
Pokud nemáte existující aplikaci, zaregistrujte novou aplikaci Microsoft Entra a instanční objekt, který má přístup k prostředkům. V rámci tohoto procesu nezapomeňte:
- Registrace aplikace pomocí Microsoft Entra ID a vytvoření instančního objektu
- Přiřazení role k aplikaci
Otevřete Registrace aplikací na webu Azure Portal a najděte svou aplikaci. Zkopírujte hodnoty ID aplikace (klienta) ID a ID adresáře (tenanta), které chcete použít v pracovním postupu GitHub Actions.
Otevřete předplatná na webu Azure Portal a najděte své předplatné. Zkopírujte ID předplatného.
Přidání federovaných přihlašovacích údajů
Federované přihlašovací údaje můžete přidat na webu Azure Portal nebo pomocí rozhraní MICROSOFT Graph REST API.
- Na webu Azure Portal přejděte na Registrace aplikací a otevřete aplikaci, kterou chcete nakonfigurovat.
- V aplikaci přejděte na Certifikáty a tajné kódy.
- Na kartě Federované přihlašovací údaje vyberte Přidat přihlašovací údaje.
- Vyberte scénář přihlašovacích údajů, který GitHub Actions nasazuje prostředky Azure. Vygenerujte přihlašovací údaje zadáním podrobností o přihlašovacích údajích.
Pole | Description | Příklad |
---|---|---|
Organizace | Název organizace GitHubu nebo uživatelské jméno GitHubu | contoso |
Úložiště | Název úložiště GitHub. | contoso-app |
Typ entity | Filtr použitý k určení rozsahu požadavků OIDC z pracovních postupů GitHubu. Toto pole slouží k vygenerování subject deklarace identity. |
Environment , Branch , , Pull request Tag |
Název GitHubu | Název prostředí, větve nebo značky. | main |
Název | Identifikátor federovaných přihlašovacích údajů. | contoso-deploy |
Podrobnější přehled najdete v tématu Konfigurace aplikace tak, aby důvěřovala úložišti GitHubu.
Vytvoření tajných kódů GitHubu
K akci přihlášení musíte zadat ID klienta, ID tenanta a ID předplatného vaší aplikace. Tyto hodnoty je možné zadat buď přímo v pracovním postupu, nebo je můžete uložit v tajných kódech GitHubu a odkazovat na je ve vašem pracovním postupu. Uložením hodnot jako tajných kódů GitHubu je bezpečnější možnost.
Otevřete úložiště GitHub a přejděte na Nastavení.
Vyberte Akce tajných kódů zabezpečení > a proměnných>.
Vytváření tajných kódů pro
AZURE_CLIENT_ID
,AZURE_TENANT_ID
aAZURE_SUBSCRIPTION_ID
. Pro tajné kódy GitHubu použijte tyto hodnoty z aplikace Azure Active Directory:Tajný kód GitHubu Aplikace Azure Active Directory AZURE_CLIENT_ID ID aplikace (klienta) AZURE_TENANT_ID ID adresáře (klienta) AZURE_SUBSCRIPTION_ID Subscription ID Uložte každý tajný kód výběrem možnosti Přidat tajný kód.
Nastavení přihlášení Azure s využitím ověřování OpenID Připojení
Pracovní postup GitHub Actions používá k ověřování v Azure Připojení OpenID. Další informace o této interakci najdete v dokumentaci k GitHub Actions.
V tomto příkladu použijete OpenID Připojení Azure CLI k ověření v Azure pomocí akce přihlášení k Azure. Příklad používá tajné kódy GitHubu client-id
tenant-id
pro , a subscription-id
hodnoty. Tyto hodnoty můžete také předat přímo v akci přihlášení.
Akce přihlášení k Azure obsahuje volitelný audience
vstupní parametr, který se standardně používá api://AzureADTokenExchange
. Tento parametr můžete aktualizovat pro vlastní hodnoty cílové skupiny.
Tento pracovní postup se ověřuje pomocí OpenID Připojení a používá Azure CLI k získání podrobností o připojeném předplatném a výpisu skupiny prostředků.
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
Ověření úspěšného přihlášení k Azure pomocí OpenID
Az CLI login
Otevřete akci a ověřte, že se úspěšně spustila. Měla by se zobrazit zpráva Login successful
. Pokud vaše přihlášení není úspěšné, zobrazí se zpráva Az CLI Login failed.
.
Použití akce přihlášení Azure s tajným kódem instančního objektu
Pokud chcete použít přihlášení Azure s instančním objektem, musíte nejprve přidat instanční objekt Azure jako tajný klíč do úložiště GitHub.
Vytvoření instančního objektu služby
V tomto příkladu vytvoříte tajný kód s názvem AZURE_CREDENTIALS
, který můžete použít k ověření v Azure.
Otevřete Azure Cloud Shell na webu Azure Portal nebo v Azure CLI místně.
Poznámka:
Pokud používáte Službu Azure Stack Hub, budete muset koncový bod služby SQL Management nastavit na
not supported
hodnotu .az cloud update -n {environmentName} --endpoint-sql-management https://notsupported
Vytvořte nový instanční objekt na webu Azure Portal pro vaši aplikaci. Instanční objekt musí být přiřazen s příslušnou rolí.
az ad sp create-for-rbac --name "myApp" --role contributor \ --scopes /subscriptions/{subscription-id}/resourceGroups/{resource-group} \ --json-auth
--json-auth
Parametr vypíše slovník výsledků přijatý akcí přihlášení, který je přístupný ve verzích >Azure CLI = 2.51.0. Verze před tímto použitím--sdk-auth
s upozorněním na vyřazení.Zkopírujte objekt JSON pro instanční objekt.
{ "clientId": "<GUID>", "clientSecret": "<GUID>", "subscriptionId": "<GUID>", "tenantId": "<GUID>", (...) }
Přidání instančního objektu jako tajného kódu GitHubu
Na GitHubu přejděte do svého úložiště.
V navigační nabídce přejděte na Nastavení.
Vyberte Akce tajných kódů zabezpečení > a proměnných>.
Vyberte Nový tajný klíč úložiště.
Celý výstup JSON z příkazu Azure CLI vložte do pole hodnoty tajného kódu. Dejte tajnému názvu
AZURE_CREDENTIALS
.Vyberte Add secret (Přidat tajný kód).
Použití akce přihlášení k Azure
Pomocí tajného kódu instančního objektu s akcí Přihlášení k Azure se ověřte v Azure.
V tomto pracovním postupu se ověříte pomocí akce přihlášení Azure s podrobnostmi instančního objektu uloženými v secrets.AZURE_CREDENTIALS
. Pak spustíte akci Azure CLI. Další informace o odkazování na tajné kódy GitHubu v souboru pracovního postupu najdete v tématu Použití šifrovaných tajných kódů v pracovním postupu v Dokumentaci GitHubu.
Jakmile budete mít funkční krok přihlášení k Azure, můžete použít akce Azure PowerShellu nebo Azure CLI . Můžete také použít další akce Azure, jako jsou nasazení webové aplikace Azure a funkce Azure.
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 }}'
Použití akce Azure PowerShellu
V tomto příkladu se přihlásíte pomocí akce Přihlášení k Azure a pak načtete skupinu prostředků pomocí akce Azure PowerShellu.
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"
Použití akce Azure CLI
V tomto příkladu se přihlásíte pomocí akce Přihlášení k Azure a pak načtete skupinu prostředků pomocí akce Azure CLI.
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
Připojení do cloudů Azure Government a Azure Stack Hub
Pokud se chcete přihlásit k některému z cloudů Azure Government, nastavte volitelné prostředí parametrů s podporovanými názvy AzureUSGovernment
cloudů nebo AzureChinaCloud
. Pokud tento parametr není zadaný, vezme výchozí hodnotu AzureCloud
a připojí se k veřejnému cloudu Azure.
- 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
Připojení s jinými službami Azure
Následující články obsahují podrobnosti o připojení k GitHubu z Azure a dalších služeb.