如何在ADF Web活动中安全使用Key Vault密钥(含Databricks集群重启)
解决Azure数据工厂中从Key Vault取令牌并安全用于Web活动的问题
前提准备
- 已在Azure Key Vault中存储Databricks个人访问令牌(PAT),密钥类型设为
Secret - Azure数据工厂已启用系统托管身份
步骤1:配置Key Vault权限给ADF托管身份
- 打开目标Key Vault,进入访问策略页面
- 添加新访问策略:
- 权限选择:机密类别下勾选
Get - 选择主体:搜索你的ADF名称(系统托管身份),添加后保存
- 权限选择:机密类别下勾选
步骤2:创建ADF与Key Vault的链接服务
- 在ADF Studio中,进入管理→链接服务→新建
- 搜索并选择Azure密钥保管库,点击继续
- 配置链接服务:
- 订阅、Key Vault名称选择对应资源
- 认证方法选系统托管身份
- 测试连接通过后保存(命名示例:
LS_AzureKeyVault)
步骤3:用密钥保管库查找活动获取令牌
- 新建管道,添加密钥保管库查找活动(通用类别下)
- 配置活动:
- 链接服务选择刚才创建的
LS_AzureKeyVault - 机密名称填写Key Vault中存储Databricks令牌的机密名
- 链接服务选择刚才创建的
- 该活动的输出会返回令牌,但ADF会自动标记为敏感数据,运行日志中不会暴露实际值
步骤4:配置Web活动调用Databricks重启API
- 在管道中添加Web活动,设置为密钥保管库查找活动的后续步骤
- 基本设置配置:
- URL:填写Databricks重启API地址,格式为
https://<你的Databricks工作区域名>/api/2.0/clusters/restart - 方法:选择
POST
- URL:填写Databricks重启API地址,格式为
- 授权配置:
- 类型选
Bearer - 令牌处用动态内容,输入表达式:
@activity('密钥保管库查找活动名称').output.value
- 类型选
- 正文配置:
- 选
JSON格式,输入集群ID:{ "cluster_id": "<你的Databricks集群ID>" }
- 选
- 安全注意:
- 通过动态内容引用的令牌会被ADF自动识别为敏感数据,日志中Authorization头值会显示为
Bearer ***,不会泄露实际令牌 - 绝对禁止硬编码令牌到Web活动中
- 通过动态内容引用的令牌会被ADF自动识别为敏感数据,日志中Authorization头值会显示为
验证日志安全性
运行管道后查看Web活动日志:
- 输入部分的Authorization头仅显示
Bearer *** - 输出部分也不会出现令牌实际值,完全避免敏感数据暴露
内容的提问来源于stack exchange,提问作者Divzz
相关产品推荐
相关产品推荐

