RAM授权支持通过多种方式(ARN授权、资源组授权、标签授权)实现精细化管理,本文以授权RAM用户仅对指定实例具有只读权限为例,演示不同授权方式的具体操作步骤。
前提条件
已创建RAM用户。具体操作,请参见创建RAM用户。
如何选择授权方式
- ARN授权 - 特点:通过ARN授权,可以精确地为特定的RDS实例分配只读权限。 
- 适用场景:适合对单个或少量特定RDS实例进行精细权限控制。 
- 示例:开发环境中的某个特定数据库实例。 
 
- 资源组授权 - 特点:资源组可以将多个RDS实例归类到同一个资源组中。通过资源组授权,可以一次性为多个RDS实例分配相同的权限。 
- 适用场景:适合对一组具有相似特征的RDS实例进行批量授权。 
- 示例:当多个RDS实例分布在不同的地域或项目中,但这些RDS实例需要具有相同的安全策略时,可以将这些实例归入一个资源组,并为该资源组内的所有实例统一设置只读权限。 
 
- 标签授权 - 特点:通过标签授权,可以根据标签的键值组合来动态分配权限。 
- 适用场景:当希望通过标签对RDS实例进行灵活的权限管理时,选择标签授权。适合根据业务属性或其他元数据灵活控制权限。 
- 示例:假设有多个RDS实例,分别带有不同的标签(如 - env=prod、- env=test、- project=finance等),您可以通过标签授权规则,允许某些用户仅访问带有特定标签的RDS实例,而不必逐一配置每个实例的权限。
 
