Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

在策略中指定权限

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/*)。有关更多信息,请参阅 在策略中指定资源

{ "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 操作的权限。

"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 部分设置为“*”。对于其他所有存储桶操作,必须指定存储桶名称。有关更多信息,请参阅 在策略中指定资源

{ "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:GetEncryptionConfiguration GET Bucket 加密
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 corsDELETE 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:PutEncryptionConfiguration PUT Bucket 加密DELETE Bucket 加密
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 权限。

{ "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 权限。默认状态下,用户没有权限。但在创建用户,将用户添加到组以及授予他们权限时,用户有可能获得您并不打算授予的某些权限。这是可使用显式拒绝的情况,显式拒绝将取代用户可能拥有的其他所有权限,并且拒绝对特定操作的用户权限。