Stocker des secrets au niveau de l’application pour Azure Functions sur Azure Container Apps

Les secrets au niveau de l’application sont des valeurs de configuration que votre code de fonction et vos liaisons consomment au moment de l’exécution. Contrairement aux clés d’accès Functions, qui sécurisent les points de terminaison HTTP, les secrets au niveau de l’application sont les informations d’identification dont votre application a besoin pour se connecter à d’autres services.

Voici quelques exemples courants :

  • Connexions d’infrastructure - chaînes de connexion AzureWebJobsStorage connexions de déclencheur et de liaison pour Event Hubs, Service Bus, Cosmos DB et SQL.  »
  • Informations d’identification professionnelles : clés API tierces, mots de passe de base de données, jetons de plateforme SaaS.
  • Configuration personnalisée : toute valeur sensible que votre code lit à partir de variables d’environnement.

Choisir une option de stockage

Azure Container Apps vous offre deux façons de stocker les secrets au niveau de l’application :

Option Idéal pour Gestion centralisée Rotation automatique Journalisation d’audit
Secrets des Container Apps Charges de travail de développement/test simple à application unique Non - limité à une appli Non Journaux d’activité uniquement
Références de Key Vault Production, multi-applications, conformité Oui - dans toutes les applications Oui (URI sans version) Diagnostics complets de Key Vault

Conseil / Astuce

Commencez par les "informations confidentielles" de Container Apps pour plus de simplicité. Passez aux références Key Vault lorsque vous avez besoin d’une gestion centralisée, d’une rotation automatique ou d’un audit de niveau de conformité.

Conditions préalables

Utiliser les secrets de Container Apps

Container Apps stocke les secrets dans le tableau de l’application configuration.secrets et chiffre les valeurs au repos. Vous pouvez référencer les secrets dans les variables d’environnement, les règles de mise à l’échelle, les montages de volumes et les composants Dapr.

Stocker un secret

  1. Accédez à votre application conteneur Functions dans le portail Azure.

  2. Sous Paramètres, sélectionnez Secrets.

  3. Sélectionnez Ajouter et entrez les valeurs suivantes :

    Propriété Valeur
    Nom Un nom secret comme database-password. Utilisez uniquement des lettres minuscules, des chiffres et des traits d’union.
    Type Secret Container Apps
    Valeur Votre valeur secrète.
  4. Cliquez sur Ajouter.

Référencer le secret dans une variable d’environnement

Après avoir stocker un secret, référencez-le dans une variable d’environnement afin que votre code de fonction puisse le lire.

  1. Dans votre application conteneur Functions, sous Application, sélectionnez Révisions et réplicas.

  2. Sélectionnez Créer une révision.

  3. Sous l’onglet Conteneur , sélectionnez votre conteneur, puis sélectionnez Modifier.

  4. Sélectionnez l’onglet Variables d’environnement , puis sélectionnez Ajouter.

  5. Saisissez les valeurs suivantes :

    Propriété Valeur
    Nom DATABASE_PASSWORD
    Source Référencer un secret
    Valeur database-password
  6. Sélectionnez Enregistrer, puis créez pour déployer la nouvelle révision.

Vérifier le code secret

Vérifiez que votre fonction peut lire la valeur secrète en appelant la fonction et en vérifiant qu’elle s’exécute sans erreurs liées à la configuration manquante.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Important

Container Apps injecte la valeur secrète dans la variable d’environnement au moment de l’exécution. Votre code lit la variable d’environnement et n’accède pas directement au magasin de secrets.

Limitations

Les secrets Container Apps présentent les limitations suivantes :

  • Aucune centralisation : chaque application conteneur stocke ses propres secrets séparément.
  • Aucune rotation automatique : vous devez mettre à jour les valeurs secrètes manuellement.
  • Aucune expiration : les secrets n’expirent pas automatiquement.
  • Audit limité : journaux d’activité de base uniquement ; aucun audit d’accès secret détaillé.
  • Aucun contrôle de version : aucun historique de version secret intégré.
  • Comportement de mise à jour : la modification d’un secret ne déclenche pas de nouvelle révision. Vous devez créer une révision ou redémarrer des révisions existantes pour récupérer les modifications.