操作步骤
以下授权操作需要由主账号进行操作。
方式一:基于ARN的授权
基于ARN的授权方式,是在创建权限策略时,使用资源ARN(Aliyun Resource Name)来描述被授权的一个或多个对象,实现对指定资源的精准授权。资源ARN的更多信息,请参见权限策略基本元素。
- 创建权限策略。 - 登录RAM控制台。 
- 在左侧导航栏选择权限管理 > 权限策略。 
- 单击创建权限策略。 
- 选择可视化编辑或脚本编辑。 - 可视化编辑- 效果选择允许,服务选择云数据库 RDS / RDS。 
- 操作选择读操作中的Describe相关权限 。您可以搜索Describe,然后勾选所有Describe相关权限。 重要- 当选择权限较多导致策略文档长度超出限制时,可以提交工单修改策略文档长度的上限。 
- 资源选择指定资源,配置的ARN选项为 - acs:rds:{#regionId}:{#accountId}:dbinstance/{#dbinstanceId},其中将资源配置为指定需要授权的实例。条件无需配置。
- 单击添加语句。配置效果为允许,服务为云数据库 RDS / RDS。 
- 配置操作为rds:DescribeDBInstances。资源选择全部资源,条件无需配置。 
 - 脚本编辑- 在脚本编辑窗口中,填写如下内容: - { "Statement": [ { "Effect": "Allow", "Action": "rds:Describe*", "Resource": "acs:rds:*:*:dbinstance/实例ID" }, { "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ], "Version": "1" }
- 单击确定,在创建权限策略弹窗,填写策略名称和备注,确认策略内容无误后,再次单击确定。 
 
- 为指定RAM用户应用自定义策略。 - 在左侧导航栏选择身份管理 > 用户。 
- 找到目标用户,单击右侧操作列的添加权限。 
- 资源范围中配置指定资源组为本示例创建的资源组,然后在权限策略区域,单击自定义策略,搜索已经创建的策略并勾选对应策略。 
- 单击确认新增授权。 
 
- RAM用户登录RDS控制台并查看实例。 - RAM用户访问RDS实例列表,在上方选择地域即可看到实例列表。 
- 单击已授权的实例,可以正常查看访问实例。 说明- 该方式授权时,RAM用户可以在实例列表页面看到所有实例,但仅能查看指定被授权的实例,如果查看其他未被授权的实例,将提示权限不足。 
 
至此,配置结束,您已经为RAM用户配置了指定RDS实例的只读权限。您也可以根据自身业务需要,在编辑权限时,授予RAM用户其他权限。
方式二:基于资源组的授权
基于资源组的授权方式,是将需要被授权的资源放置在同一资源组中,然后在为RAM用户授权时,指定被授权资源所在的资源组,实现对指定资源组内所有资源的精准授权。
- 创建资源组。 - 登录资源管理控制台,在左侧导航栏单击资源组。 
- 单击创建资源组,配置资源组标识和资源组名称后,单击确认。 
 
- 将待授权实例转移到新建的资源组中。 - 在其他资源组中找到待授权的目标实例,例如本示例中,目标实例在默认资源组中,单击默认资源组操作列的资源管理。 
- 通过搜索实例ID查找到目标实例后,选中实例,单击转移资源组。  
- 在转移资源组窗口中,选中步骤1中新建的资源组,然后单击确认。 
- 在转出成功窗口单击确认。 - 如果您在新建的资源组中看到待授权的目标实例,即表示转移资源组成功。 
 
- 创建权限策略。 - 登录RAM控制台。 
- 在左侧导航栏选择权限管理 > 权限策略。 
- 单击创建权限策略。 
- 选择可视化编辑或脚本编辑。 - 可视化编辑- 效果选择允许,服务选择云数据库 RDS / RDS。 
- 操作选择读操作中的Describe相关权限 。您可以搜索Describe,然后勾选所有Describe相关权限。 重要- 当选择权限较多导致策略文档长度超出限制时,可以提交工单修改策略文档长度的上限。 
- 资源选择全部资源,条件无需配置。 
 - 脚本编辑- 在脚本编辑窗口中,填写如下内容: - { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*" ], "Resource": "*" } ] }
- 单击确定,在创建权限策略弹窗,填写策略名称和备注,确认策略内容无误后,再次单击确定。 
 
- 为指定RAM用户应用自定义策略。 - 在左侧导航栏选择身份管理 > 用户。 
- 找到目标用户,单击右侧操作列的添加权限。 
- 资源范围中配置指定资源组为本示例创建的资源组,然后在权限策略区域,单击自定义策略,搜索已经创建的策略并勾选对应策略。 
- 单击确认新增授权。 
 
- RAM用户登录RDS控制台并查看实例。 - RAM用户访问RDS实例列表,在上方选择地域。 
- 在如下图①处选择步骤1创建的资源组,即可看到目标实例。  
 
至此,配置结束,您已经为RAM用户配置了指定RDS实例的只读权限。您也可以根据自身业务需要,在编辑权限时,授予RAM用户其他权限。
方式三:基于自定义标签的授权
基于自定义标签的授权方式,是为需要被授权的资源绑定同一标签,然后在创建权限策略时,使权限策略只被应用在绑定了指定标签的资源上,实现对绑定指定标签的所有资源的精准授权。
- 为RDS实例绑定自定义标签。 - 访问RDS实例列表,在上方选择地域,找到目标待授权实例。 
- 在标签列,单击  图标,然后单击编辑。 图标,然后单击编辑。 
- 设置标签键和标签值后,单击确定。 - 本示例设置标签建为 - test-ram,标签值为- rds-mysql,实际配置时,建议使用具有实际含义的标签建和标签值。- 如果您在标签列查看到如下内容,则表示绑定自定义标签成功。  
 
- 创建权限策略。 - 登录RAM控制台。 
- 在左侧导航栏选择权限管理 > 权限策略。 
- 单击创建权限策略。 
- 选择可视化编辑或脚本编辑。 - 可视化编辑- 效果选择允许,服务选择云数据库 RDS / RDS。 
- 操作选择读操作中的Describe相关权限 。您可以搜索Describe,然后勾选所有Describe相关权限。 重要- 当选择权限较多导致策略文档长度超出限制时,可以提交工单修改策略文档长度的上限。 
- 资源选择全部资源。单击添加条件,设置条件键、运算符和条件值。 说明- 条件的参数配置中,条件键固定配置为 - rds:ResourceTag,运算符固定配置为- StringEquals。条件值配置为步骤1中为RDS示例绑定的标签键和标签值。
 - 脚本编辑- 在脚本编辑窗口中,填写如下内容: 说明- 如下脚本中, - test-ram和- rds-mysql仅为示例,实际使用时,需要配置为步骤1中为RDS实例绑定的标签键和标签值。- { "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "rds:ResourceTag/test-ram": [ "rds-mysql" ] } } } ] }
- 单击确定,在创建权限策略弹窗,填写策略名称和备注,确认策略内容无误后,再次单击确定。 
 
- 为指定RAM用户应用自定义策略。 - 在左侧导航栏选择身份管理 > 用户。 
- 找到目标用户,单击右侧操作列的添加权限。 
- 资源范围中配置指定资源组为本示例创建的资源组,然后在权限策略区域,选择自定义策略,搜索已经创建的策略并勾选对应策略。 
- 单击确认新增授权。 
 
- RAM用户登录RDS控制台并查看实例。 - RAM用户访问RDS实例列表,在上方选择地域。 
- 使用标签筛选功能,筛选步骤1中为RDS实例绑定的标签,即可查看到目标实例。  
 
至此,配置结束,您已经为RAM用户配置了指定RDS实例的只读权限。您也可以根据自身业务需要,在编辑权限时,授予RAM用户其他权限。