Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Integrare Azure Key Vault nel flusso di lavoro di GitHub Actions per gestire in modo sicuro le credenziali sensibili in un'unica posizione. Questo approccio riduce il rischio di esposizione accidentale o accesso non autorizzato ai dati sensibili.
Questo flusso di lavoro di esempio di GitHub Actions illustra come recuperare in modo sicuro i segreti da Azure Key Vault usando l'autenticazione OIDC (OpenID Connect).
Prerequisiti
- Configurare una credenziale di identità federata in un'applicazione Microsoft Entra o in un'identità gestita assegnata dall'utente. Scopri come eseguire l'autenticazione su Azure tramite GitHub Actions utilizzando OpenID Connect. Quando si configurano le credenziali federate, archiviare questi segreti in GitHub:
-
AZURE_CLIENT_ID: ID del client del principale del servizio di Azure. -
AZURE_TENANT_ID: ID tenant di Azure AD. -
AZURE_SUBSCRIPTION_ID: ID sottoscrizione di Azure. -
KEYVAULT_NAME: il nome del Key Vault.
-
- Concedere le autorizzazioni: assicurarsi che l'entità servizio disponga dell'accesso appropriato al Key Vault, ad esempio il ruolo "Key Vault Secrets User".
- Sostituire
<SECRET_NAME>con il nome del segreto di Key Vault.
Esempio di flusso di lavoro di GitHub Actions
Operazioni del flusso di lavoro:
- I trigger durante i push nel ramo principale
- Usa l'autenticazione OIDC per connettersi ad Azure (nessuna password archiviata in GitHub)
- Recupera un segreto da Azure Key Vault
- Maschera il valore del segreto con
::add-mask::per impedirne la visualizzazione nei log - Rende il segreto disponibile come variabile di ambiente per i passaggi successivi
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 }}