权限管理
CodeArts权限管理是在统一身份认证服务(IAM)与CodeArts鉴权管理能力基础上,打造的细粒度权限管理功能,帮助用户便捷灵活的对租户下的IAM用户设定不同的操作权限。
CodeArts的权限管理包括“IAM细粒度权限”和“CodeArts鉴权管理”两种能力。
- IAM细粒度权限:基于IAM系统策略的授权,可以通过用户组功能实现对IAM用户的授权。
- CodeArts鉴权管理:CodeArts三层权限模型,可以根据角色实现对IAM用户的操作权限管理。
IAM细粒度权限
默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
表1展示了CodeArts各服务支持的所有系统策略。
服务 |
系统角色/策略名称 |
描述 |
类别 |
策略详情 |
---|---|---|---|---|
CodeArts控制台 |
DevCloud Console FullAccess |
软件开发生产线控制台全部权限。 |
系统策略 |
|
DevCloud Console ReadOnlyAccess |
软件开发生产线控制台只读权限。 |
系统策略 |
||
需求管理 |
ProjectMan ConfigOperations |
软件开发生产线项目配置的所有权限。 |
系统策略 |
参考需求管理云服务级权限。 |
流水线 |
CloudPipeline Tenant Extensions FullAccess |
流水线服务租户扩展插件全部权限。 |
系统策略 |
参考流水线租户级权限。 |
CloudPipeline Tenant Pipeline Templates FullAccess |
流水线服务租户流水线模板全部权限。 |
系统策略 |
||
CloudPipeline Tenant Rule Templates FullAccess |
流水线服务租户策略设置全部权限。 |
系统策略 |
||
CloudPipeline Tenant Rules FullAccess |
流水线服务租户规则设置全部权限。 |
系统策略 |
||
性能测试 |
CodeArts PerfTest Administrator |
性能测试服务管理员,拥有该服务下的所有权限。 |
系统角色 |
参考性能测试权限管理。 |
CodeArts PerfTest Developer |
性能测试服务开发人员,拥有该服务下当前用户的所有权限,但无权操作租户下其他用户的资源。 |
系统角色 |
||
CodeArts PerfTest Operator |
性能测试服务操作员,拥有该服务下的只读权限。 |
系统角色 |
||
CodeArts PerfTest Resource Administrator |
性能测试服务测试资源管理员,拥有该服务下测试资源相关的所有权限。 |
系统角色 |
||
CodeArts PerfTest Resource Developer |
性能测试服务测试资源开发者,拥有该服务下测试资源查看和使用权限,但无基础设施创建、更新、删除权限。 |
系统角色 |
CodeArts鉴权管理
CodeArts提供三层权限模型:租户级权限、项目级权限、实例级权限。
三层权限模型的作用范围:租户级权限>项目级权限>实例级权限。
当三层模型中的权限配置发生冲突时,权限作用的优先级为:实例级权限>项目级权限>租户级权限。
- 租户级权限
针对当前租户下所有的CodeArts项目生效,包括项目创建/删除/更改权限。
拥有Tenant Administrator权限的用户默认拥有租户级权限,也可以给非Tenant Administrator用户授予创建项目权限(授权方法可参考设置CodeArts项目创建者)。
- 项目级权限
针对当前项目生效,包括项目编辑/归档,角色和权限设置,成员设置等通用权限;也支持配置各服务的操作权限,如需求管理的原始需求创建/提交/复制权限,代码仓的提交/合并权限等,权限对服务的所有实例都生效。
CodeArts提供基于角色的权限管理(RBAC)。默认情况下,新创建的用户没有任何权限,需要将其加入项目,并给用户配置角色,才能使得用户获得角色所对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
CodeArts中内置了多种系统角色,同时支持自定义角色,用户可以根据自己的需要创建新的角色,并为其配置需求管理、软件建模、代码托管、代码检查、编译构建、制品仓库、部署、测试计划、流水线等服务的操作权限。
表2 CodeArts项目内置角色定义 角色名称
角色说明
项目管理员
项目管理员是项目的最高负责人,他/她可以管理项目的所有设置和成员,包括创建、删除、修改项目,以及分配和撤销其他角色的权限。
项目经理
项目经理是项目的主要负责人,他/她可以管理项目的需求、计划、进度、风险等方面,以及协调项目团队的工作。
产品经理
产品经理是负责项目产品设计和规划的角色,他/她可以定义产品需求、原型、用户故事等方面,并且与开发人员和测试人员进行沟通和协作。
测试经理
测试经理是负责项目测试工作的角色,他/她可以管理测试计划、测试用例、测试执行、缺陷跟踪等方面,以及指导和监督测试人员的工作。
系统工程师
系统工程师是负责项目系统架构和基础设施的角色,他/她可以设计、搭建、维护项目所需的服务器、网络、数据库等资源。
Committer
Committer是负责审核并合并开发人员提交的代码的角色。
开发人员
开发人员是负责项目开发工作的角色,他/她可以编写、提交、合并、分支等代码,以及创建和运行流水线、构建等服务。
测试人员
测试人员是负责项目测试工作的角色,他/她可以执行测试用例、报告缺陷、验证修复等操作。
参与者
参与者可以参与项目业务,可以创建工作项。
浏览者
浏览者只能查看项目里的内容,不能操作任何服务。
- 实例级权限
针对项目中的某个代码仓或某条流水线等实例生效,例如:流水线实例的查看/执行/更新/删除权限等。
实例级权限由该实例的创建者配置。CodeArts支持在以下服务中配置实例级权限。
表3 CodeArts实例级权限 服务
实例
配置方法
代码托管
代码仓库
流水线
流水线
编译构建
构建任务
部署
应用