访问控制RAM(Resource Access Management)是阿里云提供的权限管理系统。RAM主要的作用是控制账号系统的权限,您可以使用RAM在阿里云账号(主账号)的权限范围内创建RAM用户(子账号),给不同的RAM用户分配不同的权限来允许或拒绝RAM用户对云资源的访问,从而达到授权管理的目的。

背景信息

说明
  • RAM用户从属于阿里云账号,并且这些RAM用户下不能拥有实际的任何资源,所有资源都属于阿里云账号。
  • 通过RAM用户创建AnalyticDB MySQL版集群后,只能通过该RAM用户和所属阿里云账号查看或使用集群;其他RAM用户需要授权后才能查看或者使用该集群。

使用场景

通过阿里云账号创建AnalyticDB MySQL版集群后,如果您的组织里有多个用户需要使用AnalyticDB MySQL版集群,这些用户只能共享使用您的云账号AccessKey。
警告 多个用户共享使用您的云账号AccessKey,会存在如下风险。
  • 您的密钥由多人共享,泄露的风险很高。
  • 您无法控制特定用户可以对集群进行哪些操作,例如扩容集群、重启集群等。

此时,您可以创建RAM用户,并授予RAM用户对应的权限。之后,让您的用户通过RAM用户访问或管理您的AnalyticDB MySQL版集群。

如何实现

通过RAM用户访问或者管理AnalyticDB MySQL版集群需要以下两个步骤。
  1. 创建RAM用户
  2. 为RAM用户授权

创建RAM用户

  1. 登录RAM控制台
  2. 单击左侧导航栏的身份管理 > 用户
  3. 用户页面,单击创建用户,输入登录名称显示名称
    说明 单击添加用户,可一次性创建多个RAM用户。
  4. 访问方式区域下,选择控制台访问OpenAPI调用访问
    • 控制台访问:可以完成对登录安全的基本设置,包括自动生成或自定义登录密码、是否要求下次登录时重置密码以及是否要求开启多因素认证。
    • OpenAPI调用访问:自动为RAM用户创建访问密钥(AccessKey)。RAM用户可以通过其他开发工具访问AnalyticDB MySQL版集群。

    为保障账号安全,建议仅为RAM用户选择一种登录方式。避免RAM用户离开组织后仍可以通过访问密钥访问AnalyticDB MySQL版集群。

  5. 单击确认,创建RAM用户。

为RAM用户授权

  1. 登录RAM控制台
  2. 单击左侧导航栏的身份管理 > 用户
  3. 用户页面,单击目标RAM用户右侧的添加权限
  4. 添加权限页面,权限类型选择系统策略,输入策略名称找到对应的权限策略,单击将其添加到已选择框中。
    警告 请勿过度授权。过度授权后操作人员权限过大,可以随意操作,可能引发安全风险或造成损失。
    权限策略说明:
    • 数仓版(3.0)集群的权限:
      • AliyunADBReadOnlyAccess,只读访问数仓版(3.0)集群的权限。
      • AliyunADBFullAccess,管理数仓版(3.0)集群的权限。
    • 湖仓版(3.0)集群的权限:
      • AliyunADBReadOnlyAccess,只读访问湖仓版(3.0)集群的权限。
      • AliyunADBFullAccess,管理湖仓版(3.0)集群的权限。
      • AliyunADBDeveloperAccess湖仓版(3.0)集群的开发者权限。与AliyunADBFullAccess策略相比,AliyunADBDeveloperAccess不包含集群的创建、变配、删除、RAM用户绑定等操作权限。
  5. 单击确认,为RAM用户授权。

    为RAM用户授予相应的权限后,您就可以通过RAM用户访问或者管理AnalyticDB MySQL版集群。

创建权限策略

如需对RAM用户进行精细到实例级别的操作授权,这种场景需要在RAM中创建自定义权限策略。

  1. 登录RAM控制台
  2. 单击左侧导航栏的权限管理 > 权限策略
  3. 单击创建权限策略,本文以创建AnalyticDB MySQL数仓版(3.0)集群的管理权限为例。
  4. 配置模式选择脚本编辑
  5. 输入配置脚本,脚本内容示例如下。

    管理“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用户即可。

  6. 单击继续编辑基本信息
  7. 输入策略名称,单击确定

相关文档

  • 当使用AnalyticDB MySQL湖仓版(3.0)时,可以将数据库普通账号绑定RAM用户,直接在AnalyticDB MySQL控制台的SQL编辑器或Spark编辑器中进行数据库开发,请参见绑定或解绑RAM用户与数据库账号
  • 当RAM用户不再需要某些权限或离开组织时,您可以将这些权限移除或者删除RAM用户,请参见为RAM用户移除权限以及删除RAM用户