# 策略授权参考
本章节介绍云备份（Cloud Backup and Recovery, CBR）基于策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应，授权项列表说明如下：
- 权限：允许或拒绝某项操作。
- 对应API接口：自定义策略实际调用的API接口。
- 授权项：自定义策略中支持的Action，在自定义策略中的Action中写入授权项，可以实现授权项对应的权限功能。
- 依赖的授权项：部分Action存在对其他Action的依赖，需要将依赖的Action同时写入授权项，才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project)：自定义策略的授权范围，包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目，表示此授权项对应的自定义策略，可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目，不支持企业项目，表示仅能在IAM中给用户组授权并生效，如果在企业管理中授权，则该自定义策略不生效。管理员可以在授权项列表中查看授权项是否支持IAM项目或企业项目，"√"表示支持，"×"表示暂不支持。关于IAM项目与企业项目的区别，详情请参见：[IAM与企业管理的区别](https://support.huaweicloud.com/iam_faq/iam_01_0101.html)。
CBR的支持自定义策略授权项如下所示：
- 【示例】[存储库]，包含CBR所有存储库接口对应的授权项，如创建存储库、查询存储库列表、修改存储库、删除存储库、添加资源、移除资源等接口。
- 【示例】[备份共享]，包括CBR备份共享接口对应的授权项，如添加备份成员、获取备份成员列表、更新备份成员状态等接口。
 
#### 任务
| 权限       | 对应API接口                                                | 授权项           | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询任务列表  | GET /v3/{project_id}/operation-logs                   | cbr:tasks:list  | √                                            | √                                                    |
| 查询单个任务 | GET /v3/{project_id}/operation-logs/{operation_log_id} | cbr:tasks:get | √                                            | √                                                  |
   
#### 可保护性
| 权限          | 对应API接口                                                                     | 授权项                                    | 依赖的授权项                                                                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|:---|
| 查询可保护资源     | GET /v3/{project_id}/protectables/{protectable_type}/instances              | cbr:vaults:listProtectables           | ecs:cloudServers:list evs:volumes:list   | √                                           | √                                                        |
| 查询指定可保护资源 | GET /v3/{project_id}/protectables/{protectable_type}/instances/{instance_id} | cbr:vaults:getProtectables            | ecs:cloudServers:list evs:volumes:list | √                                           | ×                                                        |
| 查询agent状态  | POST /v3/{project_id}/agent/check                                              | cbr:backups:checkAgent                | ecs:cloudServers:list                                               | √                                           | ×                                                      |
| 查询复制能力     | GET /v3/{project_id}/replication-capabilities                                | cbr:backups:queryReplicationCapability | -                                                                    | √                                             | ×                                                      |
   
 #### 存储库
| 权限          | 对应API接口                                               | 授权项                             | 依赖的授权项                                                                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|:---|
| 设置存储库策略     | POST /v3/{project_id}/vaults/{vault_id}/associatepolicy | cbr:vaults:associatePolicy     | -                                                                        | √                                              | √                                                      |
| 查询指定存储库      | GET /v3/{project_id}/vaults/{vault_id}                    | cbr:vaults:get                | -                                                                       | √                                            | √                                                     |
| 修改存储库        | PUT /v3/{project_id}/vaults/{vault_id}                 | cbr:vaults:update           | -                                                                        | √                                            | √                                                     |
| 删除存储库         | DELETE /v3/{project_id}/vaults/{vault_id}              | cbr:vaults:delete            | -                                                                         | √                                             | √                                                      |
| 移除资源         | POST /v3/{project_id}/vaults/{vault_id}/removeresources   | cbr:vaults:removeResources   | -                                                                       | √                                            | √                                                      |
| 添加资源         | POST /v3/{project_id}/vaults/{vault_id}/addresources     | cbr:vaults:addResources      | ecs:cloudServers:list evs:volumes:list   | √                                           | √                                                     |
| 查询存储库列表       | GET /v3/{project_id}/vaults                             | cbr:vaults:list                | -                                                                          | √                                           | √                                                      |
| 创建存储库         | POST /v3/{project_id}/vaults                              | cbr:vaults:create              | ecs:cloudServers:list evs:volumes:list | √                                              | √                                                       |
| 查询其他区域存储库列表 | GET /v3/{project_id}/external_vaults                   | cbr:vaults:listExternalVaults | cbr:vaults:listExternalVaults                                            | √                                               | √                                                        |
| 解除存储库策略       | POST /v3/{project_id}/vaults/{vault_id}/dissociatepolicy | cbr:vaults:dissociatePolicy   | -                                                                       | √                                           | √                                                      |
| 迁移资源        | POST /v3/{project_id}/vaults/{vault_id}/migrateresources | cbr:vaults:migrateResources  | cbr:vaults:addResources                                                 | √                                             | √                                                      |
   
#### 还原点
| 权限       | 对应API接口                                        | 授权项                 | 依赖的授权项                                                               | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|:---|
| 同步备份还原点 | POST /v3/{project_id}/checkpoints/sync      | cbr:vaults:sync      | -                                                                     | √                                          | √                                                       |
| 复制备份还原点  | POST /v3/{project_id}/checkpoints/replicate | cbr:vaults:replicate | -                                                                    | √                                           | √                                                         |
| 创建备份还原点 | POST /v3/{project_id}/checkpoints           | cbr:vaults:backup  | ecs:cloudServers:list evs:volumes:list | √                                            | √                                                       |
   
 #### 备份共享
| 权限         | 对应API接口                                                                                        | 授权项             | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 添加备份成员     | POST /v3/{project_id}/backups/{backup_id}/members                                                | cbr:member:create  | √                                             | √                                                   |
| 更新备份成员状态 | PUT /v3/{project_id}/backups/{backup_id}/members/{member_id}          | cbr:member:update | √                                               | √                                                    |
| 获取备份成员详情   | GET /v3/{project_id}/backups/{backup_id}/members/{member_id}       | cbr:member:get    | √                                             | √                                                   |
| 获取备份成员列表  | GET /v3/{project_id}/backups/{backup_id}/members                    | cbr:member:list  | √                                              | √                                                   |
| 删除指定的备份成员 | DELETE /v3/{project_id}/backups/{backup_id}/members/{member_id} | cbr:member:delete | √                                            | √                                                  |
   
#### 备份
| 权限        | 对应API接口                                                                      | 授权项                   | 依赖的授权项                                                                 | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|:---|
| 查询备份列表     | GET /v3/{project_id}/backups                                                 | cbr:backups:list       | -                                                                        | √                                              | √                                                         |
| 查询指定备份   | GET /v3/{project_id}/backups/{backup_id}                                      | cbr:backups:get          | -                                                                        | √                                              | √                                                        |
| 删除备份       | DELETE /v3/{project_id}/backups/{backup_id}                                   | cbr:backups:delete     | -                                                                        | √                                              | √                                                       |
| 同步备份      | POST /v3/{project_id}/backups/sync                                             | cbr:backups:sync         | -                                                                       | √                                             | √                                                        |
| 恢复备份       | POST /v3/{project_id}/backups/{backup_id}/restore                            | cbr:backups:restore  | ecs:cloudServers:list evs:volumes:list | √                                             | √                                                         |
| 复制备份       | POST /v3/{project_id}/backups/{backup_id}/replicate                           | cbr:backups:replicate   | -                                                                       | √                                               | √                                                       |
| 更新备份      | PUT /v3/{project_id}/backups/{backup_id}                                      | cbr:backups:update    | -                                                                         | √                                              | √                                                          |
| 查询备份元数据 | GET /v3/{project_id}/backups/{backup_id}/metadata | cbr:backups:getMetadata | -                                                                      | √                                               | √                                                         |
   
#### 策略
| 权限      | 对应API接口                                    | 授权项                  | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询策略列表   | GET /v3/{project_id}/policies              | cbr:policies:list   | √                                            | ×                                                   |
| 创建策略   | POST /v3/{project_id}/policies               | cbr:policies:create  | √                                           | ×                                                  |
| 查询指定策略 | GET /v3/{project_id}/policies/{policy_id}     | cbr:policies:get       | √                                          | ×                                                   |
| 更新策略   | PUT /v3/{project_id}/policies/{policy_id}    | cbr:policies:update  | √                                            | ×                                                  |
| 删除策略    | DELETE /v3/{project_id}/policies/{policy_id} | cbr:policies:delete | √                                             | ×                                                  |
   
#### 组织策略
| 权限       | 对应API接口                                                                 | 授权项                               | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建组织策略    | POST /v3/{project_id}/organization-policies                             | cbr:organizationPolicies:create | √                                            | ×                                                     |
| 查询组织策略列表  | GET /v3/{project_id}/organization-policies                              | cbr:organizationPolicies:list    | √                                               | ×                                                     |
| 查询指定组织策略 | GET /v3/{project_id}/organization-policies/{organization_policy_id}      | cbr:organizationPolicies:get       | √                                             | ×                                                       |
| 删除组织策略  | DELETE /v3/{project_id}/organization-policies/{organization_policy_id} | cbr:organizationPolicies:delete   | √                                             | ×                                                       |
| 更新组织策略    | PUT /v3/{project_id}/organization-policies/{organization_policy_id}    | cbr:organizationPolicies:update  | √                                              | ×                                                       |
   
#### 标签
| 权限          | 对应API接口                                                | 授权项                                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询存储库资源实例   | POST /v3/{project_id}/vault/resource_instances/action | cbr:vaults:listResourceInstances | √                                               | √                                                          |
| 批量添加删除存储库资源标签 | POST /v3/{project_id}/vault/{vault_id}/tags/action    | cbr:vaults:bulkCreateOrDeleteTags   | √                                                | √                                                         |
| 添加存储库资源标签  | POST /v3/{project_id}/vault/{vault_id}/tags           | cbr:vaults:setTags                 | √                                               | √                                                         |
| 删除存储库资源标签  | DELETE /v3/{project_id}/vault/{vault_id}/tags/{key}  | cbr:vaults:deleteTags            | √                                             | √                                                        |
| 查询存储库资源标签  | GET /v3/{project_id}/vault/{vault_id}/tags             | cbr:vaults:getTags               | √                                             | √                                                         |
| 查询存储库项目标签  | GET /v3/{project_id}/vault/tags                     | cbr:vaults:listProjectTags        | √                                              | √                                                          |
   
#### 客户端
| 权限     | 对应API接口                                                                           | 授权项                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 注册客户端   | POST /v3/{project_id}/agents                                                      | cbr:agents:register | √                                         | ×                                                       |
| 查询单个客户端 | GET /v3/{project_id}/agents/{agent_id}                                         | cbr:agents:get     | √                                         | ×                                                    |
| 列举客户端   | GET /v3/{project_id}/agents                                                        | cbr:agents:list      | √                                          | ×                                                      |
| 移除客户端  | DELETE /v3/{project_id}/agents/{agent_id}                                       | cbr:agents:delete    | √                                          | ×                                                      |
| 更新客户端   | PUT /v3/{project_id}/agents/{agent_id}                                           | cbr:agents:update   | √                                            | ×                                                      |
| 移除备份路径  | POST /v3/{project_id}/agents/{agent_id}/remove-path | cbr:agents:removePath | √                                           | ×                                                       |
| 新增备份路径 | POST /v3/{project_id}/agents/{agent_id}/add-path                                | cbr:agents:addPath | √                                           | ×                                                      |
   
#### 计量
| 权限   | 对应API接口                          | 授权项                         | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询容量统计 | GET /v3/{project_id}/storage_usage | cbr:backups:listStorageUsage | √                                              | √                                                     |
   
#### 运营
| 权限      | 对应API接口                                | 授权项                      | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 变更存储库 | PUT /v3/{project_id}/orders/{order_id} | cbr:vaults:updateOrder | √                                                 | √                                                         |
   