Utiliser des références de Key Vault

Les références de Key Vault permettent à votre application de conteneur d’extraire des secrets directement à partir d'Azure Key Vault à l’aide d’une identité gérée. Cette approche vous offre une gestion centralisée, une rotation automatique et un audit de niveau conformité.

Étape 1 : Configurer l’identité managée

Votre application conteneur a besoin d’une identité managée pour s’authentifier auprès de Key Vault sans informations d’identification.

  1. Accédez à votre application conteneur Functions dans le portail Azure.

  2. Sous Paramètres, sélectionnez Identité.

  3. Sous l’onglet Affecté par le système, définissez l'État sur Activé.

  4. Sélectionnez Enregistrer, puis Sélectionnez Oui pour confirmer.

Étape 2 : Accorder un accès Key Vault

Affectez le rôle Utilisateur des secrets de Key Vault à l’identité managée afin de pouvoir lire les secrets.

  1. Accédez à votre Key Vault dans le portail Azure.

  2. Sous Paramètres, sélectionnez Contrôle d’accès (IAM).

  3. Sélectionnez Ajouter>Ajouter une attribution de rôle.

  4. Sous l’onglet Role, sélectionnez Utilisateur de secrets de Key Vault.

  5. Sélectionnez Suivant.

  6. Sous l’onglet Membres, sélectionnez Identité managée, puis Sélectionner des membres.

  7. Dans le volet Sélectionner des identités managées , sélectionnez votre abonnement, choisissez Application conteneur pour le type d’identité managée, sélectionnez votre application conteneur Functions, puis sélectionnez Sélectionner.

  8. Sélectionnez Vérifier + attribuer.

Étape 3 : Stocker un secret dans Key Vault

  1. Dans votre Key Vault, sous Objects, sélectionnez Secrets.

  2. Sélectionnez Générer/Importer.

  3. Saisissez les valeurs suivantes :

    Propriété Valeur
    Options de chargement Manuel
    Nom Nom de secret, par exemple DatabasePassword.
    Valeur Votre valeur secrète.
  4. Cliquez sur Créer.

  5. Sélectionnez votre secret nouvellement créé, puis sélectionnez la version actuelle.

  6. Copiez l'URI de l'identifiant secret. Utilisez l’URI sans version (sans le segment de version de fin) pour activer la rotation automatique.

Étape 4 : Référencer le secret Key Vault dans Container Apps

Créez un secret Container Apps qui référence le secret Key Vault, puis liez-le à une variable d’environnement.

  1. Accédez à votre application conteneur Functions. Sous Paramètres, sélectionnez Secrets.

  2. Cliquez sur Ajouter.

  3. Dans Ajouter un secret, entrez les valeurs suivantes :

    Propriété Valeur
    Nom database-password
    Type Référence de Key Vault
    URL du secret Key Vault URI d’identificateur secret que vous avez copié.
    Identité Assigné par le système (ou votre identité assignée par l'utilisateur).
  4. Cliquez sur Ajouter.

  5. Sous Application, sélectionnez Révisions et répliques. Créez une nouvelle révision avec la variable DATABASE_PASSWORD d’environnement référençant le database-password secret.

Étape 5 : Vérifier la référence Key Vault

Appelez votre fonction et confirmez qu’elle s’exécute sans erreurs liées à la configuration manquante.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Rotation automatique des secrets

Lorsque vous référencez un secret Key Vault avec un URI sans version, Container Apps récupère automatiquement la dernière version :

  • URI sans versionnage : https://myvault.vault.azure.net/secrets/mysecret - utilise toujours la dernière version.
  • URI versionné : https://myvault.vault.azure.net/secrets/mysecret/ec96f020... - épinglé à une version spécifique.

Avec les URI sans version, Container Apps recherche les nouvelles versions dans les 30 minutes et redémarre automatiquement les révisions actives pour récupérer la nouvelle valeur.