文档首页 > > 管理指南> 权限管理> 创建DWS自定义策略

创建DWS自定义策略

分享
更新时间: 2019/12/10 GMT+08:00

如果系统预置的DWS权限,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参考权限策略和授权项

目前华为云支持以下两种方式创建自定义策略:

  • 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。
  • JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。

如下以定制一个用户仅能创建集群的策略为例,分别采用可视化视图和JSON视图的配置方式创建自定义策略。

前提条件

可视化视图配置自定义策略

  1. 在IAM控制台,单击左侧导航栏的“策略”,在右上角选择“创建自定义策略”。
    图1 创建自定义策略
  2. 在“创建自定义策略”中,配置如下信息:
    图2 可视化视图
    • “策略名称”:填写“创建集群”
    • “作用范围”:根据服务的属性填写,DWS为项目级服务,选择“项目级服务”
    • “策略配置方式”:选择“可视化视图”
    • “策略内容”:
      1. 选择“允许”
      2. 在“云服务”中选择“数据仓库服务”
      3. 在“操作”中勾选“ReadWrite”中的“dws:cluster:create”,即“创建集群”。
      4. 单击“确定”后,自定义策略创建成功。

JSON视图配置自定义策略

如下以创建名为“创建集群”的策略为例,创建一个仅支持创建DWS集群的自定义策略。

  1. 在IAM控制台,单击左侧导航栏的“策略”,在右上角选择“创建自定义策略”。

    图3 创建策略

  2. 在“创建自定义策略”中,填写如下参数。

    图4 JSON视图

    • “策略名称”:填写“创建集群”。
    • “作用范围”:根据服务的属性填写,DWS为项目级服务,选择“项目级服务”。
    • “策略配置方式”:JSON视图。
    • “策略信息”:将如下内容拷贝至策略信息中,并单击“检验语法”。如下策略表示允许创建DWS集群。
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "dws:cluster:create"
                  ]
              }
          ]
      }

  3. 单击“确定”后,系统会自动校验语法,如跳转到策略列表,则自定义策略创建成功;如提示“策略内容错误”,请按照语法规范进行修改

验证自定义策略权限

  1. 将新创建的自定义策略授予用户组,使得用户组中的用户仅具备创建集群的权限。
  2. 用户登录并验证自定义策略定义的权限:创建集群。

    权限授予成功后,用户可以通过控制台以及REST API等多种方式验证。此处以登录控制台为例,介绍用户如何验证创建集群的权限。

    1. 使用新创建的用户登录华为云,登录方法选择为“IAM用户登录”。
      • 账号名为该IAM用户所属华为云账号的名称。
      • 用户名和密码为账号在IAM创建用户时输入的用户名和密码。
    2. 在DWS管理控制台,进行创建集群的操作,操作成功,权限配置正确并已生效。
    3. 尝试进行其他操作,例如:创建快照。

      系统显示“权限不足”,权限配置正确并已生效。

策略样例

  • 示例1:授权用户创建/恢复集群、重启集群、删除集群、设置安全参数、重置密码的权限。
    {
          "Version": "1.1",
          "Statement": [
                {
                      "Effect": "Allow",
                      "Action": [
                            "dws:cluster:create",
                            "dws:cluster:restart",
                            "dws:cluster:delete",
                            "dws:cluster:setParameter",
                            "dws:cluster:resetPassword",
                            "ecs:*:get*",
                            "ecs:*:list*",
                            "vpc:*:get*",
                            "vpc:*:list*"
                      ]
                }
          ]
    }
  • 示例2:拒绝用户删除集群

    拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。

    如果您给用户授予DWS Admin的系统策略,但不希望用户拥有DWS Admin中定义的删除集群权限,您可以创建一条拒绝删除集群的自定义策略,然后同时将DWS Admin和拒绝策略授予用户,根据Deny优先原则,则用户可以对DWS执行除了删除集群外的所有操作。拒绝策略示例如下:

    { 
          "Version": "1.1", 
          "Statement": [ 
                { 
    		  "Effect": "Deny", 
                      "Action": [ 
                            "dws:cluster:delete"
                      ] 
                } 
          ] 
    }

DWS细粒度策略授权项列表

在IAM中创建自定义策略时,您可以根据需求在策略授权语句的Action列表中添加DWS资源操作或REST API所对应的“授权项”,使得该策略具有相应的操作权限。DWS细粒度策略的授权项列表如下:

  • REST API

    DWS REST API的授权项列表,请参见权限策略和授权项

  • 管理控制台操作

    DWS资源操作及对应的授权项如表1所示。

表1 DWS资源操作授权项列表

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)
    • 企业项目(Enterprise Project)

获取集群列表

"dws:cluster:list"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

获取单个集群详情

"dws:cluster:getDetail"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

设置自动快照

"dws:cluster:setAutomatedSnapshot"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

设置安全参数/参数组

"dws:cluster:setParameter"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

重启集群

"dws:cluster:restart"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise 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)
    • 企业项目(Enterprise Project)

调整大小

dws:openAPICluster:resize

"dws:*:get*",

"dws:*:list*",

"ecs:*:get*",

"ecs:*:list*",

"ecs:*:create*",

"vpc:*:get*",

"vpc:*:list*",

"vpc:*:create*",

"evs:*:get*",

"evs:*:list*",

"evs:*:create*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

重置密码

"dws:cluster:resetPassword"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

应用参数模板

"dws:cluster:changeParameterGroup"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise 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)
    • 企业项目(Enterprise Project)

设置可维护时间段

"dws:cluster:setMaintainceWindow"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

绑定EIP

"dws:eip:operate"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

解绑EIP

"dws:eip:operate"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

创建DNS域名

"dws:dns:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

释放DNS域名

"dws:dns:release"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

修改DNS域名

"dws:dns:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

创建MRS连接

"dws:MRSConnection:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

更新MRS连接

"dws:MRSConnection:update"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

删除MRS连接

"dws:MRSConnection:delete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

添加/删除标签

"dws:tag:addAndDelete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

编辑标签

"dws:tag:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

创建快照

"dws:snapshot:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

获取快照列表

"dws:snapshot:list"

"dws:*:get*"

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

删除快照

"dws:snapshot:delete"

"dws:snapshot:list"

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

复制快照

"dws:snapshot:copy"

"dws:snapshot:list"

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

创建参数模板

"dws:parameterGroup:create"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

删除参数模板

"dws:parameterGroup:delete"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)

修改参数模板

"dws:parameterGroup:edit"

"dws:*:get*",

"dws:*:list*",

  • 支持:
    • 项目(Project)
    • 企业项目(Enterprise Project)
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区