限制 Azure Vault 仅对生产中的应用服务进行访问

限制 Azure Vault 仅对生产中的应用服务进行访问

我想限制并仅向生产中的应用程序授予对我的机密的访问权限。即使我启用了防火墙和虚拟网络 > 选定的网络并选择允许 Microsoft 信任的服务

当我尝试访问密钥时返回的是“操作返回了无效状态代码‘禁止’”

虚拟网络

访问策略

答案1

首先,Key Vault 的虚拟网络服务端点功能仍处于预览阶段。强烈建议不要在任何生产场景中使用此功能。

在这种情况下,您可能需要允许来自您的应用程序所在的虚拟网络或公共 IP 地址范围的连接以绕过防火墙。

根据您的图片访问政策,您拒绝所有网络的流量访问。除默认网络外,这些来源之外的任何呼叫者都将被拒绝访问值得信赖的 Microsoft 服务。这意味着来自这些服务的连接将通过防火墙,但这些调用者仍然需要提供有效的 AAD 令牌,并且必须具有执行请求的操作的权限。

此外,应用服务即将推出,我在当前版本中找不到它值得信赖的 Microsoft 服务. 对于应用服务,仅支持 ASE(应用服务环境)实例。

在此处输入图片描述

参考:宣布推出 Key Vault 虚拟网络服务终结点(预览版)

更新1

由此关联您在评论中提供。

如果您想限制对 PaaS 资源的网络访问,您可以确保在特定子网中启用特定服务端点 Microsoft.KeyVault。此外,如果您选择了网络,则允许子网。您可以从此处获取更多详细信息教程

如果您在应用服务中使用 Azure 托管服务标识,则需要确保已添加访问策略,该策略包括你的应用程序的身份. 请参阅

更新2

在这种情况下,如果您只想允许 Web 应用访问密钥保管库,而不是从本地网络访问密钥保管库,则需要将 Web 应用服务的出站 IP 地址添加到密钥保管库防火墙。

答案2

如果您在应用服务中使用托管服务标识 (MSI),则可以在 Key Vault 策略中授予对该 Azure AD 标识的访问权限,而不必在应用中保留硬编码的凭据。https://azure.microsoft.com/sv-se/resources/samples/app-service-msi-keyvault-dotnet/

关于限制网络/端点对密钥保管库的访问,Nancy 的正确答案是使用“Microsoft Trusted Services”。根据https://docs.microsoft.com/en-us/azure/key-vault/key-vault-overview-vnet-service-endpoints应用服务是 Key Vault 的受信任服务。

相关内容