Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Integreer Azure Key Vault in uw GitHub Actions-werkstroom om gevoelige referenties op één plaats veilig te beheren. Deze aanpak vermindert het risico op onbedoelde blootstelling of onbevoegde toegang tot gevoelige gegevens.
Deze voorbeeldwerkstroom voor GitHub Actions laat zien hoe u geheimen veilig ophaalt uit Azure Key Vault met behulp van OIDC-verificatie (OpenID Connect).
Vereiste voorwaarden
- Configureer een federatieve identiteitsreferentie in een Microsoft Entra-toepassing of een door de gebruiker toegewezen beheerde identiteit. Meer informatie over verificatie bij Azure vanuit GitHub Actions door OpenID Connect. Wanneer u uw federatieve referenties instelt, slaat u deze geheimen op in GitHub:
-
AZURE_CLIENT_ID: de client-id van uw Azure-service-principal. -
AZURE_TENANT_ID: uw Azure AD-tenant-id. -
AZURE_SUBSCRIPTION_ID: uw Azure-abonnements-id. -
KEYVAULT_NAME: de naam van uw sleutelkluis.
-
- Machtigingen verlenen: zorg ervoor dat de service-principal de juiste toegang heeft tot de Sleutelkluis (bijvoorbeeld de rol Key Vault Secrets User).
- Vervang door
<SECRET_NAME>de naam van uw Key Vault-geheim.
Voorbeeld van gitHub Actions-werkstroom
Wat de werkstroom doet:
- Triggers bij pushes naar de hoofdbranch
- Maakt gebruik van OIDC-verificatie om verbinding te maken met Azure (geen wachtwoorden die zijn opgeslagen in GitHub)
- Hiermee haalt u een geheim op uit Azure Key Vault
- Maskert de geheime waarde met
::add-mask::om te voorkomen dat deze wordt weergegeven in logboeken - Maakt het geheim beschikbaar als een omgevingsvariabele voor volgende stappen
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 }}