Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Integrera Azure Key Vault i ditt GitHub Actions-arbetsflöde för att hantera känsliga autentiseringsuppgifter på ett säkert sätt. Den här metoden minskar risken för oavsiktlig exponering eller obehörig åtkomst till känsliga data.
Det här GitHub Actions-exempelarbetsflödet visar hur du på ett säkert sätt hämtar hemligheter från Azure Key Vault med hjälp av OIDC-autentisering (OpenID Connect).
Förutsättningar
- Konfigurera en federerad identitetsautentiseringsuppgift i ett Microsoft Entra-program eller en användartilldelad hanterad identitet. Lär dig hur du autentiserar till Azure från GitHub Actions via OpenID Connect. När du konfigurerar dina federerade autentiseringsuppgifter lagrar du dessa hemligheter i GitHub:
-
AZURE_CLIENT_ID: Ditt Azure-tjänsthuvudnamns klient-ID. -
AZURE_TENANT_ID: Ditt Azure AD-klient-ID. -
AZURE_SUBSCRIPTION_ID: Ditt Azure-prenumerations-ID. -
KEYVAULT_NAME: Ditt Key Vault-namn.
-
- Bevilja behörigheter: Kontrollera att tjänsthuvudet har rätt tillgång till nyckelvalvet (till exempel rollen "Key Vault Secrets User").
- Ersätt
<SECRET_NAME>med ditt nyckelvalvshemlighetsnamn.
Exempel på GitHub Actions-arbetsflöde
Vad arbetsflödet gör:
- Utlösare vid push-överföring till huvudgrenen
- Använder OIDC-autentisering för att ansluta till Azure (inga lösenord lagras i GitHub)
- Hämtar en hemlighet från Azure Key Vault
- Maskerar det hemliga värdet med
::add-mask::för att förhindra att det visas i loggar - Gör hemligheten tillgänglig som en miljövariabel för efterföljande steg
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 }}