Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zintegruj usługę Azure Key Vault z przepływem pracy funkcji GitHub Actions, aby bezpiecznie zarządzać poufnymi poświadczeniami w jednym miejscu. Takie podejście zmniejsza ryzyko przypadkowego ujawnienia lub nieautoryzowanego dostępu do poufnych danych.
Ten przykładowy przepływ pracy GitHub Actions pokazuje, jak bezpiecznie pobierać wpisy tajne z Azure Key Vault przy użyciu uwierzytelniania OpenID Connect (OIDC).
Wymagania wstępne
- Skonfiguruj poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra lub przypisanej przez użytkownika tożsamości zarządzanej. Dowiedz się, jak uwierzytelniać się na platformie Azure z funkcji GitHub Actions firmy OpenID Connect. Po skonfigurowaniu poświadczeń federacyjnych, zapisz te sekrety w GitHub.
-
AZURE_CLIENT_ID: identyfikator klienta jednostki usługi platformy Azure. -
AZURE_TENANT_ID: Identyfikator dzierżawcy usługi Azure AD. -
AZURE_SUBSCRIPTION_ID: Identyfikator subskrypcji platformy Azure. -
KEYVAULT_NAME: Nazwa usługi Key Vault.
-
- Udziel uprawnień: upewnij się, że jednostka usługi ma odpowiedni dostęp do Key Vault (na przykład rola "Użytkownik sekretów Key Vault").
- Zastąp
<SECRET_NAME>nazwą tajnego w Key Vault.
Przykład przepływu pracy funkcji GitHub Actions
Co robi przepływ pracy:
- Wyzwalacze wypychania do gałęzi głównej
- Używa uwierzytelniania OIDC do nawiązywania połączenia z platformą Azure (bez haseł przechowywanych w usłudze GitHub)
- Pobiera tajemnicę z usługi Azure Key Vault
- Maskuje tajną wartość przy użyciu
::add-mask::, aby uniemożliwić jej pojawienie się w dziennikach - Ustawia tajemnicę jako zmienną środowiskową dla kolejnych kroków.
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 }}