如果您需要对已购买的软件开发生产线资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制资源的访问。
通过IAM,您可以在帐号中给员工创建IAM用户,并授权控制员工对资源的访问范围。例如对于负责软件开发的员工,您希望他们拥有软件开发生产线控制台的使用权限,但是不希望他们拥有购买开通软件开发生产线等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能查看软件开发生产线资源使用量,但是不允许购买开通软件开发生产线的权限,控制开发人员对软件开发生产线资源的使用范围。
如果帐号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用软件开发生产线的其它功能。
IAM是提供权限管理的基础服务,无需付费即可使用,您只需要为您帐号中的资源进行付费。关于IAM的详细介绍,请参见IAM帮助中心。
软件开发生产线控制台权限
默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
软件开发生产线部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问软件开发生产线时,需要先切换至授权区域。
软件开发生产线控制台权限采用细粒度授权方式(即策略)。
策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对软件开发生产线服务,管理员能够控制IAM用户仅能对软件开发生产线资源进行指定的管理操作。
如下表所示,包括了软件开发生产线控制台的所有系统权限。
表 软件开发生产线控制台系统权限
| 策略名称 | 描述 | 类别 |
|---|---|---|
| DevCloud Console FullAccess | 软件开发生产线控制台管理员权限,拥有该权限的用户可以购买软件开发生产线资源。 | 系统策略 |
| DevCloud Console ReadOnlyAccess | 软件开发生产线控制台只读权限,拥有该权限的用户仅能查看软件开发生产线资源使用情况。 | 系统策略 |
下表列出了软件开发生产线控制台常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。
表 常用操作与系统权限的关系
| 操作 | DevCloud Console FullAccess | DevCloud Console ReadOnlyAccess |
|---|---|---|
| 在控制台查看需求管理资源列表详情 | √ | √ |
| 在控制台查看代码托管资源列表详情 | √ | √ |
| 在控制台查看编译构建资源列表详情 | √ | √ |
| 在控制台查看代码检查资源列表详情 | √ | √ |
| 在控制台查看测试计划-测试管理资源列表详情 | √ | √ |
| 在控制台查看制品仓库资源列表详情 | √ | √ |
CodeArts权限模型
CodeArts提供三层权限模型:租户级权限、项目级权限、实例级权限。
三层权限模型的作用范围:租户级权限>项目级权限>实例级权限。
当三层模型中的权限配置发生冲突时,权限作用的优先级为:实例级权限>项目级权限>租户级权限。
租户级权限
针对当前租户下所有的项目生效,包括项目创建/删除/更改权限、项目空间创建权限。
拥有Tenant Administrator权限的用户默认拥有租户级权限,也可以给非Tenant Administrator用户授予创建项目权限(授权方法可参考)。
项目级权限
针对当前项目生效,包括项目编辑/归档,角色和权限设置,成员设置等通用权限;也支持配置各服务的操作权限,如需求管理的原始需求创建/提交/复制权限,代码仓的提交/合并权限等,权限对服务的所有实例都生效。
CodeArts提供基于角色的权限管理(RBAC)。默认情况下,新创建的用户没有任何权限,需要将其加入项目,并给用户配置角色,才能使得用户获得角色所对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
CodeArts中内置了8种涵盖IPD、DevOps等研发流程的系统角色,同时支持自定义角色,用户可以根据自己的需要创建新的角色,并为其配置不同的权限。
表 CodeArts项目内置角色定义
| 角色名称 | 角色说明 |
| 项目管理员 | 项目管理员是项目的最高负责人,他/她可以管理项目的所有设置和成员,包括创建、删除、修改项目,以及分配和撤销其他角色的权限。 |
| 项目经理 | 项目经理是项目的主要负责人,他/她可以管理项目的需求、计划、进度、风险等方面,以及协调项目团队的工作。 |
| 测试经理 | 测试经理是负责项目测试工作的角色,他/她可以管理测试计划、测试用例、测试执行、缺陷跟踪等方面,以及指导和监督测试人员的工作。 |
| 运维经理 | 运维经理负责项目运维工作,管理项目的部署、监控、故障定位排除等。 |
| 开发人员 | 开发人员是负责项目开发工作的角色,他/她可以编写、提交、合并、分支等代码,以及创建和运行流水线、构建等服务。 |
| 测试人员 | 测试人员是负责项目测试工作的角色,他/她可以执行测试用例、报告缺陷、验证修复等操作。 |
| 参与者 | 参与者可以参与项目业务,可以创建工作项。 |
| 浏览者 | 浏览者只能查看项目里的内容,不能操作任何服务。 |
实例级权限
针对一个代码仓或一条流水线等实例生效,例如:流水线实例的查看/执行/更新/删除权限等。
实例级权限由该实例的创建者配置。