本文介绍如何使用访问控制RAM(Resource Access Management),对不同RAM用户的OSS数据进行隔离。
前提条件
背景信息
操作步骤
- 通过阿里云账号登录RAM控制台。
- 创建RAM用户。
- 在左侧导航栏中,选择人员管理 > 用户。
- 单击创建用户。说明 可以一次性创建多个RAM用户。
- 输入登录名称和显示名称。
- 在访问方式区域,选中控制台密码登录或编程访问。
- 控制台密码登录:完成对登录安全的基本设置,包括自动生成或自定义登录密码、是否要求下次登录时重置密码以及是否要求开启多因素认证。
- 编程访问:自动为RAM用户生成访问密钥(AccessKey),支持通过API或其他开发工具访问阿里云。
说明 为了保障账号安全,建议仅为RAM用户选择一种登录方式,避免RAM用户离开组织后仍可以通过访问密钥访问阿里云资源。 - 单击确定。
- 新建权限策略。
RAM除了提供常用的默认权限策略外,还支持让您自定义权限策略,使得授权更加灵活。根据不同需要,您可创建多个权限策略。
- 在左侧导航栏中,权限管理 > 权限策略管理。
- 单击创建权限策略。
- 填写策略名称。
- 选中脚本配置。 脚本配置方法请参见语法结构编辑策略内容。 本例分别按照以下两个脚本示例来创建两个权限策略:
测试环境(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会报错。
- 单击确定。
- 可选:为RAM用户授权。创建的RAM用户未授权,则您可按以下方法进行授权。
- 单击左侧导航栏的人员管理 > 用户。
- 单击待授权RAM用户所在行的添加权限。
- 单击需要授予RAM用户的权限策略,单击确定。
- 单击完成。
- 可选:开启RAM用户的控制台登录权限。如果创建RAM用户时未开启控制台登录权限,则您可按以下方法进行开启。
- 单击左侧导航栏,选择人员管理 > 用户。
- 单击目标RAM用户的用户登录名称。
- 在控制台登录管理区域,单击修改登录设置。
- 控制台密码登录选中开启。
- 单击确定。
- 通过RAM用户登录E-MapReduce控制台。
- 通过RAM用户登录控制台。
- 登录控制台后,选择E-MapReduce产品即可。