更新时间:2024-09-26 GMT+08:00

权限管理

如果账号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用DDM服务的其它功能。

如果您需要对购买的DDM资源,为企业中的员工设置不同的访问权限,为达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制资源的访问。

通过IAM,您可以在账号中给员工创建IAM用户,并授权控制他们对资源的访问范围。例如您的员工中有负责软件开发的人员,您希望开发人员拥有DDM的使用权限,但是不希望他们拥有删除DDM等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DDM,但是不允许删除DDM的权限,控制他们对DDM资源的使用范围。

IAM是提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。

DDM权限

默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。

DDM部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问DDM时,需要先切换至授权区域。

根据授权精细程度分为角色和策略。
  • 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云服务平台各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
  • 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DDM服务,管理员能够控制IAM用户仅能对某一类数据库资源进行指定的管理操作。
    表1 DDM系统策略

    策略名称

    描述

    类别

    依赖关系

    DDM FullAccess

    分布式数据库中间件服务所有权限。

    系统策略

    无。

    DDM CommonOperations

    分布式数据库中间件服务普通权限(除创建实例、删除实例、分片变更、分片变更回滚、规格变更、节点扩容外的所有权限)。

    系统策略

    无。

    DDM ReadOnlyAccess

    分布式数据库中间件服务只读权限。

    系统策略

    无。

DDM系统策略具体权限配置如下:
  • DDM FullAccess
    {
          "Version": "1.1",
           "Statement": [{
    	    "Action": ["ddm:*:*",
    	    "rds:instance:list",
                "rds:instance:modify",
                "rds:instance:modifyParameter",
    	    "vpc:*:*",
                "ecs:*:get*",
                "ecs:*:list*",
                "ecs:cloudServerNics:update",
                "ecs:serverInterfaces:use"],
    	     "Effect": "Allow"
    		}]
    	}
  • DDM CommonOperations
    {
    	"Version": "1.1",
    	"Statement": [{
    				"Action": [
    					"vpc:*:*list*",
    					"vpc:*:*get*",
    					"vpc:ports:update",
    					"ecs:*:get*",
    					"ecs:*:list*",
    					"rds:instance:list",
    					"rds:instance:modify",
    					"rds:instance:modifyParameter"
    				],
    				"Effect": "Allow"
    				},
    				{
    					"Condition": {
    						"StringEqualsIgnoreCase": {
    							"g:ServiceName": [
    								"ddm"
    							]
    						}
    					},
    					"NotAction": [
    						"ddm:instance:create",
    						"ddm:instance:delete",
    						"ddm:database:migrate*",
    						"ddm:instance:resize",
    						"ddm:instance:extendNode"
    					],
    					"Effect": "Allow"
    		}]
    	}
  • DDM ReadOnlyAccess
    {
         "Version": "1.1",
         "Statement": [{
                        "Action": [
                            "rds:instance:list",
                            "vpc:*:*list*",
                            "vpc:*:*get*",
                            "ecs:*:get*",
                            "ecs:*:list*",
                            "ddm:*:list",
                            "ddm:*:get",
                            "ddm:instance:listParameter",
                            "ddm:instance:listRwInfo",
                            "ddm:instance:listSlowSqlInfo",
                            "ddm:rds:connectivity"
                        ],
                        "Effect": "Allow"
    		}]
    	}
DDM常用操作与系统策略的授权关系详见表2 常用操作与系统策略的关系,您可以参照该表选择合适的系统策略。
表2 常用操作与系统策略的关系

操作

DDM FullAccess

DDM CommonOperations

DDM ReadOnlyAccess

查询实例列表

支持

支持

支持

查询实例详情

支持

支持

支持

修改实例信息(修改名称,修改安全组)

支持

支持

不支持

重启实例

支持

支持

不支持

创建实例

支持

不支持

不支持

删除实例

支持

不支持

不支持

规格变更

支持

不支持

不支持

节点扩容

支持

不支持

不支持

创建逻辑库

支持

支持

不支持

查询逻辑库列表

支持

支持

支持

查询逻辑库详情

支持

支持

支持

分片变更失败-回滚、

分片变更失败-清理

分片变更失败-重试

支持

不支持

不支持

删除逻辑库

支持

支持

不支持

查询账号列表

支持

支持

支持

创建账号

支持

支持

不支持

修改账号

支持

支持

不支持

重置密码

支持

支持

不支持

删除账号

支持

支持

