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

背景信息

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

使用场景

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

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

如何实现

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

创建RAM用户

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 用户
  3. 用户页面,单击创建用户
  4. 创建用户页面的用户账号信息区域,输入登录名称显示名称
    说明 单击添加用户,可一次性创建多个RAM用户。
  5. 访问方式区域,选择访问方式。
    • 控制台访问:设置控制台登录密码、重置密码策略和多因素认证策略。
      说明 自定义登录密码时,密码必须满足密码复杂度规则。关于如何设置密码复杂度规则,请参见设置RAM用户密码强度
    • OpenAPI调用访问:自动为RAM用户生成访问密钥(AccessKey),支持通过API或其他开发工具访问阿里云。
    说明 为了保障账号安全,建议仅为RAM用户选择一种登录方式,避免RAM用户离开组织后仍可以通过访问密钥访问阿里云资源。
  6. 单击确定

为RAM用户授权

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

AnalyticDB MySQL版数仓版(3.0)集群权限如下。
  • AliyunADBReadOnlyAccess,只读访问数仓版(3.0)集群的权限。
  • AliyunADBFullAccess,管理数仓版(3.0)集群的权限。

创建权限策略

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

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

    管理“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. 输入权限策略名称备注
  8. 检查并优化权限策略内容。
    • 基础权限策略优化

      系统会对您添加的权限策略语句自动进行基础优化。基础权限策略优化会完成以下任务:

      • 删除不必要的条件。
      • 删除不必要的数组。
    • 可选:高级权限策略优化

      您可以将鼠标悬浮在可选:高级策略优化上,单击执行,对权限策略内容进行高级优化。高级权限策略优化功能会完成以下任务:

      • 拆分不兼容操作的资源或条件。
      • 收缩资源到更小范围。
      • 去重或合并语句。
  9. 单击确定

相关文档

当RAM用户不再需要某些权限或离开组织时,您可以将这些权限移除或者删除RAM用户,请参见为RAM用户移除权限以及删除RAM用户