Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Integrujte Azure Key Vault do pracovního postupu GitHub Actions, abyste mohli bezpečně spravovat citlivé přihlašovací údaje na jednom místě. Tento přístup snižuje riziko náhodného vystavení nebo neoprávněného přístupu k citlivým datům.
Tento ukázkový pracovní postup GitHub Actions ukazuje, jak bezpečně načíst tajné kódy ze služby Azure Key Vault pomocí ověřování OpenID Connect (OIDC).
Požadavky
- Nakonfigurujte přihlašovací údaje federované identity v aplikaci Microsoft Entra nebo spravované identitě přiřazené uživatelem. Zjistěte, jak provést ověření v Azure z GitHub Actions pomocí OpenID Connect. Při nastavování federovaných přihlašovacích údajů uložte tyto tajné kódy na GitHubu:
-
AZURE_CLIENT_ID: ID klienta služebního objektu Azure. -
AZURE_TENANT_ID: ID tenanta Azure AD. -
AZURE_SUBSCRIPTION_ID: ID vašeho předplatného Azure. -
KEYVAULT_NAME: Název služby Key Vault.
-
- Udělení oprávnění: Ujistěte se, že má služební principál odpovídající přístup k Key Vault (například role Uživatel tajemství služby Key Vault).
- Nahraďte
<SECRET_NAME>názvem tajného kódu služby Key Vault.
Ukázka pracovního postupu GitHub Actions
Co pracovní postup dělá:
- Spouštěče při odeslání na hlavní větev
- Používá ověřování OIDC pro připojení k Azure (žádná hesla uložená na GitHubu).
- Načte tajný klíč ze služby Azure Key Vault.
- Maskuje hodnotu tajného kódu,
::add-mask::aby se zabránilo zobrazení v protokolech. - Zpřístupní utajovanou informaci jako proměnnou prostředí pro následné kroky.
name: Access Azure Key Vault and pass secret to workflow
on:
push:
branches:
- main
permissions:
id-token: write
contents: read
jobs:
get-secret:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Azure 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: Retrieve secret from Key Vault
id: keyvault
uses: azure/CLI@v1
with:
inlineScript: |
SECRET_VALUE=$(az keyvault secret show --name <SECRET_NAME> --vault-name ${{ secrets.KEYVAULT_NAME }} --query value -o tsv)
echo "::add-mask::$SECRET_VALUE"
echo "SECRET_VALUE=$SECRET_VALUE" >> $GITHUB_ENV
- name: Use retrieved secret
run: echo "The secret is successfully retrieved!"
- name: Use SECRET_VALUE in deployment
run: |
./deploy.sh
env:
SECRET_VALUE: ${{ env.SECRET_VALUE }}