如何安全为供应商SaaS应用授予Azure Key Vault访问权限(防火墙环境)
为防火墙后的Azure Key Vault授予供应商SaaS应用访问权限的最佳方案
推荐方案按优先级排序
1. Azure AD服务主体+Key Vault访问策略(最安全、最常用)
- 让供应商提供他们SaaS应用对应的Azure AD服务主体ID(如果是多租户应用,提供客户端ID即可)
- 在你的Key Vault防火墙设置里,启用「允许Azure服务和受信任的访问者绕过防火墙」——这个选项是核心,因为服务主体属于Azure信任的身份实体,能绕过防火墙限制
- 配置Key Vault访问策略时,严格遵循最小权限原则:只给供应商需要的权限(比如仅允许
Get机密,不要给List或Set权限) - 验证环节:让供应商用他们的服务主体身份发起测试请求,确认能正常读取目标资源
2. 私有端点+跨网络连接(适合严格合规场景)
- 在你的虚拟网络中创建Key Vault的私有端点,将Key Vault的DNS解析切换为私有IP(避免公网路由)
- 和供应商协商通过VPN或ExpressRoute建立你方VNet与供应商网络的专线连接
- 配置Key Vault防火墙,仅允许来自你方VNet及连接的供应商网络的流量
- 同样给供应商的服务主体分配最小权限的访问策略
- 优势:完全隔离公网访问,符合金融、医疗等高合规要求
3. IP白名单(仅临时场景使用)
- 要求供应商提供SaaS应用的静态公网IP范围(动态IP绝对不能用,否则随时会断连)
- 在Key Vault防火墙的允许列表中添加这些IP
- 配合访问策略给供应商服务主体分配必要权限
- 缺点:IP变更会导致访问中断,长期维护成本高,仅适合短期临时需求
实操经验分享
之前帮某零售客户处理过类似需求:供应商的SaaS是多租户应用,需要读取Key Vault里的API密钥。我们用了第一个方案:
- 让供应商提供了他们应用的客户端ID,确认是在Azure AD上注册的多租户应用
- 在Key Vault里添加该客户端ID的访问策略,只授予
Secret Get权限 - 防火墙开启了信任访问者选项,同时关闭了所有公网IP的直接访问(仅保留内部运维的IP白名单)
- 供应商那边用他们的应用身份调用Key Vault API,一次就成功了,后续半年没出现权限或访问中断问题,完全符合客户的安全要求
内容的提问来源于stack exchange,提问作者barry
相关产品推荐
相关产品推荐

