bk-iam-saas icon indicating copy to clipboard operation
bk-iam-saas copied to clipboard

[蓝盾] 权限迁移预研

Open zhu327 opened this issue 2 years ago • 3 comments

zhu327 avatar Nov 28 '22 01:11 zhu327

线上SaaS环境数据备份导入本地, 分析数据:

  1. 有多少用户组策略数据
  2. 有多少用户组定义权限策略数据
  3. 策略的数据上下文怎么待升级的的数据做映射

zhu327 avatar Dec 05 '22 02:12 zhu327

梳理下蓝盾剩余事项没有做完的部分:

  1. 用户组申请页面处理 -- 产品待定
  2. 用户组名称的长度512问题 -- 产品待定
  3. 分级管理员默认有权限的用户组成员同步问题 -- 产品待定
  4. 蓝盾整体对接体验 -- 蓝盾沟通12月底完成
  5. 蓝盾权限迁移 -- 正在进行, 分析数据, 出整体方案

目标:

  1. 年前开始部分灰度
  2. 年后整体迁移

zhu327 avatar Dec 05 '22 06:12 zhu327

预研进度:

  1. 分析数据完成

未处理:

  • 新版操作映射 -- 需要蓝盾产品提供
  • 资源 - 操作列表, 使用什么规则来找到用户组并加入

zhu327 avatar Dec 06 '22 03:12 zhu327

  1. project_views_manager/all_action 是否能平迁到 project_manage
  2. 现有的操作中 'env_node_view', 'env_node_delete', 'env_node_edit', 'env_node_use', 'repertory_edit', 'repertory_use', 'repertory_create', 'repertory_delete', 'env_node_create', 'repertory_view' 在列表中找不到
  3. 按现有用户拥有的实例权限, 最小可匹配到的用户组, 把用户加入其中, 定义最小匹配: 用户组拥有的操作列表必须是用户组操作列表的子集, 用户组操作列表集合与用户拥有的操作列表的差集取最小值, 为最小匹配用户组
    • 如果匹配出没有用户组不满足怎么办, 理论上不应该有? 所以需要决策
    • v0的数据也要考虑, 如果有超出怎么办, 不能只考虑v3的, v3的样本太小

zhu327 avatar Dec 16 '22 02:12 zhu327

  • 迁移后如何快速做数据对比, 校验

  1. 在subject action resource 都有的情况下, 是否能直接走鉴权来判断数据是否正确

  1. 把现有的数据 subject - resource - action_ids 重组为 subject - action - resources的数据, 然后通过 subject - action 查询 rbac_subject_action_group_resource 表数据, 对比resources数据是否能覆盖 还需要剔除已经不存在的用户组

zhu327 avatar Dec 16 '22 06:12 zhu327

权限迁移的粒度, 是否完全按照资源实例的细粒度用户组迁移

zhu327 avatar Dec 16 '22 07:12 zhu327

3. 加入

  1. all_action不能平迁project_manage,应转化为「勾选除project_manage外所有的操作」
  2. env_node等这些线下对齐
  3. v3类的用户组直接平迁,“(类)自定义权限”的,如果完全符合单资源用户组,则转至直接转到单资源用户组,如不符合单资源用户组,则转为项目用户组,不过有些操作组合我们可以让它适度扩权。v0同理

reggieisrunning avatar Dec 19 '22 02:12 reggieisrunning

  • all_action -> 项目下的所有操作 -> 需要提供项目列表
  • project_views_manager -> 不需要处理, 不对应任何新版的操作

zhu327 avatar Dec 19 '22 02:12 zhu327

2月重点跟进下

zhu327 avatar Jan 31 '23 12:01 zhu327

确定的步骤

  1. 分析出v3相关的权限数据
  2. 按项目分析出v0相关的权限数据
  3. 按项目拉取所有资源与用户组数据
  4. 按策略把权限数据中匹配的人加入到用户组中
  5. 完成一个项目调用通知接口通知迁移完成

需要确定的方案:

  1. 相关数据格式怎么提供
  2. 策略怎么报错
  3. 调用方式是怎样的

zhu327 avatar Feb 02 '23 12:02 zhu327

数据容量评估:

  1. 分级管理员数量
  2. 二级管理员数量
  3. 用户组数量

需要评估数据对于权限中心SaaS性能的影响 重要

相对来说SaaS对于数据库相关的优化很少

zhu327 avatar Feb 02 '23 12:02 zhu327

跟进:

拿到CI的用户组权限列表数据, 开始数据分析

  1. 跑出CI现有模型与原来模型不一致的操作
  2. 跑出单个人的权限与用户组不一致的情况, 做一个简要的数据说明, 需要做决策的点

zhu327 avatar Feb 08 '23 06:02 zhu327

跟进

已提供v3权限迁移相关api给到蓝盾

zhu327 avatar Mar 24 '23 06:03 zhu327