云服务器内容精选

  • 细粒度策略授权 登录 IAM 服务管理控制台,创建自定义策略。 具体操作,请参见《 统一身份认证 服务用户指南》中的创建自定义策略。 说明如下: 您必须使用IAM管理员用户,即属于admin用户组的用户,因为只有IAM管理员用户具备创建用户组及用户、修改用户组权限等操作权限。 由于 GaussDB (DWS)服务属于项目级服务,“作用范围”必须选择“项目级服务”,如果需要该策略对多个项目生效,需要对多个项目分别授权。 在IAM中,预置了以下两种GaussDB(DWS)策略模板。在创建自定义策略时,您可以选择以下模板,然后基于模板修改策略授权语句。 DWS Admin:拥有对 数据仓库 服务的所有执行权限。 DWS Viewer:拥有对数据仓库服务的只读权限。 在策略授权语句中,您可以在Action列表中,添加如授权项列表所述的GaussDB(DWS)资源操作或REST API对应的“授权项”,从而使策略获得相应的操作权限。 例如,在策略语句的Action列表中,添加“dws:cluster:create”,那么该策略就拥有了创建/恢复集群的权限。 如果需要使用其他服务,您同时还需授予其他服务的相关操作权限,具体内容请查阅相关服务的帮助文档。 例如,创建GaussDB(DWS) 集群时,需要配置集群所属的虚拟私有云,为了能获取VPC列表,您需在策略语句中添加授权项“vpc:*:get*”。 创建用户组。 具体操作,请参见《统一身份认证服务用户指南》中的创建用户组。 将用户加入用户组,并将新创建的自定义策略授权给用户组,使用户组中的用户具有策略定义的权限。 具体操作,请参见《统一身份认证服务用户指南》中的查看或修改用户组。
  • 检查规则 当用户被授予多个策略,或者一个策略中包含多个授权语句,这些策略中既有Allow又有Deny的授权语句时,遵循Deny优先的原则。在用户访问资源时,权限检查逻辑如下。 图3 系统鉴权逻辑图 每条策略做评估时, Action之间是或(or)的关系。 用户访问系统,发起操作请求。 系统评估用户被授予的访问策略,鉴权开始。 在用户被授予的访问策略中,系统将优先寻找显式拒绝指令。如找到一个适用的显式拒绝,系统将返回Deny决定。 如果没有找到显式拒绝指令,系统将寻找适用于请求的任何Allow指令。如果找到一个显式允许指令,系统将返回Allow决定。 如果找不到显式允许,最终决定为Deny,鉴权结束。
  • 授权项列表 在IAM中创建自定义策略时,您可以根据需求在策略授权语句的Action列表中添加GaussDB(DWS)资源操作或REST API所对应的“授权项”,使得该策略具有相应的操作权限。GaussDB(DWS) 细粒度策略的授权项列表如下: REST API GaussDB(DWS) REST API的授权项列表,请参见权限策略和授权项。 管理控制台操作 GaussDB(DWS)资源操作及对应的授权项如表1所示。 GaussDB(DWS)部分授权项依赖的授权项包括了E CS 、VPC、EVS、ELB、 MRS 或OBS等服务的授权项,如果这些服务没有对接相应的服务授权项,则需要添加对应服务的Admin系统权限。 由于GaussDB(DWS)接口较多,以下列表仅列举了重点高频操作接口,剩余未展示接口仅支持project项目(即IAM鉴权),不支持企业项目鉴权,故如果要使用,请在IAM鉴权界面配置。 表1 GaussDB(DWS) 资源操作授权项列表 GaussDB(DWS) 资源操作 授权项 依赖的授权项 授权项作用域 创建集群 "dws:cluster:create" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:securityGroupRules:delete", "vpc:ports:update", "evs:*:get*", "evs:*:list*", "evs:*:create*", 支持: 项目(Project) 企业项目(Enterprise Project) 获取集群列表 "dws:cluster:list" -- 支持: 项目(Project) 企业项目(Enterprise Project) 获取单个集群详情 "dws:cluster:getDetail" "dws:*:get*", "dws:*:list*", "vpc:vpcs:list", "vpc:securityGroups:get" 支持: 项目(Project) 企业项目(Enterprise Project) 设置自动快照 "dws:cluster:setAutomatedSnapshot" "dws:backupPolicy:list" 支持: 项目(Project) 企业项目(Enterprise Project) 设置安全参数/参数组 "dws:cluster:setSecuritySettings" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 重启集群 "dws:cluster:restart" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 扩容集群 "dws:cluster:scaleOut" "dws:*:get*", "dws:*:list*", "dws:cluster:scaleOutOrOpenAPIResize", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:*:update*", "evs:*:get*", "evs:*:list*", "evs:*:create*", 支持: 项目(Project) 企业项目(Enterprise Project) 使用API扩容集群或调整大小 "dws:cluster:scaleOutOrOpenAPIResize" "dws:*:get*", "dws:*:list*", "vpc:vpcs:list", "vpc:ports:create", "vpc:ports:get", "vpc:ports:update", "vpc:subnets:get", "vpc:subnets:update", "vpc:subnets:create", "vpc:routers:get", "vpc:routers:update", "vpc:networks:create", "vpc:networks:get", "vpc:networks:update", "ecs:serverInterfaces:use", "ecs:serverInterfaces:get", "ecs:cloudServerFlavors:get" 支持: 项目(Project) 企业项目(Enterprise Project) 重置密码 "dws:cluster:resetPassword" "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*", "eip:*:get*", "eip:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 解绑EIP "dws:eip:operate" "dws:*:get*", "dws:*:list*", "eip:*:get*", "eip:*: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*", "mrs:*:get*", "mrs:*:list*", "mrs:cluster:create", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*" 支持: 项目(Project) 企业项目(Enterprise Project) 更新MRS连接 "dws:MRSConnection:update" "dws:*:get*", "dws:*:list*", "mrs:*:get*", "mrs:*:list*", "mrs:cluster:create", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*" 支持: 项目(Project) 企业项目(Enterprise Project) 删除MRS连接 "dws:MRSConnection:delete" "dws:*:get*", "dws:*:list*", "mrs:*:get*", "mrs:*:list*", "mrs:cluster:create" "ecs:*:get*", "ecs:*:list*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:delete*", 支持: 项目(Project) 企业项目(Enterprise Project) MRS数据源列表 "dws:MRSSource:list" "mrs:cluster:list", "mrs:tag:listResource", "mrs:tag:list", "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 添加/删除标签 "dws:tag:addAndDelete" "dws:*:get*", "dws:*:list*", "dws:openAPITag:update", "dws:openAPITag:getResourceTag", 支持: 项目(Project) 企业项目(Enterprise Project) 编辑标签 "dws:tag:edit" "dws:*:get*", "dws:*:list*", "dws:openAPITag:update", "dws:openAPITag:getResourceTag", 支持: 项目(Project) 企业项目(Enterprise Project) 创建快照 "dws:snapshot:create" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 获取快照列表 "dws:snapshot:list" -- 支持: 项目(Project) 企业项目(Enterprise Project) 查看单个集群快照列表 "dws:clusterSnapshot:list" "dws:cluster:list", "dws:openAPICluster:getDetail" 支持: 项目(Project) 企业项目(Enterprise Project) 删除快照 "dws:snapshot:delete" "dws:snapshot:list" 支持: 项目(Project) 企业项目(Enterprise Project) 复制快照 "dws:snapshot:copy" "dws:snapshot:list", "dws:snapshot:create" 支持: 项目(Project) 企业项目(Enterprise Project) 恢复到新集群 "dws:cluster:restore" "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:resize" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:create*", "evs:*:delete*" 支持: 项目(Project) 企业项目(Enterprise Project) 主备恢复 "dws:cluster:switchover" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询弹性负载均衡列表 "dws:elb:list" "dws:*:get*", "dws:*:list*", "elb:*:get*", "elb:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 绑定弹性负载均衡 "dws:elb:bind" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "vpc:*:get*", "vpc:*:list*", "evs:*:get*", "evs:*:list*", "elb:*:get*", "elb:*:list*", "elb:*:delete*", "elb:*:create*", 支持: 项目(Project) 企业项目(Enterprise Project) 解绑弹性负载均衡 "dws:elb:unbind" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "vpc:*:get*", "vpc:*:list*", "evs:*:get*", "evs:*:list*", "elb:*:get*", "elb:*:list*", "elb:*:delete*", 支持: 项目(Project) 企业项目(Enterprise Project) 查询快照配置参数 "dws:snapshotConfig:list" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 更新快照策略 "dws:backupPolicyDetail:update" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 删除快照策略 "dws:backupPolicy:delete" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 查询快照策略 "dws:backupPolicy:list" "dws:cluster:list" 支持: 项目(Project) 企业项目(Enterprise Project) 查询集群加密信息 "dws:clusterEncryptInfo:list" "dws:*:get*", "dws:*:list*", "KMS Administrator" 支持: 项目(Project) 企业项目(Enterprise Project) 创建代理 "dws:createAgency:create" "dws:*:get*", "dws:*:list*", "security administrator" 支持: 项目(Project) 企业项目(Enterprise Project) 查询obs桶信息 "dws:queryBuckets:list" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 扩容节点 "dws:expandWithExistedNodes:update" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:*:update*", "evs:*:get*", "evs:*:list*", "evs:*:create*", 支持: 项目(Project) 企业项目(Enterprise Project) 删除容灾备份 "dws:disasterRecovery: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:disasterRecovery: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:disasterRecovery:otherOperate" "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:disasterRecovery:get" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "vpc:*:get*", "vpc:*:list*", "evs:*:get*", "evs:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 增加CN节点 "dws:module:install" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 删除CN节点 "dws:module:uninstall" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 删除节点 "dws:clusterNodes:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 更新节点别名 dws:instanceAliasName:update dws:cluster:list 支持: 项目(Project) 企业项目(Enterprise Project) 实施重分布 "dws:redistribution:operate" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 查询重分布 "dws:redistributionInfo:list" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 停止重分布 "dws:redistribution:suspend" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 恢复重分布 "dws:redistribution:recover" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 磁盘扩容 "dws:disk:expand" "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:shrink" "dws:*:get*", "dws:*:list*", "dws:createAgency:create", "ecs:*:get*", "ecs:*:list*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:delete*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询规格产品信息 "dws:specProduct:list" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 按需转包周期 "dws:ondemandToPeriod:operate" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "vpc:securityGroupRules:delete", "evs:*:get*", "evs:*:list*", "evs:*:create*", "bss:coupon:view", "bss:order:pay", "bss:order:view", "bss:contract:update", "bss:balance:view", "bss:renewal:view", "bss:unsubscribe:update", "bss:renewal:update", "bss:order:update" 支持: 项目(Project) 企业项目(Enterprise Project) 获取DWS资源 "dws:resources:list" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*", "bss:coupon:view", "bss:order:pay", "bss:order:view", "bss:contract:update", "bss:balance:view", "bss:renewal:view", "bss:unsubscribe:update", "bss:renewal:update", "bss:order:update" 支持: 项目(Project) 企业项目(Enterprise Project) 修改包周期集群 "dws:periodCluster:modify" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:delete*", "vpc:*:get*", "vpc:*:list*", "vpc:*:delete*", "evs:*:get*", "evs:*:list*", "evs:*:delete*", "bss:coupon:view", "bss:order:pay", "bss:order:view", "bss:contract:update", "bss:balance:view", "bss:renewal:view", "bss:unsubscribe:update", "bss:renewal:update", "bss:order:update" 支持: 项目(Project) 企业项目(Enterprise Project) 创建包周期集群 "dws:periodCluster:create" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*", "vpc:*:get*", "vpc:*:list*", "vpc:*:create*", "evs:*:get*", "evs:*:list*", "evs:*:create*", "bss:coupon:view", "bss:order:pay", "bss:order:view", "bss:contract:update", "bss:balance:view", "bss:renewal:view", "bss:unsubscribe:update", "bss:renewal:update", "bss:order:update" 支持: 项目(Project) 企业项目(Enterprise Project) 创建集群前检查 "dws:checkCluster: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:periodExpandPrecheck:operate" "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) 绑定管理面IP "dws:bindManageIp:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 获取用户授权 "dws:checkAuthorize:operate" "dws:*:get*", "dws:*:list*", "dws:checkSupport:operate" 支持: 项目(Project) 企业项目(Enterprise Project) 用户授权 "dws:authorize:operate" "dws:*:get*", "dws:*:list*", "dws:checkSupport:operate" 支持: 项目(Project) 企业项目(Enterprise Project) 获取用户数据库 "dws:userDatabase:list" "dws:*:get*", "dws:*:list*", "dws:checkSupport:operate" 支持: 项目(Project) 企业项目(Enterprise Project) 获取用户结构 "dws:schemas:list" "dws:*:get*", "dws:*:list*", "dws:checkSupport:operate" 支持: 项目(Project) 企业项目(Enterprise Project) 获取用户表 "dws:tables:list" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 表恢复 "dws:tableRestore:operate" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 用户恢复表名检测 "dws:tableRestoreCheck:operate" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 检测集群是否支持细粒度备份 "dws:checkSupport:operate" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 查询支持变更的规格列表 "dws:supportFlavors:list" "dws:*:get*", "dws:*:list*", 支持: 项目(Project) 企业项目(Enterprise Project) 执行弹性变更规格 "dws:specResize:operate" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:create*" 支持: 项目(Project) 企业项目(Enterprise Project) 停止快照 "dws:snapshot:stop" "dws:snapshot:list" 支持: 项目(Project) 企业项目(Enterprise Project) 终止会话 "dws:dmsSession:terminate" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 负荷诊断报告操作 "dws:dmsWorkloadDiagnosisReport:create" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 修改告警规则 "dws:dmsAlarmRule:update" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 启用告警规则 "dws:dmsAlarmRule:enable" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 启用集群告警 "dws:dmsClusterAlarm:enable" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 禁用集群告警 "dws:dmsClusterAlarm:disable" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) GRPC对外服务 "dws:dmsGrpcOuter:operation" "dws:dmsQuery:list", "dws:cluster:setSecuritySettings", "obs:bucket:ListAllMyBuckets" 支持: 项目(Project) 企业项目(Enterprise Project) 新增SQL探针 "dws:dmsProbe:add" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 修改SQL探针 "dws:dmsProbe:update" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 删除SQL探针 "dws:dmsProbe:delete" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 启用/禁用SQL探针 "dws:dmsProbe:enable" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 创建用户面板 "dws:dmsUserBoard:create" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 修改用户面板 "dws:dmsUserBoard:update" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 删除用户面板 "dws:dmsUserBoard:delete" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 终止查询 "dws:dmsQuery:terminate" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 启停DMS监控服务 "dws:dmsService:enableOrDisable" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 修改DMS存储配置 "dws:dmsStorageConfig:modify" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) DDL审核创建获取 "dws:dmsDdlExamine:getOrCreate" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 负荷快照操作 "dws:dmsWorkloadDiagnosisSnapshot:create" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 创建告警规则 "dws:dmsAlarmRule:add" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 删除告警规则 "dws:dmsAlarmRule:delete" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 执行SQL探针 "dws:dmsProbe:execute" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 删除监控项 "dws:dmsPerformanceMonitor:delete" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 启停DMS监控采集项 "dws:dmsCollectItem:enableOrDisable" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 修改DMS监控采集配置 "dws:dmsCollectConfig:modify" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 条件查询 "dws:dmsQuery:list" "dws:cluster:list" 支持: 项目(Project) 企业项目(Enterprise Project) OPENAPI条件查询 "dws:dmsOpenapiQuery:list" "dws:cluster:list" 支持: 项目(Project) 企业项目(Enterprise Project) 禁用告警规则 "dws:dmsAlarmRule:disable" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 删除告警记录 "dws:dmsAlarmRecord:delete" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 检查SQL探针 "dws:dmsProbe:check" "dws:dmsGrpcOuter:operation" 支持: 项目(Project) 企业项目(Enterprise Project) 新增监控项 "dws:dmsPerformanceMonitor:add" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 修改监控项 "dws:dmsPerformanceMonitor:update" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 下载历史监控趋势 "dws:dmsTrendHistory:down" "dws:dmsQuery:list" 支持: 项目(Project) 企业项目(Enterprise Project) 获取集群ring环信息 "dws:ring:list" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 获取群进程拓扑 "dws:processTopo:list" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询智能运维信息 "dws:operationalTask:get" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 智能运维执行操作 "dws:operationalTask:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 逻辑集群增删改操作 "dws:logicalCluster:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 逻辑集群查询操作 "dws:logicalCluster:get" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 逻辑集群弹性计划操作 "dws:logicalClusterPlan:operate" "dws:*:get*", "dws:*:list*", "dws:logicalCluster:*", "dws:cluster:scaleOut", "iam:agencies:*", "iam:permissions:*Agency*" 支持: 项目(Project) 企业项目(Enterprise Project) 创建终端节点服务 "dws:vpcEndpointService:create" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询资源管理信息 "dws:workLoadManager:get" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 资源管理相关操作 "dws:workLoadManager:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 云日志 服务相关操作 "dws:ltsAccess:operate" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询云日志服务信息 "dws:ltsAccess:get" "dws:*:get*", "dws:*:list*" 支持: 项目(Project) 企业项目(Enterprise Project) 查询事件信息 "dws:event:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询事件规格信息 "dws:event:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询事件订阅信息 "dws:eventSub:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 创建事件订阅信息 "dws:eventSub:create" "dws:*:get*", "dws:*:list*", 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 更新事件订阅信息 "dws:eventSub:update" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 删除事件订阅信息 "dws:eventSub:delete" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询告警统计信息 "dws:alarmStatistic:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询告警详情信息 "dws:alarmDetail:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询告警配置信息 "dws:alarmConfig:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询告警订阅信息 "dws:alarmSub:list" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 创建告警订阅信息 "dws:alarmSub:create" "dws:*:get*", "dws:*:list*", 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 更新告警订阅信息 "dws:alarmSub:update" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 删除告警订阅信息 "dws:alarmSub:delete" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 下发集群升级相关操作(升级、回滚、提交、重试) "dws:cluster:doUpdate" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询集群可用的升级路径信息 "dws:cluster:getUpgradePaths" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 查询集群升级记录 "dws:cluster:getUpgradeRecords" "dws:*:get*", "dws:*:list*" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 启动集群 "dws:cluster:startCluster" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:start", "ecs:*:stop" 不支持 企业项目(Enterprise Project) 支持: 项目(Project) 停止集群 "dws:cluster:stopCluster" "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "ecs:*:start", "ecs:*:stop" 不支持 企业项目(Enterprise Project) 支持: 项目(Project)
  • 策略语法 在IAM左侧导航窗格中,单击“策略”,单击策略名称,可以查看策略的详细内容,以“DWS ReadOnlyAccess”为例,说明细粒度策略的语法。 图2 设置策略 { "Version": "1.1", "Depends": [], "Statement": [ { "Effect": "Allow", "Action": [ "dws:*:get*", "dws:*:list*", "ecs:*:get*", "ecs:*:list*", "vpc:*:get*", "vpc:*:list*", "evs:*:get*", "evs:*:list*", "mrs:*:get*", "bss:*:list*", "bss:*:get*" ] } ] } Version:标识策略的版本号,主要用于区分Role-Based Access Control(RBAC)策略和细粒度策略。 1.0:RBAC策略。RBAC策略是将服务作为一个整体进行授权,授权后,用户可以拥有这个服务的所有权限。 1.1:经典细粒度策略。相比RBAC策略,细粒度策略基于服务的API接口进行权限拆分,授权更加精细。授权后,用户可以对这个服务执行特定的操作。细粒度策略包括系统预置和用户自定义两种。 Depends:依赖项。 Statement:策略授权语句,描述策略的详细信息,包含Effect(作用)和Action(授权项)。 Effect(作用) 作用包含两种:Allow(允许)和Deny(拒绝),系统预置策略仅包含Allow(允许)的授权语句,自定义策略中可以同时包含Allow(允许)和Deny(拒绝)的授权语句,当策略中既有Allow(允许)又有Deny(拒绝)的授权语句时,遵循Deny(拒绝)优先的原则。 Action(授权项) 对资源的具体操作权限,格式为:“服务名:资源类型:操作”,支持单个或多个操作权限,支持通配符号*,通配符号表示所有。 示例:"dws:cluster:create",其中dws为服务名,cluster为资源类型,create为操作,该授权项表示创建GaussDB(DWS) 集群的权限。
  • 概览 容灾,即在另一个可用分区(Region内)部署一个同构的GaussDB(DWS)灾备集群,如果生产集群所处的地理位置发生自然灾害,或者集群内部出现了故障从而导致生产集群无法正常对外提供读写服务,那么灾备集群可以切换为生产集群,从而保障业务连续性。架构图如下所示: Region内容灾特性仅8.1.1及以上集群版本支持。 实时数仓(单机部署)不支持容灾功能。 DWS 3.0集群和多AZ集群暂不支持容灾功能。 若用户灾备集群使用包周期套餐,则会在包周期到期冻结一段时间后自动删除,请用户及时续费,以免删除灾备集群导致容灾异常。
  • 约束与限制 非细粒度灾备集群在数据同步期间,无法提供读写服务。 灾备集群在容灾任务停止或者异常但灾备集群正常的情况下,可以提供读服务,灾备切换成功后可以提供读写服务。 容灾创建后,生产集群快照功能正常使用,但是灾备集群禁用快照功能,以及生产、灾备集群均禁用恢复功能。 不支持逻辑集群。 不支持资源池。 使用冷热表后,冷数据同步依赖OBS。 容灾不支持同步配置的外部数据源数据。 容灾管理为同一租户下的双集群容灾。 创建容灾需要生产集群与灾备集群类型、版本号一致且逻辑同构。 Region内容灾生产集群和灾备集群需要在同一个VPC内。 Region内容灾在生产集群与容灾集群切换后绑定的弹性负载均衡(ELB)会自动切换到新的生产集群,过程中会有短暂的连接中断,请注意在变更时间窗内尽量避免业务语句写入。 Region内容灾在生产集群与容灾集群,原生产集群所在的EIP和内网域名,连接IP地址不会自动切换,业务系统中如果有使用EIP、域名或者IP方式连接,需要切换到新集群。
  • 功能对比 以上各种弹性伸缩功能的对比如下。 表2 功能对比 功能 伸缩对象 伸缩范围 业务影响 试用范围 弹性磁盘扩容 磁盘容量调整。 原集群的所有ECS挂载的EVS盘。 通常会在5-10分钟内完成,也不涉及服务重启,不影响业务,但建议业务低峰期进行。 集群版本:8.1.1.203及以后 产品形态:标准数仓、实时数仓 弹性变更规格 算力调整。 原集群的所有ECS规格(CPU核数,内存大小)。 通常会在5-10分钟内完成,但是过程中会重启一次,涉及业务分钟级别中断,建议业务低峰期进行。 集群版本:8.1.1.300及以后 产品形态:标准数仓、实时数仓 集群扩容 磁盘容量调整、算力调整。 分布式架构扩展对等同构的ECS节点。 支持在线,在线扩容过程中,DWS服务不重启,持续对外提供服务。 耗时与用户的数据库对象数量和数据量正相关。 集群版本:所有版本,8.1.1开始支持在线 产品形态:标准数仓、实时数仓 集群缩容 磁盘容量调整、算力调整。 分布式架构收缩部分ECS节点。 支持在线,在线缩容过程中,DWS服务不重启,持续对外提供服务。 耗时与用户的数据库对象数量和数据量正相关。 集群版本:8.1.1.300 产品形态:标准数仓、实时数仓 集群调整大小 磁盘容量调整、算力调整、集群拓扑结构。 使用新规格(硬件规格调整),新拓扑(集群规模调整)新建集群,再做新老集群数据重分布。 数据库只读,耗时与用户的数据库对象数量和数据量正相关。 集群版本:agent8.2.0.2及以后版本 产品形态:标准数仓 增删CN 数据库CN实例。 增加CN扩展业务并发度提升,删除CN快速恢复DDL业务。 支持在线,增删CN过程中,DWS服务不重启,持续对外提供服务。 集群版本:8.1.1版本,8.1.3开始支持在线 产品形态:标准数仓、实时数仓
  • 弹性伸缩应用场景 不同的弹性伸缩功能应用在不同的业务场景下,具体参见表3。 表3 应用场景 分类 弹性伸缩诉求 推荐弹性伸缩方式 业务影响评估 预估耗时评估 存储 存储空间不够, CPU,内存,磁盘IO非瓶颈。 磁盘扩容。 在线。 不涉及数据搬迁,5-10分钟。 存储空间太大,降本 CPU,内存,磁盘IO非瓶颈。 创建同规格、小存储容量集群,通过容灾方式把主集群迁移到备集群。 容灾切换过程中集群只读,一般30分钟内。 耗时与数据量正相关。 算力 CPU或内存存在瓶颈。 弹性规格变更。 重启一次集群。 不涉及数据搬迁,5-10分钟。 磁盘IO存在瓶颈。 创建同规格、小存储容量集群,通过容灾方式把主集群迁移到备集群。 容灾切换过程中集群只读,一般30分钟内。 耗时与数据量正相关。 分布式算力 & 存储 节点数不足导致分布式能力弱。 集群扩容。 在线(部分限制)。 涉及数据搬迁,耗时和数据量与元数量正相关。 节点数多导致成本高。 集群缩容。 在线(部分限制)。 涉及数据搬迁,耗时和数据量正相关。 拓扑结构 同时修改拓扑和规格诉求(DN数不一致)。 调整集群大小。 只读。 涉及数据搬迁,耗时和数据量与元数量正相关。 同时修改拓扑和规格诉求(DN数一致)。 集群容灾迁移。 在线(部分限制)。 涉及数据搬迁,耗时和数据量正相关。 并发度不够。 增删CN。 在线(部分限制)。 涉及数据搬迁,耗时和元数据量正相关。
  • 集群调整大小 集群调整大小也叫集群resize,是一个非常全面的功能,它能满足你所有的弹性伸缩需求,它既支持集群规模的Scale out、Scale in,也支持硬件规格的Scale up,Scale down,同时支持集群拓扑结构的重组。 DWS resize基于多nodegroup和数据重分布实现,resize过程中会按照新的资源诉求(硬件升降配)和集群规划(集群规模扩缩)部署一套新集群,然后和老集群做数据重分布,数据迁移完成后,会把业务迁移到新集群,然后释放老集群。 集群resize涉及数据搬迁,会把老集群节点上的数据重分布到新集群节点上(老集群节点上数据还在),因此集群resize耗时与用户的数据库对象数量和数据量正相关。 DWS标准数仓支持集群resize功能,需agent升级到8.2.0.2版本后支持。目前resize期间老集群只支持只读业务。后续会提供在线能力。 具体操作参见经典变更规格。 图9 集群调整大小
  • 弹性磁盘扩容 弹性磁盘扩容是指调整当前集群的所有的ECS节点上挂载的所有EVS磁盘大小,主要针对需要快速调整磁盘扩容的需求。 仅支持磁盘扩容,不支持缩容。 磁盘扩容是轻量级操作,不涉及数据搬迁,通常会在5-10分钟内完成,也不涉及服务重启,不影响业务,建议选择在业务低峰期进行存储扩容。 弹性磁盘扩容支持GaussDB(DWS)标准数仓,实时数仓的EVS盘规格。集群版本在8.1.1.203及以后版本支持。 具体操作参见EVS集群磁盘扩容。 图3 弹性磁盘扩容
  • 集群扩容 集群扩容是分布式MPPDB架构横向扩展的典型场景,通过添加对等同构的节点到当前集群来完成集群规模横向扩展的能力。DWS 2.0属于存算一体架构,因此集群扩容同时扩容了计算能力和存储能力。 为了扩容后集群内各节点负载均衡,性能最优,集群扩容会进行元数据复制和数据重分布,把数据重新均匀分布到新节点,因此集群扩容耗时与用户的数据库对象数量和数据量正相关。同时为了架构可靠性,新扩容的节点会自动组织成环,因此每次扩容至少扩容3个节点。 图5 集群扩容 8.1.1版本以后支持了在线扩容。在线扩容过程中,DWS服务不重启,持续对外提供服务。表重分布期间用户可以对该表执行插入、更新、删除,但重分布过程仍然会短时间阻塞用户的数据更新操作,会影响用户语句的执行性能。扩容重分布过程会消耗大量的CPU和IO资源,因此会对用户作业性能影响较大,用户应该尽可能在停止业务或业务轻载的情况下执行扩容重分布。用户也可以考虑分段扩容重分布策略,在系统负载很小的情况下采用高并发进行扩容重分布,在系统负载大的情况下停止扩容重分布或采用低并发进行扩容重分布。 集群扩容分为分段扩容和一键式扩容两种操作方式。 分段扩容把扩容操作分成添加主机,扩容,数据重分布三个阶段,用户可分段操作,把变更风险和业务影响降低到最低。 直接扩容是一键式操作,用户操作便捷度更高。 表1 扩容方式对比 扩容方式 特点 业务影响 分段扩容 把扩容操作分成添加主机,扩容,数据重分布三个阶段,用户可分段操作。 把变更风险和业务影响降低到最低。 一键式扩容 一键式操作,自动做DWS主机发放,扩容添加节点和数据重分布。 用户操作便捷度更高。
  • 增删CN 增删CN属于DWS数据库实例收缩操作,可以扩展和收缩数据库CN实例。 CN全称协调节点(Coordinator Node)是和用户关系最密切也是DWS内部非常重要的一个组件,它负责提供外部应用接口、优化全局执行计划、向Datanode分发执行计划,以及汇总、处理执行结果。 CN是外部应用的接口,CN的并发能力直接决定了业务的并发度。因此可以通过增加CN来扩展分布式能力,提升业务并发度。 同时由于CN是多主多活架构,为了保证数据一致性,如果部分CN数据损坏,DDL业务将受到阻塞,可以通过删除故障CN来快速恢复DDL业务。 DWS标准数仓、实时数仓支持增删CN功能,在8.1.1及以后版本支持。 增加CN过程中会同步元数据,因此增加CN耗时和元数据数量正相关,8.1.3版本支持在线增删CN,增加CN过程中DWS服务不重启,持续对外提供服务,DDL业务会短暂阻塞(不报错),其余业务不受影响。 图8 增删CN
  • 弹性变更规格 弹性规格变更是指调整当前集群的节点规格,主要针对CPU、内存两种资源的变更。适用于需要快速调整CPU以及内存规格的需求。 规格是指不同数量的CPU和内存的一种组合,例如:dwsx.16xlarge(CPU:64 Memory:512G )。 弹性规格变更是轻量级操作,不涉及数据搬迁,通常会在5-10分钟内完成,但是过程中会重启一次,涉及业务分钟级别中断,建议选择在业务低峰期进行。 弹性规格变更支持GaussDB(DWS)标准数仓、实时数仓的EVS规格。集群版本在8.1.1.300及以后版本支持。 具体操作参见弹性变更规格。 图4 弹性变更规格
  • 集群拓扑详解 要想充分理解DWS的弹性伸缩能力,首先需要了解DWS的集群拓扑结构。如下是DWS的简单的ECS+EVS部署结构: ECS提供计算资源,包括CPU、内存配置,DWS数据库实例(CN、DN等)都部署在ECS上。 EVS提供存储资源,每个DN都会挂载一块EVS云盘。 而组成DWS集群的所有ECS节点都部署在同一个VPC内部,提供高速网络通道。 部署在ECS上的所有数据库实例逻辑上组成一个分布式的MPPDB架构集群,对外提供数据分析处理能力。 图1 集群拓扑
  • DWS集群安全环 集群扩容和缩容都和安全环相关,安全环是指DN多副本横向部署的最小主机集合。安全环主要作用是故障隔离。环内主机出现故障,故障不会扩散到环外。 DWS属于主备从架构,因此最小安全环节点数为3个节点。环内出现故障时,对环外无影响,对整个集群的影响的节点范围最小(3节点),对环内每个节点的影响为1/(N-1),即1/2。极端场景下整个集群是一个安全环。环内出现故障,对整个集群的影响的节点范围最大(整个集群),对环内每个节点的影响最小,为1/(N-1)。 一种常见的做法是N+1成环,每个节点把他的N个备机均匀分散部署到环内的其余N个节点上。环内出现故障时,对整个集群的影响的节点范围为N+1,对环内每个节点的影响为1/N。 图6 典型N+1安全环