Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Integrieren Sie Azure Key Vault in Ihren GitHub-Aktionen-Workflow, um vertrauliche Anmeldeinformationen an einem zentralen Ort sicher zu verwalten. Dieser Ansatz reduziert das Risiko einer versehentlichen Exposition oder unbefugten Zugriff auf vertrauliche Daten.
Dieser GitHub Actions-Beispielworkflow veranschaulicht, wie geheime Schlüssel mithilfe der OpenID Connect(OIDC)-Authentifizierung sicher aus Azure Key Vault abgerufen werden.
Voraussetzungen
- Konfigurieren Sie Anmeldedaten für eine Verbundidentität in einer Microsoft Entra-Anwendung oder einer vom Benutzer zugewiesenen verwalteten Identität. Erfahren Sie, wie Sie sich in Azure über GitHub Actions mittels OpenID Connect authentifizieren können. Wenn Sie Ihre Verbundanmeldeinformationen einrichten, speichern Sie diese geheimen Schlüssel in GitHub:
AZURE_CLIENT_ID: Die Client-ID Ihres Azure-Dienstprinzipals.AZURE_TENANT_ID: Ihre Azure AD-Mandanten-ID.AZURE_SUBSCRIPTION_ID: Die ID Ihres Azure-Abonnements.KEYVAULT_NAME: Ihr Key Vault-Name.
- Erteilen von Berechtigungen: Stellen Sie sicher, dass der Dienstprinzipal über einen geeigneten Zugriff auf den Key Vault verfügt (z. B. die Rolle "Key Vault Secrets User").
- Ersetzen Sie
<SECRET_NAME>durch den Namen Ihres Key Vault-Secrets.
GitHub Actions-Workflowbeispiel
Funktionsweise des Workflows:
- Trigger bei Pushes an den Main-Branch
- Verwendet die OIDC-Authentifizierung zum Herstellen einer Verbindung mit Azure (keine in GitHub gespeicherten Kennwörter)
- Ruft einen geheimen Schlüssel aus Azure Key Vault ab.
- Maskiert den geheimen Wert,
::add-mask::um zu verhindern, dass er in Protokollen angezeigt wird. - Stellt den geheimen Schlüssel als Umgebungsvariable für nachfolgende Schritte zur Verfügung.
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 }}