Skip to content

[v3/v4]自定义模型命名冲突导致 IAM 权限注册失败的规避方案 #8577

@elizabevil

Description

@elizabevil
背景
  • 用户创建了名为 ‘服务 ’ 的模型,与CMDB内置'服务'冲突

  • CMDB版本进行升级中的的 数据迁移环节,向IAM中注册信息时IAM接口报错

  • IAM错误信息为服务实例创建、服务实例删除、服务实例编辑 已存在(即内置权限模型名称)

    • action name xxx already exist 
      
  • 部分代码

    • EditBusinessServiceInstance:         "服务实例编辑" 与
      ActionNameCN: fmt.Sprintf("%s%s%s", obj.ObjectName, "实例", "编辑")	
      
    • ActionNameCN 由obj.ObjectName参与组成

      • obj.ObjectName = "服务" 时,与 CMDB 内置模型权限名称冲突
需求

v3(临时方案)

  • 升级部署阶段提供前置校验脚本

v4 (根本解决)

  • 模型以bk_obj_id作为唯一标识
    • 所有模型依赖(权限、关联关系等)均使用该字段
  • 模型展示名称仅作为 UI 展示字段
    • 满足部分用户 可修改预置模型名称 的需求
    • 从根源上规避名称冲突问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions