细粒度策略
在实际业务中,您可能需要给不同角色的用户授予不同的资源操作权限。IAM服务为用户提供了细粒度访问控制功能。在IAM中,IAM管理员用户(即属于admin用户组的用户)通过创建自定义策略,可以自由搭配需要授予的权限集。通过给用户组授予策略,用户组中的用户就能获得策略中定义的权限。IAM通过策略定义的权限内容实现精细的权限管理。
为了更精细地控制GaussDB(DWS) 资源的使用权限,您可以使用IAM的用户管理功能,实现细粒度权限控制,授予不同角色的用户不同的资源操作权限。
GaussDB(DWS) 细粒度策略授权项列表
在IAM中创建自定义策略时,您可以根据需求在策略授权语句的Action列表中添加GaussDB(DWS) 资源操作或REST API所对应的“授权项”,使得该策略具有相应的操作权限。GaussDB(DWS) 细粒度策略的授权项列表如下:
- REST API
GaussDB(DWS) REST API的授权项列表,请参见《数据仓库服务API参考》中的“授权策略和授权项”。
- 管理控制台操作
GaussDB(DWS) 资源操作及对应的授权项如表1所示。
GaussDB(DWS) 资源操作 |
授权项 |
依赖的授权项 |
授权项作用域 |
---|---|---|---|
创建/恢复集群 |
"dws:cluster:create" |
"dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*", |
|
获取集群列表 |
"dws:cluster:list" |
"dws:*:get*", "dws:*:list*", |
|
获取单个集群详情 |
"dws:cluster:getDetail" |
"dws:*:get*", "dws:*:list*", |
|
设置自动快照 |
"dws:cluster:setAutomatedSnapshot" |
"dws:*:get*", "dws:*:list*", |
|
设置安全参数/参数组 |
"dws:cluster:setSecuritySettings" |
"dws:*:get*", "dws:*:list*", |
|
重启集群 |
"dws:cluster:restart" |
"dws:*:get*", "dws:*:list*", |
|
扩容集群 |
"dws:cluster:scaleOut" |
"dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*", |
|
重置密码 |
"dws:cluster:resetPassword" |
"dws:*:get*", "dws:*:list*", |
|
应用参数模板 |
"dws:cluster:changeParameterGroup" |
"dws:*:get*", "dws:*:list*", |
|
删除集群 |
"dws:cluster:delete" |
"dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:delete*", |
|
设置可维护时间段 |
"dws:cluster:setMaintainceWindow" |
"dws:*:get*", "dws:*:list*", |
|
绑定EIP |
"dws:eip:operate" |
"dws:*:get*", "dws:*:list*", |
|
解绑EIP |
"dws:eip:operate" |
"dws:*:get*", "dws:*:list*", |
|
创建DNS域名 |
"dws:dns:create" |
"dws:*:get*", "dws:*:list*", |
|
释放DNS域名 |
"dws:dns:release" |
"dws:*:get*", "dws:*:list*", |
|
修改DNS域名 |
"dws:dns:edit" |
"dws:*:get*", "dws:*:list*", |
|
创建MRS连接 |
"dws:MRSConnection:create" |
"dws:*:get*", "dws:*:list*", |
|
更新MRS连接 |
"dws:MRSConnection:update" |
"dws:*:get*", "dws:*:list*", |
|
删除MRS连接 |
"dws:MRSConnection:delete" |
"dws:*:get*", "dws:*:list*", |
|
添加/删除标签 |
"dws:tag:addAndDelete" |
"dws:*:get*", "dws:*:list*", |
|
编辑标签 |
"dws:tag:edit" |
"dws:*:get*", "dws:*:list*", |
|
创建快照 |
"dws:snapshot:create" |
"dws:*:get*", "dws:*:list*", |
|
获取快照列表 |
"dws:snapshot:list" |
"dws:*:get*" |
|
删除快照 |
"dws:snapshot:delete" |
"dws:snapshot:list" |
|
复制快照 |
"dws:snapshot:copy" |
"dws:snapshot:list" |
|
创建参数模板 |
"dws:parameterGroup:create" |
"dws:*:get*", "dws:*:list*", |
|
删除参数模板 |
"dws:parameterGroup:delete" |
"dws:*:get*", "dws:*:list*", |
|
修改参数模板 |
"dws:parameterGroup:edit" |
"dws:*:get*", "dws:*:list*", |
|
细粒度策略授权
- 登录IAM服务管理控制台,创建自定义策略。
具体操作,请参见《统一身份认证服务用户指南》中的“用户指南 > 管理细粒度策略 > 创建自定义策略”。
说明如下:
- 您必须使用IAM管理员用户,即属于admin用户组的用户,因为只有IAM管理员用户具备创建用户组及用户、修改用户组权限等操作权限。
- 由于GaussDB(DWS) 服务属于项目级服务,“作用范围”必须选择“项目级服务”,如果需要该策略对多个项目生效,需要对多个项目分别授权。
- 在IAM中,预置了以下两种GaussDB(DWS) 策略模板。在创建自定义策略时,您可以选择以下模板,然后基于模板修改策略授权语句。
- DWS Admin:拥有对数据仓库服务的所有执行权限。
- DWS Viewer:拥有对数据仓库服务的只读权限。
- 在策略授权语句中,您可以在Action列表中,添加如GaussDB(DWS) 细粒度策略授权项列表所述的GaussDB(DWS) 资源操作或REST API对应的“授权项”,从而使策略获得相应的操作权限。
例如,在策略语句的Action列表中,添加"dws:cluster:create",那么该策略就拥有了创建/恢复集群的权限。
- 如果需要使用其他服务,您同时还需授予其他服务的相关操作权限,具体内容请查阅相关服务的帮助文档。
例如,创建GaussDB(DWS) 集群时,需要配置集群所属的虚拟私有云,为了能获取VPC列表,您需在策略语句中添加授权项"vpc:*:get*"。
策略样例:
- 支持多个操作权限的示例
例如,以下策略具有创建/恢复集群、重启集群、删除集群、设置安全参数、重置密码的权限。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dws:cluster:create", "dws:cluster:restart", "dws:cluster:delete", "dws:cluster:setSecuritySettings", "dws:cluster:resetPassword", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:create*", "evs:*:delete*" ] } ] }
- 通配符*用法示例
- 创建用户组。
具体操作,请参见《统一身份认证服务用户指南》中的“用户指南 > 管理用户和用户组 > 创建用户组”。
- 将用户加入用户组,并将新创建的自定义策略授权给用户组,使用户组中的用户具有策略定义的权限。
具体操作,请参见《统一身份认证服务用户指南》中的“用户指南 > 管理用户和用户组 > 查看或修改用户组”。