Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Integrasikan Azure Key Vault ke dalam alur kerja GitHub Actions Anda untuk mengelola kredensial sensitif dengan aman di satu tempat. Pendekatan ini mengurangi risiko paparan yang tidak disengaja atau akses tidak sah ke data sensitif.
Alur kerja sampel GitHub Actions ini menunjukkan cara mengambil rahasia dengan aman dari Azure Key Vault menggunakan autentikasi OpenID Connect (OIDC).
Prasyarat
- Konfigurasikan kredensial identitas gabungan pada aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna. Pelajari cara mengautentikasi ke Azure dari GitHub Actions by OpenID Connect. Saat Anda menyiapkan kredensial federasi Anda, simpan rahasia ini di GitHub:
-
AZURE_CLIENT_ID: ID klien perwakilan layanan Azure Anda. -
AZURE_TENANT_ID: ID penyewa Azure Active Directory Anda. -
AZURE_SUBSCRIPTION_ID: ID langganan Azure Anda. -
KEYVAULT_NAME: Nama Key Vault Anda.
-
- Memberikan izin: Pastikan perwakilan layanan memiliki akses yang sesuai ke Key Vault (misalnya, peran "Pengguna Rahasia Key Vault").
- Ganti
<SECRET_NAME>dengan nama rahasia Key Vault Anda.
Sampel alur kerja GitHub Actions
Apa fungsi alur kerja:
- Pemicu pada dorongan ke cabang utama
- Menggunakan autentikasi OIDC untuk menyambungkan ke Azure (tidak ada kata sandi yang disimpan di GitHub)
- Mengambil rahasia dari Azure Key Vault
- Menutupi nilai rahasia dengan
::add-mask::untuk mencegahnya muncul di log - Membuat rahasia tersedia sebagai variabel lingkungan untuk langkah-langkah berikutnya
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 }}