
# 策略授权参考
本章节介绍SMS策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与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)。
 
SMS的支持自定义策略授权项如下表所示：
- [模板管理]
- [源端管理]
- [任务管理]
- [命令管理]
- [密钥管理]
- [项目管理]
- [API版本管理]
- [Agent运行]
- [网络检测管理]
- [配置设置管理]
- [隐私协议管理]
 #### 模板管理
表1模板管理 
| 权限                   | 对应API接口                                   | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询模板列表               | GET /v3/vm/templates                      | sms:server:queryServer     | √                                              | ×                                                         |
| 新增模板信息               | POST /v3/vm/templates                     | sms:server:migrationServer | √                                              | ×                                                         |
| 批量删除指定ID的模板          | POST /v3/vm/templates/delete              | sms:server:migrationServer | √                                              | ×                                                         |
| 查询指定ID模板信息           | GET /v3/vm/templates/{id}                 | sms:server:queryServer     | √                                              | ×                                                         |
| 修改模板信息               | PUT /v3/vm/templates/{id}                 | sms:server:migrationServer | √                                              | ×                                                         |
| 查询指定ID的模板中的目的端服务器的密码 | GET /v3/vm/templates/{id}/target-password | sms:server:queryServer     | √                                              | ×                                                         |
| 删除指定ID的模板            | DELETE /v3/vm/templates/{id}              | sms:server:migrationServer | √                                              | ×                                                         |
   
 #### 源端管理
表2源端管理 
| 权限             | 对应API接口                                 | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询待迁移源端的所有错误   | GET /v3/errors                          | sms:server:queryServer     | √                                              | ×                                                      |
| 查询源端服务器列表      | GET /v3/sources                         | sms:server:queryServer     | √                                              | √                                                      |
| 上报源端服务器基本信息    | POST /v3/sources                        | sms:server:registerServer  | √                                              | √                                                      |
| 批量删除源端服务器信息    | POST /v3/sources/delete                 | sms:server:migrationServer | √                                              | √                                                      |
| 查询指定ID的源端服务器   | GET /v3/sources/{source_id}             | sms:server:queryServer     | √                                              | √                                                      |
| 修改指定ID的源端服务器名称 | PUT /v3/sources/{source_id}             | sms:server:migrationServer | √                                              | √                                                      |
| 删除指定ID的源端服务器信息 | DELETE /v3/sources/{source_id}          | sms:server:migrationServer | √                                              | √                                                      |
| 更新磁盘信息         | PUT /v3/sources/{source_id}/diskinfo    | sms:server:registerServer  | √                                              | √                                                      |
| 获取服务器总览        | GET /v3/sources/overview                | sms:server:queryServer     | √                                              | ×                                                      |
| 更新任务对应源端复制状态   | PUT /v3/sources/{source_id}/changestate | sms:server:migrationServer | √                                              | √                                                      |
   
 #### 任务管理
表3任务管理 
| 权限                           | 对应API接口                                                      | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询迁移任务列表                     | GET /v3/tasks                                                | sms:server:queryServer     | √                                                | √                                                        |
| 创建迁移任务                       | POST /v3/tasks                                               | sms:server:migrationServer | √                                                | √                                                        |
| 批量删除迁移任务                     | POST /v3/tasks/delete                                        | sms:server:migrationServer | √                                                | √                                                        |
| 查询指定ID的迁移任务                  | GET /v3/tasks/{task_id}                                      | sms:server:queryServer     | √                                                | √                                                        |
| 更新指定ID的迁移任务                  | PUT /v3/tasks/{task_id}                                      | sms:server:migrationServer | √                                                | √                                                        |
| 删除指定ID的迁移任务                  | DELETE /v3/tasks/{task_id}                                   | sms:server:migrationServer | √                                                | √                                                        |
| 管理迁移任务                       | POST /v3/tasks/{task_id}/action                              | sms:server:migrationServer | √                                                | √                                                        |
| 上报数据迁移进度和速率                  | PUT /v3/tasks/{task_id}/progress                             | sms:server:migrationServer | √                                                | √                                                        |
| 解锁指定任务的目的端服务器                | POST /v3/tasks/{task_id}/unlock                              | sms:server:migrationServer | √                                                | √                                                        |
| 上传迁移任务的日志                    | POST /v3/tasks/{task_id}/log                                 | sms:server:migrationServer | √                                                | √                                                        |
| 查询指定任务ID的安全传输通道的证书passphrase | GET /v3/tasks/{task_id}/passphrase                           | sms:server:queryServer     | √                                                | √                                                        |
| 检查网卡安全组端口是否符合要求              | GET /v3/tasks/{t_project_id}/networkacl/{t_network_id}/check | sms:server:queryServer     | √                                                | ×                                                        |
| 查询任务限速规则                     | GET /v3/tasks/{task_id}/speed-limit                          | sms:server:queryServer     | √                                                | √                                                        |
| 设置迁移限速规则                     | POST /v3/tasks/{task_id}/speed-limit                         | sms:server:migrationServer | √                                                | √                                                        |
   
 #### 命令管理
