
# 使用CodeArts Build前的角色权限配置
#### 背景信息
- 数据安全：权限管理可以防止未经授权的用户访问敏感信息，避免数据泄露、篡改或滥用。例如，企业财务数据只能由财务人员和管理员访问，普通员工无权查看。
- 防止误操作：不同用户的权限范围不同，权限管理能限制用户只能操作其职责范围内的功能，减少因误操作导致的系统故障或数据错误。
- 责任划分与审计：通过权限管理，可以明确不同用户的职责，方便追踪操作记录，便于后续审计或问题溯源。例如，系统日志可记录谁在何时修改了哪些数据。
- 提升管理效率：权限管理能简化用户权限分配流程，避免"一刀切"的全权限开放，减少因权限混乱导致的管理成本。例如，通过角色（Role）划分权限，批量分配给同一类用户。
- 符合法规要求：许多行业（如金融、医疗）有严格的合规要求（如GDPR、HIPAA），权限管理是满足这些法规的必要措施，避免因违规导致法律风险。
- 支持多层级协作：在大型系统中，权限管理可以支持多层级协作，例如：项目管理员、产品经理、开发人员、测试人员、浏览者等，不同层级拥有不同权限，确保系统高效且安全地运行。 权限管理是产品设计中不可或缺的一部分，它平衡了功能性与安全性，是保障系统稳定运行的基础。
  
 
#### 方案概述
本示例介绍在传统企业里管理编译构建服务时，如何基于角色进行权限配置以便在自定义工作流中进行更精细化权限管控。
表1本示例涉及的相关人员 
| **项目成员** | **项目角色** | **工作职责**                      |
|:---|:---|:---|
| Sarah    | 项目经理     | 负责项目的创建和项目团队的组建，以及成员角色权限相关配置。 |
| Jack     | 运维经理     | 构建工程师，负责构建任务管理工作，使其规范化。       |
| Maggie   | 开发人员     | 负责代码开发和构建调试。                  |
| Mary     | 测试人员     | 负责构建任务的测试验证。                  |
| Lucy     | 浏览者      | 查看构建任务构建信息。                   |
   
#### 前提准备
- 项目负责人已注册华为账号并开通华为云。详细操作指导请参见[账号中心-账号注册](https://support.huaweicloud.com/usermanual-account/account_id_001.html)。
- 项目负责人已给项目成员创建IAM用户。详细操作指导请参见[创建IAM用户](https://support.huaweicloud.com/usermanual-iam/iam_02_0001.html)。
- 购买CodeArts专业版及以上套餐或购买CodeArts Build专业版套餐，二者选其一即可。
  - 购买CodeArts套餐
    1. 进入[购买CodeArts套餐页面](https://console.huaweicloud.com/devcloud/?#/period-new/apply?version=combo_free&package_type=combo)。
    
    2. 选择"专业版"，购买人数保持默认值，购买时长选择"1个月"，勾选同意声明，单击"下一步"。
    
    3. 确认订单内容，单击"去支付"。
    
    4. 根据页面提示完成支付。
    
    5. 开通成功，返回"华为云码道"页面，列表中显示已开通套餐记录。
     
  
  - 购买CodeArts Build套餐
    1. 进入[购买CodeArts Build套餐页面](https://console.huaweicloud.com/devcloud/?region=cn-north-4#/subscribe/apply?packageType=codearts_build)。
    
    2. 选择"专业版"，购买人数保持默认值，购买时长选择"1个月"，勾选同意声明，单击"下一步"。
    
    3. 确认订单内容，单击"去支付"。
    
    4. 根据页面提示完成支付。
    
    5. 开通成功，返回控制台的"编译构建"页面，列表中显示已开通套餐记录，"状态"是"正常"表示套餐开通成功。
     
   
 
#### 前提条件
- 项目经理参考[新建CodeArts项目](https://support.huaweicloud.com/usermanual-devcloud/codearts_01_0027.html)，创建Scrum型项目"test"。
- 项目经理参考[按模板新建代码仓库](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0077.html)，创建模板为"Java Maven Demo"的代码仓"test_repo"。
  创建代码仓库需具备CodeArts Repo服务的操作权限，具体操作可参考[授权使用CodeArts Repo服务](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0132.html)。如果已开通CodeArts套餐则无需再单独开通CodeArts Repo服务。
  
- 项目经理参考[新建构建任务（图形化构建）](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0000.html)，创建代码源为"test_repo"构建任务名称为"test_task"的构建任务。
 
#### 添加项目成员
由项目经理"Sarah"为团队成员创建账号，添加至项目中。可批量添加项目成员，详情参考[如何给多个用户开通账号使用CodeArts服务？](https://support.huaweicloud.com/projectman_faq/projectman_faq_0001.html#section1)
| **项目成员** | **项目角色** | **工作职责**                      |
|:---|:---|:---|
| Sarah    | 项目经理     | 负责项目的创建和项目团队的组建，以及成员角色权限相关配置。 |
| Jack     | 运维经理     | 构建工程师，负责构建任务管理工作，使其规范化。       |
| Maggie   | 开发人员     | 负责代码开发和构建调试。                  |
| Mary     | 测试人员     | 负责构建任务的测试验证。                  |
| Lucy     | 浏览者      | 查看构建任务构建信息。                   |
   
#### 配置项目级角色权限
CodeArts Build提供基于角色的权限管理（RBAC：Role Based Access Control），用户可基于所配置的权限范围对项目进行作业。
不同类型的项目，权限的服务资源则不同；不同类型的项目，系统默认的"系统角色"权限配置也都不同。
1. 项目经理"Sarah"，拥有代码托管（CodeArts Repo）和编译构建（CodeArts Build）服务所有权限，对项目的整体建设和管理把关。 代码托管（CodeArts Repo）服务权限如下。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002400202657.png)
   
   编译构建（CodeArts Build）服务权限如下。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002400209637.png)
   
   
2. 运维经理"Jack"，负责构建任务的管理和维护工作，让企业的构建任务规范化和模板化，提升构建效率。 代码托管（CodeArts Repo）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002366569984.png)
   
   编译构建（CodeArts Build）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002400209785.png)
   
   
3. 开发人员"Maggie"，需拥有代码仓"test_repo"的开发权限和构建任务的执行权限，来调试和验证代码编译的结果。 代码托管（CodeArts Repo）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002401634193.png)
   
   编译构建（CodeArts Build）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002401554313.png)
   
   
4. 测试人员"Mary"，需拥有构建任务的执行权限，来验证代码编译的结果。 代码托管（CodeArts Repo）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002368038646.png)
   
   编译构建（CodeArts Build）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002367878958.png)
   
   
5. 浏览者"Lucy"，仅需提供查看构建任务权限。 代码托管（CodeArts Repo）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002401639097.png)
   
   编译构建（CodeArts Build）服务配置如下操作权限。
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002401559425.png)
   
   
至此角色权限已经分配完成，针对上述配置的角色权限，项目"test"下的代码托管和构建任务不同成员操作按钮会呈现不同形态，用户自行在对应任务上验证。针对不同角色进行精细化权限管控，能够更好的帮助企业规范化管理构建任务。
#### 配置任务级角色权限
CodeArts Build提供了任务级别的权限管理，用户在新建和修改构建任务进入到"权限管理"页签，可对单个构建任务进行角色权限配置。支持一键恢复项目级权限配置，打开"使用项目权限配置"按钮同步权限即可。
![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002424214704.png)
