基础平台

最近更新时间: 2026-03-13 09:03:00

用户查询资源列表核心逻辑

  1. 查看有权限的资源列表接口,logic.cam.checkResource 其中调用cam查询用户加入的所有 **tce_project_${ProjectName}**用户组,得到加入的项目列表,tagList,key=tce_sp_project,value=项目名称)。
  2. 如果用户具备相应的权限,根据tagList查出拉取标签资源的接口,将有相关标签的资源同时加载出来qcloud.tag.getResourcesByTags
  3. 根据上述步骤获得的资源情况,根据情况(deny allow)与主账户下的全部资源做筛选,得出应该显示的资源,其中对标签key是tce_sp_project的资源,验证其策略时,tag必须与项目名对应。

添加用户及授权

  1. 项目对应的用户组 tce_project_${项目名}添加用户,再给相应的用户赋予策略权限。
  2. 添加成员页面只能添加未加入项目的用户,已加入项目的成员,只能通过表格进行编辑策略。

    注意:

    策略列表由项目的元数据维护,展示可添加的策略列表。在实际给用户授权时查询cam,若该项目的此策略不存在则新建后再授权给用户。cam 策略名称约定: tce_sp_project_${项目名}_${策略名}, cam 对 tce_project 前缀的策略做特殊处理。在实际展示策略名时去除前缀,即需要列出所有tce_sp_project_开头的策略。

用户查询 location 服务获取产品地域部署信息逻辑

  1. 用户查询地域可用全产品列表。
  2. 如果用户中指定了特定的地域则从全量地域配置中筛选出这些指定的地域。
  3. 根据不同的条件选择并应用相应的策略:
    • 如果 input.ProductID 是特殊产品 ID,则支持“全量”列表。
    • 如果 input.ProductID 为空,则返回全产品列表,并处理地域白名单:
      • 如果不是 CMGT 请求,应用白名单策略(WhitelistStrategy)。
    • 如果是运营端请求,应用部署策略(DeploymentStrategy)。
    • 默认情况下,同时应用部署策略(DeploymentStrategy)和白名单策略(WhitelistStrategy)。
      DeploymentStrategy:根据产品和子产品的部署信息,过滤掉那些没有部署相关产品和子产品的区域和可用区。
      WhitelistStrategy:根据白名单配置过滤和更新区域和可用区的状态。
  • 未配置白名单: 不受白名单约束,全部放通
  • 已配置全量:所有uin都可以访问
  • 已配置生效中:只有在白名单中uin才能访问
  • 已配置无效:所有uin都不能访问
    ==> 等价转换为:
  • 已配置生效中: 不在白名单中的uin, 不能访问
  • 已经配置无效: 所有uin不能访问