不支持

同步数据节点

支持

支持

不支持

查询数据节点列表

支持

支持

支持

查询数据节点详情

支持

支持

支持

修改数据节点读策略

支持

支持

不支持

查看产品信息列表

支持

支持

支持

创建参数模板

支持

支持

不支持

删除参数模板

支持

支持

不支持

应用参数模板

支持

支持

不支持

修改参数模板

支持

支持

不支持

复制参数模板

支持

支持

不支持

比较参数模板

支持

支持

支持

查询参数模板

支持

支持

支持

查看标签列表

支持

支持

支持

添加/修改/删除标签

支持

支持

不支持

查询会话

支持

支持

支持

Kill会话

支持

支持

不支持

表3 常用操作与对应授权项

操作分类

详细操作

对应的操作权限

日常操作

购买实例(按需)

购买实例(包年包月)

ddm:instance:create

购买实例操作依赖以下权限,即要配置购买实例权限,必须配置以下依赖的权限,否则购买失败。

  • ecs:*:get*
  • ecs:*:list*
  • vpc:vpcs:list
  • vpc:securityGroups:get
  • vpc:subnets:get
  • ecs:cloudServerNics:update
  • ecs:serverInterfaces:use
  • 全局/区域级指定vpc:ports:*
  • BSS Finance、BSS Operator系统策略

    只有购买实例(包年包月)操作才依赖这个权限。

查询实例列表

ddm:instance:list

查询实例详情

ddm:instance:get

查询实例详情操作依赖以下权限,即要配置查询实例详情权限,必须配置以下依赖的权限,否则查询信息不全。

  • vpc:*:get*
  • vpc:*:list*

修改实例信息(修改名称、修改安全组、添加/修改/删除标签)

ddm:instance:modify

修改安全组操作依赖以下权限,即要修改安全组权限,必须配置以下依赖的权限,否则修改失败。
  • vpc:*:get*
  • vpc:*:list*
  • vpc:ports:update

重启实例

ddm:instance:reboot

删除实例

ddm:instance:delete

vpc:ports:delete

规格变更

ddm:instance:resize

节点扩容

ddm:instance:extendNode

读占比监控查询

ddm:instance:listRwInfo

慢SQL监控查询

ddm:instance:listSlowSqlInfo

日常操作

实例续费(包年包月)

需要配置BSS Finance、BSS Operator系统策略。设置方法如下:

  1. 登录“统一身份认证页面”。
  2. 在左侧导航窗格中,单击“用户组”。
  3. 在“用户组”列表中,单击 “权限配置”,修改用户组的权限。
  4. 单击需要修改权限的项目右侧的“设置策略”。
  5. 在“可选策略”列表中选择需要新增的BSS Finance、BSS Operator系统策略。

日常操作

转包周期

需要配置BSS Finance、BSS Operator系统策略。设置方法同续费操作中。

逻辑库相关操作

创建逻辑库

ddm:database:create

查询逻辑库列表

ddm:database:list

查询逻辑库详情

ddm:database:get

分片变更失败-回滚、

分片变更失败-清理

分片变更失败-重试

ddm:database:migrateRollback

删除逻辑库

ddm:database:delete

账号相关操作

查询账号列表

ddm:user:list

创建账号

ddm:user:create

修改账号

ddm:user:modify

重置密码

ddm:user:modify

删除账号

ddm:user:delete

数据节点管理相关操作(以RDS为例)

同步数据节点

ddm:rds:synchro

同步数据节点操作依赖以下权限,即要配置同步数据节点权限,必须配置以下依赖的权限,否则同步数据节点失败。

  • rds:instance:list
  • rds:instance:modify
  • rds:instance:modifyParameter

查询数据节点列表

ddm:rds:list

查询数据节点详情

ddm:rds:get

修改数据节点读策略

ddm:rds:modifyReadPolicy

产品相关操作

查看产品信息列表

ddm:product:list

参数模板相关操作

创建参数模板

ddm:param:create

删除参数模板

ddm:param:delete

应用参数模板

ddm:param:apply

修改参数模板

ddm:param:update

复制参数模板

ddm:param:create

比较参数模板

ddm:param:list

查询参数模板

ddm:param:list

标签相关

查询标签列表

ddm:tag:list

添加/修改/删除标签

ddm:tag:modify

会话管理相关

查询会话

ddm:instance:queryProcessList

Kill会话

ddm:instance:killProcessList