我在 VNET 中部署了一个 Azure Key Vault,并且禁用了公共访问。我需要从无服务器的消费 Azure 函数中获取该 KV 的秘密。 问题是,由于此类功能无法部署在 VNET 中,因此我在获取秘密时面临一些网络问题:
该函数具有系统分配的托管标识,并且在该 KV 上具有 Key Vault 管理员角色。我无法使用访问策略。
我的问题是,我是否可以在不升级到 Functions premium 的情况下解决问题以及如何解决。从函数获取 KV 秘密非常常见,我确信有一个解决方案。
正如 Vivek 在评论中所说,使用消费计划不可能从 KV 获取秘密。
我最终将其部署在应用程序服务服务计划中,在与 Key Vault 相同的 VNET 下的子网内配置出站规则,打开函数应用程序的身份并在 Key Vault 中赋予函数“Key Vault 机密官员”角色,并且效果很好。