表4命令管理 
| 权限          | 对应API接口                                     | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取服务端命令     | GET /v3/sources/{server_id}/command         | sms:server:queryServer     | √                                             | √                                                        |
| 上报服务端命令执行结果 | POST /v3/sources/{server_id}/command_result | sms:server:migrationServer | √                                             | √                                                        |
   
 #### 密钥管理
表5密钥管理 
| 权限         | 对应API接口                         | 授权项（Action）            | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取SSL证书和私钥 | GET /v3/tasks/{task_id}/certkey | sms:server:queryServer | √                                                | √                                                        |
| 计算sha256   | GET /v3/sha256/{key}            | sms:server:queryServer | √                                                | ×                                                        |
   
 #### 项目管理
表6项目管理 
| 权限           | 对应API接口                                      | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取项目列表       | GET /v3/migprojects                          | sms:server:queryServer     | √                                               | ×                                                         |
| 新建迁移项目       | POST /v3/migprojects                         | sms:server:migrationServer | √                                               | ×                                                         |
| 查询指定ID迁移项目详情 | GET /v3/migprojects/{mig_project_id}         | sms:server:queryServer     | √                                               | ×                                                         |
| 更新迁移项目信息     | PUT /v3/migprojects/{mig_project_id}         | sms:server:migrationServer | √                                               | ×                                                         |
| 删除迁移项目       | DELETE /v3/migprojects/{mig_project_id}      | sms:server:migrationServer | √                                               | ×                                                         |
| 更新默认迁移项目     | PUT /v3/migprojects/{mig_project_id}/default | sms:server:migrationServer | √                                               | ×                                                         |
   
 #### API版本管理
表7API版本管理 
| 权限                | 对应API接口        | 授权项（Action）            | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询主机迁移服务指定API版本信息 | GET /{version} | sms:server:queryServer | √                                              | ×                                                         |
| 查询主机迁移服务的API版本信息  | GET /          | sms:server:queryServer | √                                              | ×                                                         |
   
 #### Agent运行
表8Agent运行 
| 权限          | 对应API接口        | 授权项（Action）            | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取Agent配置信息 | GET /v3/config | sms:server:queryServer | √                                              | ×                                                       |
   
 #### 网络检测管理
表9网络检测管理 
| 权限          | 对应API接口                                      | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 更新网络检测相关的信息 | POST /v3/{task_id}/update-network-check-info | sms:server:migrationServer | √                                              | √                                                        |
   
 #### 配置设置管理
表10配置设置管理 
| 权限       | 对应API接口                                        | 授权项（Action）                | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询配置资源   | GET /v3/tasks/{task_id}/configuration-setting  | sms:server:queryServer     | √                                              | √                                                        |
| 迁移任务配置设置 | POST /v3/tasks/{task_id}/configuration-setting | sms:server:migrationServer | √                                              | √                                                        |
   
 #### 隐私协议管理
表11隐私协议管理 
| 权限           | 对应API接口                     | 授权项（Action）               | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询用户是否同意隐私协议 | GET /v3/privacy-agreements  | sms:server:queryServer    | √                                             | ×                                                     |
| 同意隐私协议       | POST /v3/privacy-agreements | sms:server:registerServer | √                                             | √                                                     |
   
