![Sécuriser vos applications Azure : Guide pas à pas pour utiliser Azure Key Vault avec Azure Functions](/portfolio/blog/function_kv/function_kv.png)
Sécuriser vos applications Azure : Guide pas à pas pour utiliser Azure Key Vault avec Azure Functions
Lorsqu’on utilise Azure Cloud et que l’on déploie des applications, qu’elles soient des Functions, des Conteneurs ou des Web Apps, la plupart du temps l’application va nécessiter des variables d’environnement pour fonctionner.
Il est assez simple d’ajouter des variables d’environnement en passant par le portail web Azure, et cela fonctionne très bien. Cependant, dans certains cas, les variables d’environnement sont sensibles et ne doivent pas être accessibles en clair directement depuis le portail Azure depuis la page de l’application.
C’est dans ce genre de cas qu’intervient Azure Key Vault. Azure Key Vault est un service de gestion des secrets des clés et des certificats dans Microsoft Azure. Il permet de stocker de manière sécurisée et de gérer les informations sensibles telles que les mots de passe, les clés d’API, les certificats et d’autres données confidentielles.
Partons du principe que nous avons déjà créé un Key Vault et une Function App (voir les crédits pour plus de détails). Nous utiliserons Function App, mais la démarche est sensiblement la même pour les autres ressources Azure.
1 - Ajouter un secret dans notre Key Vault
2 - Activation de la managed identity
dans la Function App.
Une managed identity
dans Azure est un service qui simplifie et sécurise l’authentification des ressources Azure en leur fournissant une identité gérée par la plateforme, éliminant ainsi le besoin de gérer manuellement des informations d’identification. En d’autres termes cela permet de donné une identité à nos applications et leur accorder des droits à nos différentes ressources Azure.
3 - Ajouter un rôle à notre application
Il faut que nous ajoutions un rôle à notre application. Pour cela, il faut retourner dans notre Key Vault. On se rend dans IAM et on clique sur add role assignment
.
Il faut choisir un rôle adapté à nos besoins. Tous les rôles qui donnent un accès en lecture au secret peuvent être utilisés. Cependnat cela ne respecte pas le principe du moindre privilège en matière de sécurité du cloud. Il faudrait donc plutôt choisir le rôle qui ne donne que les accès nécessaires, soit ici uniquement un accès en lecture aux secrets.
Ainsi, nous allons choisir le rôle Key Vault Secrets User
:
Il faut maintenant choisir la managed identity
correspondant à notre application et ajouter l’application à laquelle nous voulons accorder l’accès :
4 - Ajouter les secrets dans l’application
On choisit le secret que l’on veut ajouter dans notre application :
On choisit la version désirée et on copie le Secret Identifier
:
On retourne dans notre Function App dans l’onglet configuration. Il suffit d’ajouter ceci : @Microsoft.KeyVault(SecretUri=YourSecretIdentifier)
Conclusion
Et voilà ! Vous venez d’ajouter une variable d’environnement à votre application depuis votre KeyVault !
Crédits
Créer une identité managée : https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/tutorial-windows-vm-access-nonaad
Créer un Key Vault : https://learn.microsoft.com/en-us/azure/key-vault/secrets/quick-create-portal