子产品适配
直连改造
- 目前涉及的数据源类型:hive、spark、trino的meta数据源,子产品功能大类包括:临时运行的简单查询、数据导出、数据预览、数据同步(flink、通过hdfs读取数据文件),以上功能大类通过jdbc直连数据库,可以通过相应的用户替换改造控制数据权限
- 前提:子产品需要先支持trino的ssl适配:【离线、指标、标签、资产质量、api】
初始化(hive、spark、trino)
注意:https://dtstack.yuque.com/docs/share/71a70b02-d4a4-4727-9781-719dc826232c?#GLGB 《子产品数据安全适配及排期》的初始化策略梳理sheet页
内容:
- 数据安全默认将调度任务自动替换为ldap账号密码,需要通过建立权限策略来控制数据访问权限,如果不配置则默认无权限,本期对【离线、指标、标签】根据角色数据权限进行初始化建立策略,策略建立后对所有子产品生效
- 数据安全权限控制对hive、sparkthrift、trino的meta数据源生效
- 【离线(hive、sparkthrift、trino)、指标(trino)、标签(trino)】由数据安全进行初始化响应
- 【资产质量(hive、sparkthrift、trino)、实时(hive)、api(trino)】无需进行初始化,但当数据安全配置了meta数据源相关的权限策略之后,当资产质量、实时、api引入对应meta数据源时,是对资产质量、实时、api生效的
- 初始化及创建原则
- 若创建失败,则不为当前用户分配任何role和策略;
- 若没有配置任何role和策略的用户,则默认没有任何权限;
- 默认策略不允许编辑,只允许查看 备注:质量任务plugininfo自己传了账号密码,调度不做账号密码替换,对质量的任务不生效,质量只需要测数据预览部分、数据库表的列表、下拉列表
子产品响应点(根据角色处理)
- 创建项目时
- 删除项目时
- 指定用户角色时(添加/编辑角色/指定项目所有者/人员交接时)
- 移除用户时
- 指定用户组角色时(添加/编辑角色/人员交接时)
- 移除用户组时
初始化策略信息
- 策略名称为「schema策略对象租户id」
- role名称为「项目idbatch(子产品名称)租户id」
- 超管、租户所有者、租户管理员的role名称为「租户id_租户id」
数据安全侧处理逻辑
【增加逻辑】: 1.判断是否已存在默认的role,若无,自动创建一个role,将对应的用户添加进去; 2.判断是否已存在默认的策略,若无,自动创建一个策略,选择刚才创建的role,并分配此Hive库的ALL权限;
【删除逻辑】:自动删除对应的role、策略 注意: 1.如果策略包含其他role,则解绑该role与当前策略的关系 2.该role在其他策略中被应用,则解绑该role与当前策略的关系