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.
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
AzureWebJobsStorageconnexions 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
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Azure CLI version 2.40.0 ou ultérieure.
- Une application Azure Functions existante dans Container Apps ou des autorisations pour en créer une.
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
Accédez à votre application conteneur Functions dans le portail Azure.
Sous Paramètres, sélectionnez Secrets.
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. 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.
Dans votre application conteneur Functions, sous Application, sélectionnez Révisions et réplicas.
Sélectionnez Créer une révision.
Sous l’onglet Conteneur , sélectionnez votre conteneur, puis sélectionnez Modifier.
Sélectionnez l’onglet Variables d’environnement , puis sélectionnez Ajouter.
Saisissez les valeurs suivantes :
Propriété Valeur Nom DATABASE_PASSWORDSource Référencer un secret Valeur database-passwordSé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.
Accédez à votre application conteneur Functions dans le portail Azure.
Sous Paramètres, sélectionnez Identité.
Sous l’onglet Affecté par le système, définissez l'État sur Activé.
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.
Accédez à votre Key Vault dans le portail Azure.
Sous Paramètres, sélectionnez Contrôle d’accès (IAM).
Sélectionnez Ajouter>Ajouter une attribution de rôle.
Sous l’onglet Role, sélectionnez Utilisateur de secrets de Key Vault.
Sélectionnez Suivant.
Sous l’onglet Membres, sélectionnez Identité managée, puis Sélectionner des membres.
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.
Sélectionnez Vérifier + attribuer.
Étape 3 : Stocker un secret dans Key Vault
Dans votre Key Vault, sous Objects, sélectionnez Secrets.
Sélectionnez Générer/Importer.
Saisissez les valeurs suivantes :
Propriété Valeur Options de chargement Manuel Nom Nom de secret, par exemple DatabasePassword.Valeur Votre valeur secrète. Cliquez sur Créer.
Sélectionnez votre secret nouvellement créé, puis sélectionnez la version actuelle.
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.
Accédez à votre application conteneur Functions. Sous Paramètres, sélectionnez Secrets.
Cliquez sur Ajouter.
Dans Ajouter un secret, entrez les valeurs suivantes :
Propriété Valeur Nom database-passwordType 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). Cliquez sur Ajouter.
Sous Application, sélectionnez Révisions et répliques. Créez une nouvelle révision avec la variable
DATABASE_PASSWORDd’environnement référençant ledatabase-passwordsecret.
É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.