
# 权限管理
如果您需要对华为云上购买的CodeArts IDE Online资源，给企业中的员工设置不同的访问权限，以达到不同员工之间的权限隔离，您可以使用统一身份认证服务（Identity and Access Management，简称[IAM](https://support.huaweicloud.com/productdesc-iam/iam_01_0026.html)）进行精细的权限管理。IAM是华为云提供权限管理的基础服务，无需付费即可使用，您只需要为您账号中的资源进行付费。
- IAM服务提供用户身份认证、权限分配、访问控制等功能，可以帮助您安全地控制CodeArts IDE Online资源的访问。
- 通过IAM，您可以在华为云账号中给员工创建IAM用户，并使用策略来控制其对华为云资源的访问范围。例如您的员工中有负责软件开发的人员，您希望开发人员拥有CodeArts IDE Online的使用权限，但是不希望其拥有删除CodeArts IDE Online资源等高危操作的权限，那么您可以使用IAM为开发人员创建用户，通过授权控制仅能使用CodeArts IDE Online，但是不允许删除CodeArts IDE Online的权限策略，控制开发人员对CodeArts IDE Online资源的使用范围。
如果华为云账号已经能满足您的使用需求，不需要创建独立的IAM用户进行权限管理，您可以跳过本章节，不影响您使用CodeArts IDE Online的其它功能。
#### CodeArts IDE Online权限
默认情况下，管理员创建的IAM用户没有任何权限，需要将其加入用户组，并给用户组授予策略或角色，才能使得用户组中的用户获得对应的权限，这一过程称为授权。授权后，用户就可以基于被授予的权限对云服务进行操作。
CodeArts IDE Online部署时通过物理区域划分，为项目级服务。授权时，"作用范围"需要选择"区域级项目"，然后在指定区域（如华北-北京1）对应的项目（cn-north-1）中设置相关权限，并且该权限仅对此项目生效；如果在"所有项目"中设置权限，则该权限在所有区域项目中都生效。访问CodeArts IDE Online时，需要先切换至授权区域。
根据授权精细程度分为角色和策略。
- 角色：IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度，提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系，因此给用户授予角色时，可能需要一并授予依赖的其他角色，才能正确完成业务。角色并不能满足用户对精细化授权的要求，无法完全达到企业对权限最小化的安全管控要求。
- 策略：IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式，能够满足企业对权限最小化的安全管控要求。例如：针对CodeArts IDE Online服务，管理员能够控制IAM用户仅能对实例进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分，CodeArts IDE Online支持的API授权项请参见[策略及授权项说明](https://support.huaweicloud.com/api-cloudide/cloudide_03_0028.html)。
如[表1]所示，包括了CodeArts IDE Online的所有系统权限。
 表1CodeArts IDE Online系统权限 
| **策略名称**                    | **描述**                                               | **类别** |
|:---|:---|:---|
| CloudIDE FullAccess         | CodeArts IDE Online所有权限。                             | 系统策略   |
| CloudIDE ReadOnlyAccess     | CodeArts IDE Online只读权限。                             | 系统策略   |
| CloudIDE InstanceManagement | CodeArts IDE Online实例管理权限，用户可以管理自己拥有的实例、访问被分发给自己的实例。 | 系统策略   |
| CloudIDE Development        | CodeArts IDE Online开发权限，包括查看、启动、停止、访问实例等操作。          | 系统策略   |
   
[表2]列出了CodeArts IDE Online常用操作与系统策略的授权关系，您可以参照该表选择合适的系统策略。
 表2常用操作与系统权限的关系 
| **操作**            | **CloudIDE** **FullAccess** | **CloudIDE** **ReadOnlyAccess** | **CloudIDE** **InstanceManagement** | **CloudIDE** **Development** |
|:---|:---|:---|:---|:---|
| 查询指定IDE实例详情       | √                                                                          | √                                                                            | √                                                                                 | √                                                                             |
| 创建IDE实例           | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 删除IDE实例           | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 启动IDE实例           | √                                                                          | ×                                                                            | √                                                                                 | √                                                                             |
| 停止IDE实例           | √                                                                          | ×                                                                            | √                                                                                 | √                                                                             |
| 访问IDE实例           | √                                                                          | ×                                                                            | √                                                                                 | √                                                                             |
| 修改IDE实例（仅修改描述和名称） | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 分发实例给访问者          | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 授权实例给用户           | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 重置实例              | √                                                                          | ×                                                                            | √                                                                                 | ×                                                                             |
| 查询用户实例列表          | √                                                                          | √                                                                            | √                                                                                 | √                                                                             |
| 查询租户实例列表          | √                                                                          | √                                                                            | ×                                                                                 | ×                                                                             |
| 获取技术栈             | √                                                                          | √                                                                            | √                                                                                 | √                                                                             |
| 查询模板工程            | √                                                                          | √                                                                            | √                                                                                 | √                                                                             |
   
表3常用操作与对应授权项 
| **操作**            | **授权项**                            | **备注**         |
|:---|:---|:---|
| 查询指定IDE实例详情       | cloudIDE:instance:get              | 无              |
| 创建IDE实例           | cloudIDE:instance:create           | 无              |
| 删除IDE实例           | cloudIDE:instance:delete           | 无              |
| 启动IDE实例           | cloudIDE:instance:start            | 无              |
| 停止IDE实例           | cloudIDE:instance:stop             | 无              |
| 访问IDE实例           | cloudIDE:instance:access           | 只有实例的访问者才能访问实例 |
| 修改IDE实例（仅修改描述和名称） | cloudIDE:instance:update           | 无              |
| 分发实例给访问者          | cloudIDE:instance:assign           | 无              |
| 授权实例给用户           | cloudIDE:instance:auth             | 无              |
| 重置实例              | cloudIDE:instance:reset            | 无              |
| 查询用户实例列表          | cloudIDE:instance:listInstances    | 无              |
| 查询租户实例列表          | cloudIDE:instance:listOrgInstances | 无              |
| 获取技术栈             | cloudIDE:stack:list                | 无              |
| 查询模板工程            | cloudIDE:template:list             | 无              |
   
表4授权项与对应条件键 
| **条件键**                  | **类别**   | **条件类型** | **action关联**                                                                                                                                                                                   |
|:---|:---|:---|:---|
| cloudIDE:instanceUser    | 云服务自定义条件 | String   | cloudIDE:instance:get cloudIDE:instance:delete cloudIDE:instance:update cloudIDE:instance:start cloudIDE:instance:stop cloudIDE:instance:auth cloudIDE:instance:assign cloudIDE:instance:reset |
| cloudIDE:instanceVisitor | 云服务自定义条件 | String   | cloudIDE:instance:get cloudIDE:instance:start cloudIDE:instance:stop cloudIDE:instance:access                                                                                                  |
   
#### 相关链接
- [IAM产品介绍](https://support.huaweicloud.com/productdesc-iam/iam_01_0026.html)
- [授权IAM用户使用CodeArts IDE Online实例](https://support.huaweicloud.com/usermanual-cloudide/authorization_use_ide.html)
- [策略及授权项说明](https://support.huaweicloud.com/api-cloudide/cloudide_03_0028.html)
 
