Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Intégrez Azure Key Vault à votre flux de travail GitHub Actions pour gérer en toute sécurité les informations d’identification sensibles dans un seul endroit. Cette approche réduit le risque d’exposition accidentelle ou d’accès non autorisé aux données sensibles.
Cet exemple de flux de travail GitHub Actions montre comment récupérer en toute sécurité des secrets à partir d’Azure Key Vault à l’aide de l’authentification OpenID Connect (OIDC).
Conditions préalables
- Configurez un certificat d'identité fédérée sur une application Microsoft Entra ou une identité managée attribuée par l'utilisateur. Découvrez comment s’authentifier auprès d’Azure à partir de GitHub Actions par OpenID Connect. Lorsque vous configurez vos informations d’identification fédérées, stockez ces secrets dans GitHub :
AZURE_CLIENT_ID: ID client de votre principal de service Azure.AZURE_TENANT_ID: ID de client Azure AD.AZURE_SUBSCRIPTION_ID: ID de votre abonnement Azure.KEYVAULT_NAME: nom de votre coffre de clés.
- Accorder des autorisations : vérifiez que le principal de service dispose d’un accès approprié au coffre de clés (par exemple, rôle « Utilisateur des secrets Key Vault »).
- Remplacez
<SECRET_NAME>par votre nom de secret Key Vault.
Exemple de flux de travail GitHub Actions
Ce que fait le flux de travail :
- Déclencheurs sur les envois (push) vers la branche principale
- Utilise l’authentification OIDC pour se connecter à Azure (aucun mot de passe stocké dans GitHub)
- Récupère un secret à partir d’Azure Key Vault
- Masque la valeur secrète avec
::add-mask::afin de l’empêcher d’apparaître dans les journaux. - Rend le secret disponible en tant que variable d’environnement pour les étapes suivantes
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 }}