Which Azure service provides a secure way for applications running in Azure to access secrets and keys without storing credentials in code?
Azure Managed Identities provide an Azure resource with an automatically managed Azure AD identity, allowing it to authenticate to services like Key Vault or Storage without any credentials embedded in source code. The identity is tied to the Azure resource itself, and Azure handles secret rotation and binding on the resource's behalf. This exactly satisfies the requirement, making it the correct answer for eliminating credential management.
Why this answer
Azure Managed Identities (Option C) provide an automatically managed identity in Azure AD that applications can use to authenticate to any service supporting Azure AD authentication, including Key Vault, without storing any credentials in code. This eliminates the need for developers to manage secrets or keys, as the Azure infrastructure automatically rotates the identity's credentials.
Exam trap
The trap here is that candidates often confuse Azure Key Vault (a storage service) with the authentication mechanism itself, mistakenly thinking Key Vault eliminates the need for credentials in code, when in fact it still requires an identity to access it.
How to eliminate wrong answers
Option A is wrong because Azure Key Vault is a service for securely storing and accessing secrets, keys, and certificates, but it does not itself provide a way for applications to authenticate without credentials—applications still need a separate identity (like a managed identity or service principal) to access Key Vault. Option B is wrong because Azure AD Service Principals with client secrets require storing the client secret (a credential) in application code or configuration, which defeats the purpose of avoiding credentials in code and introduces security risks. Option D is wrong because Azure Certificate Manager is not a real Azure service; the correct service for managing certificates is Azure Key Vault, and certificates still require an identity to access them.