Azure Data Factory 内联敏感凭证安全存储最佳实践咨询
Azure Data Factory 调用外部API凭证存储最佳实践
你之前对Azure Key Vault的认知有偏差,它不是仅支持存储数据存储类凭证,所有敏感文本类信息(包括用户名、密码、API密钥、私钥、签名密钥等)都可以存储在Key Vault中,这是Azure生态下ADF敏感信息存储的通用标准方案。
具体落地步骤
- 首先为你的ADF实例启用系统分配托管标识,无需额外维护任何认证凭证
- 在Azure Key Vault中为该托管标识授予机密读取权限,仅开放最小必要权限
- 在ADF中创建指向该Key Vault的链接服务,认证方式选择托管标识,整个链接服务配置全程不需要填写任何敏感信息
- 将你的用户名、密码、私钥三个值分别作为机密存入Key Vault,设置好对应的机密名称
- 修改原Web活动的请求体配置,用ADF内置的
@secret()函数动态拉取Key Vault中的机密,拼接后的请求体格式如下:
{ "Username": "@secret('你的Key Vault链接服务名称', '你存用户名的机密名称')", "Password": "@secret('你的Key Vault链接服务名称', '你存密码的机密名称')", "PrivateKey":"@secret('你的Key Vault链接服务名称', '你存私钥的机密名称')" }
该方案的安全优势
- 所有敏感信息全程存储在Key Vault中,ADF的活动配置、运行日志、输出结果中都不会出现明文,ADF运行时会自动完成机密的拉取和填充,敏感字段会全程做掩码处理
- 机密的生命周期管理完全独立于ADF流水线,后续需要更换用户名、密码、私钥时,直接在Key Vault中更新对应机密即可,不需要修改任何ADF流水线配置
- 可通过Key Vault的访问策略、审计日志完整监控机密的调用情况,满足安全合规要求
如果你的团队已经有成熟的CI/CD体系部署ADF,也可以将敏感信息存储在CI/CD工具的机密仓库中,在流水线部署时做变量替换,但这种方案的安全等级、可维护性都不如原生的Key Vault+托管标识方案,优先级更低。
内容的提问来源于stack exchange,提问作者SUMguy
相关产品推荐
相关产品推荐

