禁用Key Vault公网访问后,ADF、Synapse等Azure服务如何获取密钥?
禁用Azure Key Vault公网访问后,四款Azure服务的机密访问方案
当Azure Key Vault禁用公网访问后,需要通过托管标识+虚拟网络(VNet)专用链接/服务端点的组合实现内网访问,以下是针对四款服务的具体可行方案:
Azure Data Factory
- 启用托管标识:在ADF工作区的「身份」选项卡中,启用系统分配托管标识(或用户分配托管标识)。
- 配置Key Vault访问策略:在Key Vault的「访问策略」中添加该托管标识,授予
机密权限(至少勾选Get、List)。 - 建立内网通道:
- 若ADF部署在VNet中,给Key Vault启用对应VNet的服务端点;
- 或创建ADF到Key Vault的专用链接,确保流量完全走Azure内网。
- 配置链接服务:在ADF中创建Key Vault链接服务时,认证方式选择「托管标识」,即可正常读取机密。
Azure Logic Apps
分两种部署类型处理:
消耗型Logic Apps
- 部署到集成服务环境(ISE):将Logic Apps部署到自定义VNet的ISE中,避免公网流量。
- 启用托管标识:在Logic Apps的「身份」选项卡中启用系统分配托管标识。
- Key Vault配置:给Key Vault启用ISE所在VNet的服务端点,同时在访问策略中给托管标识授予机密权限。
- 工作流调用:在工作流中访问Key Vault时,选择「托管标识」认证方式。
标准型Logic Apps
- 部署到VNet:将标准型Logic Apps部署到自定义VNet内。
- 配置权限:启用系统托管标识,在Key Vault访问策略中添加该标识并授予机密权限。
- 内网通道:给Key Vault启用该VNet的服务端点,或创建专用链接保障内网流量。
Azure Synapse Analytics
- 托管标识配置:Synapse工作区默认带有系统托管标识,直接在Key Vault访问策略中添加该标识,授予机密权限。
- 内网访问配置:
- 给Synapse工作区启用VNet注入,纳入自定义VNet;
- 给Key Vault启用该VNet的服务端点,或创建Synapse到Key Vault的专用链接。
- 访问机密:在Synapse管道、笔记本或SQL脚本中,通过托管标识认证访问Key Vault,例如在笔记本中使用
AzureKeyVault链接服务调用机密。
Azure Databricks
- VNet注入部署:创建Databricks工作区时启用VNet注入,将其部署到自定义VNet内。
- 托管标识与权限:启用系统托管标识(或用户分配托管标识),在Key Vault访问策略中授予机密权限。
- 内网通道配置:给Key Vault启用对应VNet的服务端点,或创建Databricks到Key Vault的专用链接。
- 密钥范围配置:在Databricks中创建密钥范围关联目标Key Vault,认证方式选择托管标识;之后在笔记本中通过
dbutils.secrets.get(scope="你的密钥范围", key="机密名称")调用机密。
服务主体失败的常见原因
之前使用服务主体未成功,大概率是以下问题导致:
- 服务主体的访问流量走公网,而Key Vault已禁用公网访问;
- 服务主体未被纳入Key Vault允许的VNet范围;
- 访问策略中未给服务主体配置正确的机密权限(需明确勾选Get、List等必要权限)。
内容的提问来源于stack exchange,提问作者Sumanth Reddy
相关产品推荐
相关产品推荐

