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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions