# 策略授权参考
本章节介绍FlexusRDS策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与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)。
FlexusRDS的支持自定义策略授权项如下所示：
表1公共查询 
| 权限      | 对应API接口                                                                   | 授权项（Action）                  | **IAM**项目(Project) | 企业项目(Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建数据库实例                                                          | POST /v3/{project_id}/instances                                                                                                    | rds:instance:create （创建加密实例需要在项目上配置KMS Administrator权限。） | √                                                                             | √                                                                                 |
| 查询数据库规格 | GET /v3/{project_id}/flavors/{database_name}?version_name={version_name} | rds:instance:listFlavors                                   | √                   | √                         |
| 变更数据库实例的规格                                                        | POST /v3/{project_id}/instances/{instance_id}/action                                                                               | rds:instance:modifySpec                                                                 | √                                                                            | √                                                                                   |
| 设置自动扩容策略                                                        | PUT /v3/{project_id}/instances/{instance_id}/disk-auto-expansion                                                                   | rds:instance:modifyDns                                                                 | √                                                                          | √                                                                                 |
| 查询自动扩容策略                                                         | GET /v3/{project_id}/instances/{instance_id}/disk-auto-expansion                                                                   | rds:instance:list                                                                      | √                                                                            | √                                                                                   |
| 重启数据库实例                                                           | POST /v3/{project_id}/instances/{instance_id}/action                                                                               | rds:instance:restart                                                                  | √                                                                              | √                                                                                 |
| 查询数据库实例列表                                                          | GET /v3/{project_id}/instances                                                                                                    | rds:instance:list                                                                      | √                                                                           | √                                                                                   |
| 升级内核小版本                                                           | POST /v3/{project_id}/instances/{instance_id}/db-upgrade                                                                             | rds:instance:modify                                                                     | √                                                                            | √                                                                                   |
| 重置数据库root账号密码                                                     | POST /v3/{project_id}/instances/{instance_id}/password                                                                             | rds:password:update                                                                     | √                                                                           | √                                                                                |
   
表2备份与恢复 
| 权限       | 对应API接口                                                                                                                                                                                 | 授权项（Action）                                                                          | **IAM**项目(Project) | 企业项目(Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建手动备份    | POST /v3/{project_id}/backups                                                                                                                                                            | rds:backup:create                                                                    | √                    | √                           |
| 获取备份列表   | GET /v3/{project_id}/backups?instance_id={instance_id}\&backup_id={backup_id}\&backup_type={backup_type}\&offset={offset}\&limit={limit}\&begin_time={begin _time}\&end_time={end_time} | rds:backup:list                                                                       | √                  | √                         |
| 删除手动备份     | DELETE /v3/{project_id}/backups/{backup_id}                                                                                                                                             | rds:backup:delete                                                                     | √                    | √                          |
| 查询可恢复时间段 | GET /v3/{project_id}/instances/{instance_id}/restore-time?date=2020-12-26                                                                                                                 | rds:instance:list                                                                      | √                   | √                        |
| 恢复到新实例   | POST /v3/{project_id}/instances                                                                                                                                                        | rds:instance:create （加密实例需要在项目上配置KMS Administrator权限。） | √                   | √                        |
   
表3参数管理 
| 权限     | 对应API接口                                                      | 授权项（Action）      | **IAM**项目(Project) | 企业项目(Enterprise Project) |
|:---|:---|:---|:---|:---|
| 修改指定实例的参数 | PUT /v3.1/{project_id}/instances/{instance_id}/configurations | rds:param:modify | √                    | √                        |
| 获取指定实例的参数模板                       | GET /v3/{project_id}/instances/{instance_id}/configurations                              | rds:param:list                             | √                                                  | √                                                   |
   
