本文将介绍如何使用RAM访问控制对不同子账号的OSS数据进行隔离。

前提条件

已获取云账号。

背景信息

E-MapReduce支持使用RAM来隔离不同子账号的数据。

步骤一 登录RAM控制台

  1. 云账号登录RAM控制台

步骤二 创建RAM用户

  1. 在左侧导航栏的人员管理菜单下,单击用户
  2. 单击新建用户
    说明 单击添加用户,可一次性创建多个RAM用户。
  3. 输入登录名称显示名称
  4. 访问方式区域下,选择控制台密码登录编程访问
    说明 为了保障账号安全,建议仅为RAM用户选择一种登录方式,避免RAM用户离开组织后仍可以通过访问密钥访问阿里云资源。
  5. 单击确认

步骤三 新建权限策略

RAM除了提供常用的默认权限策略外,还支持让您自定义权限策略,使得授权更加灵活。根据不同需要,您可创建多个权限策略。

  1. 在左侧导航栏的权限管理菜单下,单击权限策略管理
  2. 单击新建权限策略
  3. 填写策略名称备注
  4. 配置模式选择脚本配置

    脚本配置方法请参见语法结构编辑策略内容。 本例分别按照以下两个脚本示例来创建两个权限策略:

    测试环境(test-bucket) 生产环境(prod-bucket)
    {
    "Version": "1",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
      "oss:ListBuckets"
    ],
    "Resource": [
      "acs:oss:*:*:*"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
      "oss:Listobjects",
      "oss:GetObject",
      "oss:PutObject",
      "oss:DeleteObject"
    ],
    "Resource": [
      "acs:oss:*:*:test-bucket",
      "acs:oss:*:*:test-bucket/*"
    ]
    }
    ]
    }
    {
    "Version": "1",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
      "oss:ListBuckets"
    ],
    "Resource": [
      "acs:oss:*:*:*"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
      "oss:Listobjects",
      "oss:GetObject",
      "oss:PutObject"
    ],
    "Resource": [
      "acs:oss:*:*:prod-bucket",
      "acs:oss:*:*:prod-bucket/*"
    ]
    }
    ]
    }

    按上述脚本示例进行权限隔离后,RAM用户在E-MapReduce控制台的限制如下:

    • 在创建集群、创建作业和创建执行计划的 OSS 选择界面,可以看到所有的 bucket,但是只能进入被授权的 bucket。
    • 只能看到被授权的 bucket 下的内容,无法看到其他 bucket 内的内容。
    • 作业中只能读写被授权的 bucket,读写未被授权的 bucket 会报错。
  5. 单击确认

步骤四 为RAM用户授权

  1. 在左侧导航栏的人员管理菜单下,单击用户
  2. 用户登录名称/显示名称列表下,找到目标RAM用户。
  3. 单击添加权限,被授权主体会自动填入。
  4. 在左侧权限策略名称列表下,单击需要授予RAM用户的权限策略。
    说明 在右侧区域框,选择某条策略并单击×,可撤销该策略。
  5. 单击确定
  6. 单击完成

步骤五 开启RAM用户的控制台登录权限(可选)

如果创建RAM用户时未开启控制台登录权限,则您可按以下方法进行开启。

  1. 在左侧导航栏的人员管理菜单下,单击用户
  2. 用户登录名称/显示名称列表下,单击目标RAM用户名称。
  3. 认证管理页签下的控制台登录管理区域,单击修改登录设置
  4. 控制台密码登录选择开启
  5. 单击确认

步骤六 通过RAM用户登录E-MapReduce控制台

  1. RAM用户登录控制台
  2. 登录控制台后,选择E-MapReduce产品即可。