Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

在策略中指定权限

Amazon S3 定义了可在策略中指定的一组权限。这些是关键字,其中每一个均映射到特定 Amazon S3 操作 (请参阅 Amazon Simple Storage Service API Reference 中的存储桶上的操作对象上的操作)。

本节提供可在策略中指定的对象操作的权限列表。

对象操作的 Amazon S3 权限

权限 Amazon S3 操作
s3:AbortMultipartUpload 中止分段上传
s3:DeleteObject DELETE Object

s3:DeleteObjectTagging

DELETE Object 标签
s3:DeleteObjectVersion DELETE Object (针对特定版本的对象)

s3:DeleteObjectVersionTagging

DELETE Object 标签 (针对特定版本的对象)
s3:GetObject

GET ObjectHEAD ObjectGET Object torrent

如果在启用了版本控制的存储桶上授予此权限,则始终会获得最新版本的数据。

s3:GetObjectAcl GET Object ACL

s3:GetObjectTagging

GET Object 标签
s3:GetObjectTorrent GET Object torrent
s3:GetObjectVersion

GET ObjectHEAD ObjectGET Object torrent

要授予对版本特定对象数据的权限,必须授予此权限。即,如果您在发出其中任何请求时指定版本号,则需要此 Amazon S3 权限。

s3:GetObjectVersionAcl GET ACL (针对特定版本的对象)

s3:GetObjectVersionTagging

GET Object 标签 (针对特定版本的对象)
s3:GetObjectVersionTorrent GET Object Torrent versioning
s3:ListMultipartUploadParts 列出分段
s3:PutObject

PUT ObjectPOST Object启动分段上传上传分段完成分段上传PUT Object - Copy

s3:PutObjectAcl PUT Object ACL

s3:PutObjectTagging

PUT Object 标签
s3:PutObjectVersionAcl PUT 对象 ACL (针对特定版本的对象)

s3:PutObjectVersionTagging

PUT Object 标签 (针对特定版本的对象)

s3:RestoreObject

POST Object restore

以下存储桶策略示例授予用户 (Dave) s3:PutObjects3:PutObjectAcl 权限。如果移除 Principal 元素,则可将此策略附加到用户。这些是对象操作,因此 Resource ARN 的 relative-id 部分标识对象 (examplebucket/*)。有关更多信息,请参阅 在策略中指定资源

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::AccountB-ID:user/Dave" }, "Action": ["s3:PutObject","s3:PutObjectAcl"], "Resource": "arn:aws-cn:s3:::examplebucket/*" } ] }

您可使用通配符来授予对所有 Amazon S3 操作的权限。

Copy
"Action": "*"

本节提供与可在策略中指定的对象操作相关的权限列表。

与存储桶操作相关的 Amazon S3 权限

权限关键字 涉及的 Amazon S3 操作
s3:CreateBucket PUT Bucket
s3:DeleteBucket DELETE Bucket
s3:ListBucket GET Bucket(列出对象)HEAD Bucket
s3:ListBucketVersions GET Bucket Object versions
s3:ListAllMyBuckets GET 服务
s3:ListBucketMultipartUploads 列出分段上传

以下用户策略示例授予用户 s3:CreateBuckets3:ListAllMyBucketss3:GetBucketLocation 权限。注意,对于所有这些权限,均将 Resource ARN 的 relative-id 部分设置为“*”。对于其他所有存储桶操作,必须指定存储桶名称。有关更多信息,请参阅 在策略中指定资源

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws-cn:s3:::*" ] } ] }

注意,如果您的用户将使用控制台来查看存储桶,以及查看其中任何存储桶的内容,则控制台需要用户具有 s3:ListAllMyBucketss3:GetBucketLocation 权限。有关示例演练的信息,请参阅 演练示例:使用用户策略控制对存储桶的访问

本节提供与可在策略中指定的存储桶子资源操作相关的权限列表。

与存储桶子资源操作相关的 Amazon S3 权限

权限 涉及的 Amazon S3 操作
s3:DeleteBucketPolicy DELETE Bucket policy
s3:DeleteBucketWebsite DELETE Bucket website
s3:DeleteReplicationConfiguration DELETE Bucket 复制
s3:GetAccelerateConfiguration GET Bucket 加速
s3:GetAnalyticsConfiguration GET Bucket 分析List Bucket 分析配置
s3:GetBucketAcl GET Bucket acl
s3:GetBucketCORS GET Bucket cors
s3:GetBucketLocation GET Bucket location
s3:GetBucketLogging GET Bucket logging
s3:GetBucketNotification GET Bucket notification
s3:GetBucketPolicy GET Bucket policy
s3:GetBucketRequestPayment GET Bucket requestPayment
s3:GetBucketTagging GET Bucket 标记
s3:GetBucketVersioning GET Bucket versioning
s3:GetBucketWebsite GET Bucket website
s3:GetInventoryConfiguration GET Bucket 清单List Bucket 清单配置
s3:GetLifecycleConfiguration GET Bucket lifecycle
s3:GetMetricsConfiguration GET Bucket 指标List Bucket 指标配置
s3:GetReplicationConfiguration GET Bucket 复制
s3:PutAccelerateConfiguration PUT Bucket 加速
s3:PutAnalyticsConfiguration PUT Bucket 分析DELETE Bucket 分析
s3:PutBucketAcl PUT Bucket acl
s3:PutBucketCORS PUT Bucket cors
s3:PutBucketLogging PUT Bucket logging
s3:PutBucketNotification PUT Bucket notification
s3:PutBucketPolicy PUT 存储桶策略
s3:PutBucketRequestPayment PUT Bucket requestPayment
s3:PutBucketTagging DELETE Bucket 标签PUT Bucket 标签
s3:PutBucketVersioning PUT Bucket versioning
s3:PutBucketWebsite PUT Bucket website
s3:PutInventoryConfiguration PUT Bucket 清单DELETE Bucket 清单
s3:PutLifecycleConfiguration PUT Bucket lifecycle
s3:PutMetricsConfiguration PUT Bucket 指标DELETE Bucket 指标
s3:PutReplicationConfiguration PUT Bucket 复制

以下用户策略授予用户 Dave 对 examplebucket 存储桶的 s3:GetBucketAcl 权限。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::Account-ID:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": "arn:aws-cn:s3:::examplebucket" } ] }

可通过显式调用 DELETE Object API 或配置其生命周期来删除对象 (请参阅对象生命周期管理),以便 Amazon S3 能够在对象生命周期已过时将它们删除。要显式阻止用户或账户删除对象,必须显式拒绝授予他们 s3:DeleteObjects3:DeleteObjectVersions3:PutLifecycleConfiguration 权限。注意,默认情况下,用户没有权限。但在创建用户,将用户添加到组以及授予他们权限时,用户有可能获得您并不打算授予的某些权限。这是可使用显式拒绝的情况,显式拒绝将取代用户可能拥有的其他所有权限,并且拒绝对特定操作的用户权限。