- 场景
在Dataphin中, 经常遇到需要连接外部服务来实现一些特定的功能, 如连接外部FTP检测FTP服务的连通性. 实现此类功能, 一般是使用shell或者Python代码任务. 由于外部服务大多都有访问鉴权, 就需要在shell/Python代码中向服务端发送账号密码(密钥),如何在shell或者Python任务中安全的使用账号密码?
- 解决方案及功能
账号密码全局变量
使用流程
- 在"规划->公共定义->全局变量" 中, 点击"新建全局变量"
- 变量类型选择"账号密码"
- 默认开启 "权限管控", 开启后引用该变量之前, 需要提前申请权限
- 默认开启"代码审核", 引用该变量的代码, 每次提交时, 均需要指定的代码审核人来做审核, 审核通过后才能成功提交.
- 账号密码全局变量创建后, 查看其取值时, 取值展示为 "********"
- 引用账号密码全局变量, 在任务参数列表中, 参数值展示为 "******". 点击"运行", 系统不自动填充运行值, 防止用户编写代码获取变量取值.
- 提交时, 需要指定的审核人来审核代码内容, 确认代码中没有任何不安全的使用方式.
安全性解析
使用账号密码全局变量的安全保障措施有:
- 查看或编辑账号密码全局变量, 变量值展示为密文
- 引用账号密码全局变量需要申请使用权限, 可以预防不正当的使用.
- 引用了账号密码全局变量的代码, 每次提交都需要走一遍代码审核, 审核人会查看代码, 确认代码中是否有账号密码泄露风险.
适用场景
账号密码变量适用于以下场景
- 需要使用账号密码连接外部服务, 有多个任务, 但每一个的处理逻辑不尽相同, 需要集中维护账号密码.