更新时间:2023-01-09 GMT+08:00

细粒度策略

在实际业务中,您可能需要给不同角色的用户授予不同的资源操作权限。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所示。

表1 GaussDB(DWS) 资源操作授权项列表

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*",

  • 支持:
    • 项目(Project)

获取集群列表

"dws:cluster:list"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

获取单个集群详情

"dws:cluster:getDetail"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

设置自动快照

"dws:cluster:setAutomatedSnapshot"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

设置安全参数/参数组

"dws:cluster:setSecuritySettings"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

重启集群

"dws:cluster:restart"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

扩容集群

"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*",

  • 支持:
    • 项目(Project)

重置密码

"dws:cluster:resetPassword"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

应用参数模板

"dws:cluster:changeParameterGroup"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

删除集群

"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*",

  • 支持:
    • 项目(Project)

设置可维护时间段

"dws:cluster:setMaintainceWindow"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

绑定EIP

"dws:eip:operate"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

解绑EIP

"dws:eip:operate"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

创建DNS域名

"dws:dns:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

释放DNS域名

"dws:dns:release"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

修改DNS域名

"dws:dns:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

创建MRS连接

"dws:MRSConnection:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

更新MRS连接

"dws:MRSConnection:update"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

删除MRS连接

"dws:MRSConnection:delete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

添加/删除标签

"dws:tag:addAndDelete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

编辑标签

"dws:tag:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

创建快照

"dws:snapshot:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

获取快照列表

"dws:snapshot:list"

"dws:*:get*"

  • 支持:
    • 项目(Project)

删除快照

"dws:snapshot:delete"

"dws:snapshot:list"

  • 支持:
    • 项目(Project)

复制快照

"dws:snapshot:copy"

"dws:snapshot:list"

  • 支持:
    • 项目(Project)

创建参数模板

"dws:parameterGroup:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

删除参数模板

"dws:parameterGroup:delete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

修改参数模板

"dws:parameterGroup:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)

细粒度策略授权

  1. 登录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*"
                        ]
                  }
            ]
      }
    • 通配符*用法示例
      例如,以下策略具有对GaussDB(DWS) 快照的所有操作权限。
      {
            "Version": "1.1",
            "Statement": [
                  {
                        "Effect": "Allow",
                        "Action": [
                              "dws:snapshot:*",
                              "ecs:*:get*",
                              "ecs:*:list*",
                              "vpc:*:get*",
                              "vpc:*:list*"
                        ]
                  }
            ]
      }

  2. 创建用户组。

    具体操作,请参见《统一身份认证服务用户指南》中的“用户指南 > 管理用户和用户组 > 创建用户组”

  3. 将用户加入用户组,并将新创建的自定义策略授权给用户组,使用户组中的用户具有策略定义的权限。

    具体操作,请参见《统一身份认证服务用户指南》中的“用户指南 > 管理用户和用户组 > 查看或修改用户组”