Should We Use One Azure Key Vault per Application or Share One per Environment?

0
11
Asked By MellowPine42 On

Our platform team is designing secrets management for several applications in the same delivery group. We could manage one Key Vault per environment, or create separate vaults for each application or team. A shared vault would be easier for the platform team and simpler for development teams, but we must ensure that applications and teams cannot access one another's secrets. Ideally, teams could add and manage secrets in their own isolated area without having to ask the platform team every time. Is that isolation practical in a shared vault, or is a separate vault per application or team the better design? Also, what is the recommended way for applications to authenticate to Azure Key Vault without storing another secret for authentication?

4 Answers

Answered By CalmOrbit29 On

Applications should not authenticate with a client secret just to read Key Vault. Use Microsoft Entra ID managed identities instead. A user-assigned managed identity per application is often convenient, especially when the identity needs to survive resource replacements, although system-assigned identities can also work. Grant the identity the minimum required Azure RBAC role, such as permission to read secrets, on the relevant vault or secrets. The application’s Azure SDK can then obtain tokens automatically through that managed identity.

Answered By QuietMaple7 On

Separate vaults per application or team per environment are usually the cleaner option. Key Vault instances themselves generally do not create a significant cost difference; charges are mainly based on operations. With infrastructure as code, creating a small vault module for each team is straightforward. This gives teams clearer ownership, makes removing an application and its secrets easier, and reduces the blast radius if one identity or vault is compromised. You can still maintain a separate shared vault for genuinely platform-wide secrets.

SilverCactus18 -

It also avoids turning one shared vault into a single point of failure or a large administrative bottleneck.

Answered By BrightHarbor63 On

A shared vault can work, but it requires very careful authorization. Use Azure RBAC rather than the older Key Vault access policy model, and assign each application or team an identity with access only to the secrets it owns. Attribute-based access control for Key Vault may provide more granular secret-level restrictions where available, but check its support status and operational overhead before making it the foundation of your design. In practice, separate vaults are often simpler and safer than trying to create virtual folders inside one vault.

NorthwindLime5 -

Before choosing a shared vault, consider whether someone could accidentally reuse another team’s secret, whether all secrets can be removed cleanly with an application, and whether temporary access can be granted to exactly one team without exposing everything else.

Answered By AmberCloud11 On

Let teams create and update their own secrets through infrastructure as code, such as Bicep or Terraform, rather than giving broad portal permissions or making every change a platform-team ticket. The platform team can provide a reusable module that creates the vault, diagnostic settings, RBAC assignments, private networking, and retention protections. This keeps the process self-service while preserving consistent security controls.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.