Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hassas kimlik bilgilerini tek bir yerde güvenli bir şekilde yönetmek için Azure Key Vault'ı GitHub Actions iş akışınızla tümleştirin. Bu yaklaşım, hassas verilere yanlışlıkla maruz kalma veya yetkisiz erişim riskini azaltır.
Bu GitHub Actions örnek iş akışı, OpenID Connect (OIDC) kimlik doğrulamasını kullanarak Azure Key Vault'tan gizli dizilerin nasıl güvenli bir şekilde alınduğunu gösterir.
Önkoşullar
- Microsoft Entra uygulamasında veya kullanıcı tarafından atanan yönetilen kimlikte federasyon kimlik bilgisini yapılandırın.
OpenID Connect ile GitHub Actions'tan Azure'da kimlik doğrulaması yapmayı öğrenin. Federasyon kimlik bilgilerinizi oluştururken bu gizli anahtarları GitHub'da depolayın.
-
AZURE_CLIENT_ID: Azure hizmet sorumlunuzun istemci kimliği. -
AZURE_TENANT_ID: Azure AD kiracı kimliğiniz. -
AZURE_SUBSCRIPTION_ID: Azure abonelik kimliğiniz. -
KEYVAULT_NAME: Key Vault adınız.
-
- İzin verin: Hizmet sorumlusuna Key Vault'a uygun erişime sahip olup olmadığını kontrol edin (örneğin, "Key Vault Secrets User" rolü).
- "
<SECRET_NAME>" ifadesini Key Vault gizli dizi adınızla değiştirin.
GitHub Actions iş akışı örneği
İş akışı ne yapar:
- Ana dala göndermelerde tetikleyiciler
- Azure'a bağlanmak için OIDC kimlik doğrulamasını kullanır (GitHub'da parola depolanmaz)
- Azure Key Vault'tan bir sır alır
- Gizli değerin günlüklerde görünmesini önlemek için
::add-mask::ile maskeler - Sonraki adımlar için gizli diziyi ortam değişkeni olarak kullanılabilir hale getirir
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 }}