
# 策略授权参考
本章节介绍OMS策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与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)。
 
OMS的支持自定义策略授权项如下表所示：
| 权限                   | 对应API接口                                                   | 授权项（Action）              | IAM项目 (Project) |
|:---|:---|:---|:---|
| 批量更新任务属性             | POST /v2/{project_id}/tasks/batch-update                  | oms:task:update          | √                                                                                              |
| 查询任务列表               | GET /v2/{project_id}/tasks                                | oms:task:list            | √                                                                                              |
| 创建任务                 | POST /v2/{project_id}/tasks                               | oms:task:create          | √                                                                                              |
| 查询指定任务信息             | GET /v2/{project_id}/tasks/{task_id}                      | oms:task:get             | √                                                                                              |
| 删除指定任务               | DELETE /v2/{project_id}/tasks/{task_id}                   | oms:task:delete          | √                                                                                              |
| 暂停指定任务               | POST /v2/{project_id}/tasks/{task_id}/stop                | oms:task:update          | √                                                                                              |
| 启动指定任务               | POST /v2/{project_id}/tasks/{task_id}/start               | oms:task:update          | √                                                                                              |
| 修改指定任务的带宽限制          | PUT /v2/{project_id}/tasks/{task_id}/bandwidth-policy     | oms:task:update          | √                                                                                              |
| 查询同步任务列表             | GET /v2/{project_id}/sync-tasks                           | oms:synctask:list        | √                                                                                              |
| 创建同步任务               | POST /v2/{project_id}/sync-tasks                          | oms:synctask:create      | √                                                                                              |
| 查询指定同步任务信息           | GET /v2/{project_id}/sync-tasks/{sync_task_id}            | oms:synctask:get         | √                                                                                              |
| 删除指定同步任务             | DELETE /v2/{project_id}/sync-tasks/{sync_task_id}         | oms:synctask:delete      | √                                                                                              |
| 查询指定同步任务的同步情况        | GET /v2/{project_id}/sync-tasks/{sync_task_id}/statistics | oms:synctask:statistics  | √                                                                                              |
| 停止指定同步任务             | POST /v2/{project_id}/sync-tasks/{sync_task_id}/stop      | oms:synctask:update      | √                                                                                              |
| 开启已经暂停的同步任务          | POST /v2/{project_id}/sync-tasks/{sync_task_id}/start     | oms:synctask:update      | √                                                                                              |
| 对指定同步任务创建同步事件        | POST /v2/{project_id}/sync-tasks/{sync_task_id}/events    | oms:synctask:createEvent | √                                                                                              |
| 创建任务组                | POST /v2/{project_id}/taskgroups                          | oms:taskgroup:create     | √                                                                                              |
| 查询任务组列表              | GET /v2/{project_id}/taskgroups                           | oms:taskgroup:list       | √                                                                                              |
| 获取指定任务组的详情           | GET /v2/{project_id}/taskgroups/{group_id}                | oms:taskgroup:get        | √                                                                                              |
| 删除指定任务组              | DELETE /v2/{project_id}/taskgroups/{group_id}             | oms:taskgroup:delete     | √                                                                                              |
| 暂停指定任务组              | PUT /v2/{project_id}/taskgroups/{group_id}/stop           | oms:taskgroup:update     | √                                                                                              |
| 重启已经暂停的任务组           | PUT /v2/{project_id}/taskgroups/{group_id}/start          | oms:taskgroup:update     | √                                                                                              |
| 对失败的任务组进行重试          | PUT /v2/{project_id}/taskgroups/{group_id}/retry          | oms:taskgroup:update     | √                                                                                              |
| 更新指定任务组的信息           | PUT /v2/{project_id}/taskgroups/{group_id}/update         | oms:taskgroup:update     | √                                                                                              |
| 查询指定桶的对象信息           | POST /v2/{project_id}/objectstorage/buckets/objects       | oms::listObjects         | √                                                                                              |
| 对指定桶下的数据进行CDN连通性检查   | POST /v2/{project_id}/objectstorage/buckets/cdn-info      | oms::checkCdnInfo        | √                                                                                              |
| 查询桶列表                | POST /v2/{project_id}/objectstorage/buckets               | oms::listBuckets         | √                                                                                              |
| 查询指定桶的region         | POST /v2/{project_id}/objectstorage/buckets/regions       | oms::listBucketRegions   | √                                                                                              |
| 查询指定桶的前缀有效性          | POST /v2/{project_id}/objectstorage/buckets/prefix        | oms::checkBucketPrefix   | √                                                                                              |
| 查询服务支持的源端厂商的region信息 | GET /v2/{project_id}/objectstorage/data-center            | oms::listCloudRegions    | √                                                                                              |
| 查询服务支持的源端云厂商         | GET /v2/{project_id}/objectstorage/cloud-type             | oms::listCloudTypes      | √                                                                                              |
   
