一、场景说明
下面以资源组、在线服务为例,假设主账号企业下有两个团队使用 TI-ONE 产品,分别有两个资源组,两个在线服务和两个 CFS。对应的信息如下:
| 资源组 id | 在线服务 | 所属标签 | 所属组织 |
| rsg-wwb2hgrs | llm_text | team:llm_text | llm_text 团队 |
| rsg-zbqrjvlz | llm_picture | team:llm_picture | llm_picture 团队 |
二、预期效果
资源组和在线服务等资源均实现子用户之间的资源隔离。
1. 资源组
使用管理员账号查看上海地域资源组列表,能够查看全部资源组。
使用 llm_text_user 账号查看上海地域资源组列表, 只能查看绑定 team:llm_text 标签的资源组。
2. 在线服务
使用管理员账号查看上海地域在线服务列表,能够查看全部在线服务。
使用 llm_text_user 账号查看上海地域在线服务列表, 只能查看绑定 team:llm_text 标签的在线服务。
三、确认接口支持资源级权限控制
实现标签授权的前提是接口需支持资源级权限控制。目前,TI-ONE 平台的主要资源均已支持资源级授权粒度,所有支持资源级授权的业务接口清单,可参考文档:支持 CAM 的业务接口。
四、已创建子用户及授权
提前为 llm_text 团队创建 CAM 子用户 llm_text_user 并授权, llm_picture 团队创建 CAM 子用户 llm_picture_user 并授权。可参考文档:新建子用户。
五、第一步:新建标签并为资源添加标签
该步骤主要为后续权限配置准备标签规则,以实现资源的分类。
1. 新建标签
进入 标签列表页面,单击新建标签,输入标签键和标签值,单击确定即可创建成功。
2. 给资源组添加标签
在 资源组管理 页面选择要打标签的资源组,单击编辑,在标签中选择之前建立的 team 标签键,分别绑定对应标签值,单击确定即可。
3. 给在线服务添加标签
在模型服务-在线服务页面选择要打标签的服务,单击编辑标签,在标签中选择之前建立的 team 标签键,分别绑定对应标签值,单击确定即可。
六、第二步:新建自定义策略
用户可以通过编写自定义策略满足自身的权限定制需求,该步骤中新建自定义策略用于确保不同团队的子账号只能访问其被授权的特定资源。
TI-ONE 平台的接口在权限控制粒度上存在差异:部分接口支持基于标签的资源级鉴权,部分接口仅支持接口级的通用权限控制。同时,平台在执行 AI 任务时,还依赖其他云产品服务(如查询 CFS 文件存储实例),需进行相应的服务授权。因此,为实现 TI-ONE 产品资源隔离,需要配置以下三条策略:
| 序号 | 策略名称 | 分类 | 策略描述 |
| 1 | Policy_llm_text_tag | 自定义策略 | TI 支持标签资源粒度接口策略 |
| 2 | Policy_tione_required | 自定义策略 | TI 各个功能依赖其他云产品接口的策略 |
| 3 | QcloudTIONEOperationalPrecondition | 预设策略 | TI 支持接口级鉴权预设策略 |
1. 新建自定义策略 Policy_llm_text_tag
进入 访问管理策略 页面,单击新建自定义策略。
选择按标签授权。
编辑策略选择可视化策略生成器。
·服务(必选):选择要授权的产品:腾讯云大模型训推平台 TI-ONE (tione)。
·操作(必选):选择你要授权的操作, 这里默认选“全部操作 (tione:*)”。
·选择标签(必选) :选择前面第一步创建的 team 标签键, llm_text 标签值。
·选择条件键:默认选择 resource_tag 条件运算符为或。默认不勾选 request_tag。
·是否授予不支持标签的接口“resource”(必选): "*" 权限: 选择 否。
注意:操作中包含该服务所有接口,你可以通过“是否支持按标签授权”筛选查看接口是否支持按标签授权。
单击下一步, 进入关联用户/用户组/角色页面。
策略名称由控制台自动生成,默认为 "policygen" ,后缀数字根据创建日期生成。这里策略名称修改为 Policy_llm_text, 单击完成。
2. 新建自定义策略 Policy_tione_required
进入 访问管理策略 页面,单击新建自定义策略。选择按策略语法授权。
选择空白模板,单击下一步。
将策略名称修改为 Policy_tione_required, 把策略内容修改为如下内容,单击完成。该策略是基于预设策略 QcloudTIONEFullAccessContainMultiservice 进行修改的,删除除 action 中: "tione:*" 以及财务付费策略: "finance:trade",其他 action 可据附录:接口说明的表格按需调整。默认授予所有资源权限:"resource": "*",如需按标签划分资源权限,请使用自定义策略按标签授权。
{ "statement": [ { "action": [ "cam:GetRole", "cam:ListAttachedRolePolicies", "vpc:DescribeVpcEx", "vpc:DescribeSubnetEx", "vpc:DescribeNetworkAcls", "vpc:DescribeSecurityGroupPolicies", "cls:DescribeLogsets", "cls:DescribeTopics", "tcr:DescribeInstances", "tcr:DescribeNamespaces", "tcr:DescribeRepositories", "tcr:DescribeRepositoryOwnerPersonal", "tcr:DescribeRepositoryFilterPersonal", "tcr:DescribeNamespacePersonal", "tcr:DescribeInternalEndpoints", "monitor:GetMonitorData", "cos:GetService", "cos:GetObject", "cos:GetBucket", "cos:HeadObject", "cos:OptionsObject", "cos:PutObject", "tag:DescribeTagKeys", "tag:DescribeTagValues", "tag:AttachResourcesTag", "tag:DetachResourcesTag", "tag:GetResources", "tag:DescribeEffectivePolicy", "cfs:DescribeCfsFileSystems", "emr:DescribeInstances", "cvm:DescribeAddresses", "cvm:DescribeInstances", "emr:DescribeInstancesList", "cfs:DescribeMountTargets", "goosefs:DescribeClusters", "goosefs:DescribeNamespaces", "goosefs:DescribeFileSystems", "cvm:DescribeSecurityGroupPolicys", "clb:DescribeListeners", "clb:DescribeLoadBalancers", "cam:ListMaskedSubAccounts", "monitor:DescribeAlarmPolicies", "vpc:DescribeSecurityGroupLimits", "cam:ListGroupsForConsole" ], "effect": "allow", "resource": "*" } ], "version": "2.0"}
七、第三步:策略关联子用户
该步骤主要用于将上述步骤创建完成的自定义策略和预设策略,授权给相关联的子用户。
在 用户列表 页面找到要关联策略权限的子用户 llm_text_user,单击右侧的授权按钮;
选择 Policy_llm_text_tag, QcloudTIONEOperationalPrecondition 和 Policy_tione_required,单击完成即可。
如需关联用户组,也可以在 用户组列表 页面找到要关联策略权限的用户组,点击进入用户组详情页,在下方选择关联策略,勾选上述三种策略,单击确定即可。
八、第四步:创建标签策略
该步骤主要用于实现标签的自动化管理,根据用户的标签,在操作产品过程中自动关联该用户的标签键值。通过标签策略实现新建资源、修改资源自动关联标签。 具体配置参考标签产品文档 创建标签策略。
注意:说明:
注意:标签继承功能已上线,当开启标签继承,两个资源存在主从关联关系,主资源的标签变更会自动同步到从属资源,详见 关联资源标签继承。
注意:该功能属于公测阶段,如有测试需求请联系产品经理开启白名单。
九、第五步:验证
该步骤主要用于校验以上步骤是否生效。
用关联策略的子用户 llm_text_user 身份登录 TI-ONE 控制台, 子用户仅能查看和操作关联标签 team:llm_text 的资源。符合预期效果。
针对 llm_picture 团队授权也参考上述的授权方法。
十、CFS 等存储资源隔离说明
对于 CFS 存储资源隔离,存在两种实现方式,请根据实际使用场景来选择隔离方式。
方式一:CFS 实例隔离
当不同团队需要较高级别的数据安全性与性能隔离,可在 CFS 实例级进行资源隔离。具体操作方式是:为每个团队创建独立的 CFS 文件系统实例,然后通过标签授权功能,为每个团队的子账号授予仅能访问其对应标签的 CFS 实例的权限。详细操作请参考 访问管理-通过标签授权创建自定义策略。
方式二:CFS 目录级挂载权限控制
当多个团队需要共享同一个 CFS 实例,但要求数据目录互相隔离时,可通过目录级权限进行控制。具体操作方式是:在同一个 CFS 实例中为不同团队创建独立的根目录,在 TI-ONE 平台配置数据源时,为每个团队指定其有权访问的挂载目录。详细操作请参考 使用数据源功能实现存储的目录级权限控制。
注意事项
注意:1. 子账号使用自定义策略时,如果在平台上发现使用某个功能报接口权限不足,这种情况一般是因为产品迭代有新的云产品接口调用,可以按照报错的指引,在自定义策略中新增该接口权限。账号相关权限请参见 访问管理-用户相关问题。
注意:2. 如果用户是资源创建者,则不受标签规则的限制,请参考创建者标签概述文档。
附录:接口说明
Policy_tione_required 策略接口说明
注意:说明:
注意:其中加粗的字段,需要重点关注授权范围,请谨慎操作,必要时可使用标签控制授权范围。
| 分类 | 接口名称 | 接口描述 |
| cam | GetRole | 查询用户组详情 |
| cam | ListAttachedRolePolicies | — |
| cam | ListMaskedSubAccounts | 拉取子账号列表(敏感信息打码) |
| cam | ListGroupsForConsole | 控制台查看用户组列表 |
| cfs | DescribeCfsFileSystems | 查询文件系统 |
| cfs | DescribeMountTargets | 查询文件系统挂载点 |
| clb | DescribeListeners | 查询应用型负载均衡监听器列表 |
| clb | DescribeLoadBalancers | 获取负载均衡实例列表 |
| cls | DescribeLogsets | 获取日志集列表 |
| cls | DescribeTopics | 批量获取日志主题 |
| cos | GetService | 拉取存储桶列表 |
| cos | GetObject | 下载对象 |
| cos | GetBucket | 列出存储桶中的对象 |
| cos | HeadObject | 用于判断对象是否存在,存在时返回基本信息 |
| cos | OptionsObject | 用于跨域资源共享(CORS)的预检(Preflight)请求 |
| cos | PutObject | 上传对象 |
| cvm | DescribeAddresses | 查询 EIPV3 |
| cvm | DescribeInstances | 查看实例列表 |
| cvm | DescribeSecurityGroupPolicys | 查询安全组规则 |
| emr | DescribeInstances | 查询 EMR 实例 |
| emr | DescribeInstancesList | EMR 集群实例列表查询 |
| goosefs | DescribeClusters | 列出所有 GooseFS 集群 |
| goosefs | DescribeNamespaces | 列出全部命名空间 |
| goosefs | DescribeFileSystems | 列出所有的文件系统 |
| monitor | GetMonitorData | 拉取监控数据 |
| monitor | DescribeAlarmPolicies | 告警2.0策略列表 |
| tag | DescribeTagKeys | 查询标签键 |
| tag | DescribeTagValues | 查询标签值 |
| tag | AttachResourcesTag | 资源批量关联标签 |
| tag | DetachResourcesTag | 解绑批量资源关联的标签 |
| tag | GetResources | 查询绑定了标签的资源列表 |
| tag | DescribeEffectivePolicy | 查询目标节点的有效策略 |
| tcr | DescribeInstances | 查询实例信息 |
| tcr | DescribeNamespaces | 查询命名空间信息 |
| tcr | DescribeRepositories | 读取镜像仓库 |
| tcr | DescribeRepositoryOwnerPersonal | 查询用户创建的镜像仓库 |
| tcr | DescribeRepositoryFilterPersonal | 获取满足输入搜索条件的个人版镜像仓库 |
| tcr | DescribeNamespacePersonal | 查询个人版命名空间信息 |
| tcr | DescribeInternalEndpoints | 查询实例内网访问链路信息 |
| vpc | DescribeVpcEx | 查询私有网络列表 |
| vpc | DescribeSubnetEx | 查看子网列表 |
| vpc | DescribeNetworkAcls | 查询网络 ACL 列表 |
| vpc | DescribeSecurityGroupPolicies | 查询安全组规则 |
| vpc | DescribeSecurityGroupLimits | 查询用户安全组配额 |