访问控制RAM(Resource Access Management)是阿里云提供的权限管理系统。RAM主要的作用是控制账号系统的权限,您可以使用RAM在阿里云账号(主账号)的权限范围内创建RAM用户(子账号),给不同的RAM用户分配不同的权限来允许或拒绝RAM用户对云资源的访问,从而达到授权管理的目的。
背景信息
RAM用户从属于阿里云账号,并且这些RAM用户下不能拥有实际的任何资源,所有资源都属于阿里云账号。
通过RAM用户创建AnalyticDB for MySQL集群后,只能通过该RAM用户和所属阿里云账号查看或使用集群;其他RAM用户需要授权后才能查看或者使用该集群。
使用场景
通过阿里云账号创建AnalyticDB for MySQL集群后,如果您的组织里有多个用户需要使用AnalyticDB for MySQL集群,这些用户只能共享使用您的云账号AccessKey。
多个用户共享使用您的云账号AccessKey,会存在如下风险。
您的密钥由多人共享,泄露的风险很高。
您无法控制特定用户可以对集群进行哪些操作,例如扩容集群、重启集群等。
此时,您可以创建RAM用户,并授予RAM用户对应的权限。之后,让您的用户通过RAM用户访问或管理您的AnalyticDB for MySQL集群。
如何实现
创建RAM用户
登录RAM控制台。
单击左侧导航栏的 。
在用户页面,单击创建用户,输入登录名称和显示名称。
说明单击添加用户,可一次性创建多个RAM用户。
在访问方式区域下,选择控制台访问或使用永久 AccessKey 访问。
控制台访问:可以完成对登录安全的基本设置,包括自动生成或自定义登录密码、是否要求下次登录时重置密码以及是否要求开启多因素认证。
使用永久 AccessKey 访问:自动为RAM用户创建访问密钥(AccessKey)。RAM用户可以通过其他开发工具访问AnalyticDB for MySQL集群。
为保障账号安全,建议仅为RAM用户选择一种登录方式。避免RAM用户离开组织后仍可以通过访问密钥访问AnalyticDB for MySQL集群。
单击确认,创建RAM用户。
为RAM用户授权
登录RAM控制台。
单击左侧导航栏的 。
在用户页面,单击目标RAM用户右侧的添加权限。
在添加权限页面,权限类型选择系统策略,输入策略名称找到对应的权限策略,单击将其添加到已选择权限策略框中。
警告请勿过度授权。过度授权后操作人员权限过大,可以随意操作,可能引发安全风险或造成损失。
权限策略说明:
数仓版集群的权限:
AliyunADBReadOnlyAccess,只读访问数仓版集群的权限。
AliyunADBFullAccess,管理数仓版集群的权限。
湖仓版集群的权限:
AliyunADBReadOnlyAccess,只读访问湖仓版集群的权限。
AliyunADBFullAccess,管理湖仓版集群的权限。
AliyunADBDeveloperAccess,湖仓版集群的开发者权限。与AliyunADBFullAccess策略相比,AliyunADBDeveloperAccess不包含集群的创建、变配、删除、RAM用户绑定等操作权限。
单击确认,为RAM用户授权。
为RAM用户授予相应的权限后,您就可以通过RAM用户访问或者管理AnalyticDB for MySQL集群。
创建权限策略
如需对RAM用户进行精细到实例级别的操作授权,这种场景需要在RAM中创建自定义权限策略。
登录RAM控制台。
单击左侧导航栏的 。
单击创建权限策略,本文以创建AnalyticDB for MySQL集群的管理权限为例。
配置模式选择脚本编辑。
输入配置脚本,脚本内容示例如下。
管理“am-xxx”实例权限:
{ "Version": "1", "Statement": [ { "Action": ["adb:DescribeDBClusters", "adb:ListTagResources"], "Resource": "acs:adb:*:*:dbcluster/*", "Effect": "Allow" }, { "Action": "adb:*", "Resource": ["acs:adb:*:*:dbcluster/am-xxx"], "Effect": "Allow" } ] }
只读“am-xxx”实例权限:
{ "Version": "1", "Statement": [ { "Action": ["adb:DescribeDBClusters", "adb:ListTagResources"], "Resource": "acs:adb:*:*:dbcluster/*", "Effect": "Allow" }, { "Action": "adb:Describe*", "Resource": ["acs:adb:*:*:dbcluster/am-xxx"], "Effect": "Allow" } ] }
若RAM用户需要管理或只读多个集群,在脚本的
"Resource": ["acs:adb:*:*:dbcluster/am-xxx"]
中增加相应的集群ID即可,例如"Resource": ["acs:adb:*:*:dbcluster/am-xxx", "acs:adb:*:*:dbcluster/am-yyy"]
。权限策略创建完成后,将权限策略授权给对应RAM用户即可。
单击确定。
输入策略名称和备注,单击确定。
相关文档
当使用AnalyticDB for MySQL企业版、基础版及湖仓版时,可以将数据库普通账号绑定RAM用户,直接在AnalyticDB for MySQL控制台的SQL编辑器或Spark编辑器中进行数据库开发,请参见绑定或解绑RAM用户与数据库账号。
当RAM用户不再需要某些权限或离开组织时,您可以将这些权限移除或者删除RAM用户,请参见为RAM用户移除权限以及删除RAM用户。