本文为您详细介绍如何通过 RAM(Resource Access Management)为 OSS 和 OSS-HDFS 配置访问权限。您可以根据实际需求,灵活定义权限策略,确保数据安全的同时满足业务场景的需求。
授权访问OSS
您可以通过自定义策略灵活定义RAM用户对OSS数据的访问权限,具体步骤为:
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择。
-
在权限策略页面,单击创建权限策略。
-
在创建权限策略页面,单击脚本编辑页签。
-
输入权限策略内容,单击确定。
OSS提供了完整的数据权限管控体系,完整的OSS授权策略,详情请参见RAM Policy概述。
重要-
请根据RAM用户需要使用的权限,谨慎定义权限策略。对于集群中使用Hive、Spark服务的用户,无论是否开启多版本都需要配置
oss:ListObjectVersions、oss:DeleteObjectVersion,EMR对于一些常见的临时目录,例如"_temporary"、".staging"、".hive-staging"和"__magic"会触发多版本操作。 -
在配置Bucket Policy时,授权建议使用
oss:*(即“完全控制”)权限,避免出现AccessDenied(HTTP 403)问题。
您可以根据场景配置自定义权限策略,常见授权场景示例如下所示。
场景1:完整访问权限
适用于需要对OSS数据进行完全控制的场景。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetBucketInfo", "oss:PutObject", "oss:GetObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListMultipartUploads", "oss:ListParts", "oss:RestoreObject", "oss:ListObjectVersions", "oss:DeleteObjectVersion" ], "Resource": [ "acs:oss:*:*:<yourBucketName>", "acs:oss:*:*:<yourBucketName>/*" ] }, { "Effect": "Allow", "Action": ["oss:ListBuckets"], "Resource": "*" } ] }场景2:只读访问权限
适用于仅需读取数据的分析或查询场景。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetBucketInfo", "oss:GetObject", "oss:RestoreObject", "oss:ListObjectVersions" ], "Resource": [ "acs:oss:*:*:<yourBucketName>", "acs:oss:*:*:<yourBucketName>/*" ] }, { "Effect": "Allow", "Action": ["oss:ListBuckets"], "Resource": "*" } ] }场景3:支持多版本功能的权限
适用于开启了OSS多版本功能的场景。
重要开启多版本功能可能影响性能并增加存储成本,建议谨慎使用。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListObjects", "oss:GetBucketInfo", "oss:PutObject", "oss:GetObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListMultipartUploads", "oss:ListParts", "oss:RestoreObject", "oss:ListObjectVersions", "oss:GetObjectVersion", "oss:DeleteObjectVersion", "oss:RestoreObjectVersion" ], "Resource": [ "acs:oss:*:*:<yourBucketName>", "acs:oss:*:*:<yourBucketName>/*" ] }, { "Effect": "Allow", "Action": ["oss:ListBuckets"], "Resource": "*" } ] } -
-
输入权限的策略名称和备注,单击确定。
授权访问OSS-HDFS
OSS-HDFS是阿里云提供的兼容HDFS接口的对象存储服务,适用于需要HDFS语义但希望使用OSS存储的场景。以下是授权步骤及策略示例。
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择。
-
在权限策略页面,单击创建权限策略。
-
在创建权限策略页面,单击脚本编辑页签。
-
输入权限策略内容,单击确定。策略内容示例如下。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:ListObjects", "Resource": "acs:oss:*:*:*" }, { "Effect": "Allow", "Action": [ "oss:GetBucketInfo", "oss:PostDataLakeStorageFileOperation", "oss:PostDataLakeStorageAdminOperation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:*/.dlsdata", "acs:oss:*:*:*/.dlsdata*" ] } ] }说明-
资源路径限制:策略中
.dlsdata是OSS-HDFS的专用路径,请确保相关资源路径正确配置。 -
权限范围:根据业务需求,合理调整Action和Resource的范围,避免过度授权。
-
-
输入权限的策略名称和备注,单击确定。