Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Integrálhatja az Azure Key Vaultot a GitHub Actions-munkafolyamatba a bizalmas hitelesítő adatok biztonságos kezelése érdekében egy helyen. Ez a megközelítés csökkenti a bizalmas adatok véletlen expozíciójának vagy jogosulatlan hozzáférésének kockázatát.
Ez a GitHub Actions-minta-munkafolyamat bemutatja, hogyan lehet biztonságosan lekérni a titkos kulcsokat az Azure Key Vaultból OpenID Connect (OIDC) hitelesítéssel.
Előfeltételek
- A Microsoft Entra alkalmazáson vagy egy felhasználó által hozzárendelt felügyelt identitáson konfiguráljon összevont identitáshitelesítő adatot. Megtudhatja, hogyan végezhet hitelesítést az Azure-ban a GitHub Actions by OpenID Connect használatával. Az összevont hitelesítő adatok beállításakor tárolja ezeket a titkos kulcsokat a GitHubon:
-
AZURE_CLIENT_ID: Az Azure szolgáltatásfőszereplő ügyfélazonosítója. -
AZURE_TENANT_ID: Az Azure AD-bérlői azonosító. -
AZURE_SUBSCRIPTION_ID: Az Azure-előfizetés azonosítója. -
KEYVAULT_NAME: A Key Vault neve.
-
- Engedélyek megadása: Győződjön meg arról, hogy a szolgáltatási főazonosító megfelelő hozzáféréssel rendelkezik a Kulcstárhoz (például a "Kulcstár titkos jelszavak felhasználó" szerepkör).
- Cserélje le
<SECRET_NAME>a Key Vault titkos nevére.
GitHub Actions-munkafolyamat-minta
A munkafolyamat feladata:
- Triggereket a fő ágba történő pusholásokkor
- OIDC-hitelesítést használ az Azure-hoz való csatlakozáshoz (a GitHubon tárolt jelszavak nélkül)
- Titkos kód lekérése az Azure Key Vaultból
- Maszkolja a titkos értéket
::add-mask::, hogy ne jelenjen meg a naplókban - A titkos kód elérhetővé válik környezeti változóként a következő lépésekhez
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 }}