用于服务到 Azure 服务的 Azure Key Vault 或托管标识

Azure Key Vault or Managed Identity for Service-To-Azure-Service

既然应用服务可以使用托管标识对其他 Azure 资源进行身份验证,Key Vault 是否提供任何好处(安全性或其他方面)? (例如 azure 存储和 sql)

是否有任何理由使用托管身份访问密钥保管库并获取存储密钥,例如,现在应用服务可以直接使用托管身份与存储对话?

您应始终在可用的情况下使用托管服务标识,但它们并非在所有 Azure 中都普遍存在。维护的支持服务列表 here。请记住,调用服务需要支持使用其托管服务身份进行身份验证,而被调用服务需要能够使用 Azure Active Directory 进行身份验证和授权。

当您拥有不直接支持 AD 身份验证的服务(例如 CosmosDB)时,您仍然需要存储和管理密钥,而 KeyVault 仍然是执行此操作的正确位置。这也适用于某些第三方服务,如 Salesforce、AWS、GCP 等,其中 "federation" 可能不存在。您可能还有其他不想以纯文本形式存储的敏感配置。

请记住,函数 appsettings 现在可以直接引用 KeyVault,从而节省了编写代码和配置来自行管理的开销。 See this link

我还要说的是,应尽可能首选使用托管身份。我看到的主要好处是摆脱了您必须管理的凭据。您在这里将身份验证质询外包给 Microsoft,我会说它工作得很好。

您需要保护、刷新、撤销等的凭据少了一个

我也相信这符合基础架构即代码的精神,您定义自己关心授权并将安全身份验证留给提供商。