You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory集成Key Vault存储服务账号密码配置异常问询

解决ADF链接服务引用Key Vault后JSON格式异常、敏感信息暴露的问题

嘿,我之前在配置ADF链接服务用Key Vault存本地SQL Server凭证的时候也踩过类似的坑,给你分析下可能的原因和解决办法:

1. 高级选项里的JSON配置不符合ADF规范

当你改用Key Vault引用凭证时,链接服务的JSON结构需要严格遵循ADF的密钥引用格式,不能混合硬编码和密钥引用的配置。你可能是在JSON里保留了原来的userName和password字段,或者connectionString的写法不对。

正确的SQL Server链接服务JSON应该是这样的(重点看connectionString部分):

{
    "name": "YourOnPremSQLService",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "type": "SqlServer",
        "typeProperties": {
            "connectionString": "Server=你的本地SQL服务器地址;Database=目标数据库;User ID=@Secret('sql-service-username');Password=@Secret('sql-service-password');",
            "encryptedCredential": "这里是配置自托管IR后生成的加密凭证,不要手动修改"
        },
        "connectVia": {
            "referenceName": "你的自托管集成运行时名称",
            "type": "IntegrationRuntimeReference"
        }
    }
}

注意:@Secret('secret-name')是ADF引用Key Vault密钥的固定语法,必须严格按照这个格式写,而且要确保Key Vault里已经创建了对应的secret。

2. Key Vault的访问权限配置不到位

如果ADF的托管身份没有Key Vault的Secret读取权限,ADF无法正常获取密钥,就可能会 fallback 到你之前硬编码的凭证,导致JSON里依然显示用户名和密码。

解决步骤:

  • 打开你的Azure Key Vault,进入「访问策略」
  • 点击「添加访问策略」,选择「Secret权限」里的「Get」操作
  • 在「主体」里搜索你的ADF工厂的托管身份(名字就是ADF工厂的名称),添加后保存

3. 编辑链接服务的操作顺序有误

如果你是先填了硬编码的用户名密码,再去高级选项修改JSON,ADF可能会自动保留原来的硬编码字段,导致JSON结构混乱。

正确的操作流程应该是:

  • 创建新的链接服务时,先选择「SQL Server」类型
  • 在「身份验证类型」选择「SQL身份验证」,然后点击「密码」旁边的「从Azure Key Vault中引用机密」
  • 选择你已经创建好的Key Vault链接服务,再选择对应的用户名和密码的secret
  • 最后再去「高级」选项里调整JSON(如果需要的话),不要先填硬编码再改

4. 冗余字段未清理

检查你的链接服务JSON里是否还存在userName、password这类硬编码的字段,如果有,一定要删掉!这些冗余字段会导致ADF解析异常,同时暴露敏感信息。

验证步骤

  1. 保存链接服务后,点击「测试连接」,确认能正常连接到本地SQL Server
  2. 再次查看链接服务的JSON定义,确认没有硬编码的用户名和密码,只有connectionString里的@Secret引用
  3. 去Key Vault的「日志」里查看,确认ADF的托管身份成功执行了GET /secrets/xxx的操作

内容的提问来源于stack exchange,提问作者emie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:42:12