Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在策略中指定权限

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

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

对象操作的 Amazon S3 权限

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

s3:BypassGovernanceRetention

PUT Object 保留PUT Object DELETE Object
s3:DeleteObject DELETE Object

s3:DeleteObjectTagging

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

s3:DeleteObjectVersionTagging

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

GET 对象HEAD 对象SELECT 对象内容

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

s3:GetObjectAcl GET 对象 ACL

s3:GetObjectLegalHold

GET Object 依法保留GET Object

s3:GetObjectRetention

Get Object 保留GET Object

s3:GetObjectTagging

GET 对象标记
s3:GetObjectTorrent GET Object torrent
s3:GetObjectVersion

GET ObjectHEAD Object

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

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

s3:GetObjectVersionTagging

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

PUT 对象POST 对象启动分段上传上传分段完成分段上传PUT 对象 - 复制

s3:PutObjectAcl PUT 对象 ACL

s3:PutObjectLegalHold

PUT Object 依法保留PUT Object

s3:PutObjectRetention

PUT Object 保留PUT Object

s3:PutObjectTagging

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

s3:PutObjectVersionTagging

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

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 权限。有关示例,请参阅编写 IAM 策略:如何授予对 S3 存储桶的访问权限中的“控制台访问策略”。

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

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

权限 涉及的 Amazon S3 操作
s3:DeleteBucketPolicy DELETE Bucket policy
s3:DeleteBucketWebsite DELETE Bucket website
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:GetBucketObjectLockConfiguration

GET Bucket 对象锁定配置
s3:GetBucketPolicy GET 存储桶策略
s3:GetBucketPolicyStatus GET BucketPolicyStatus
s3:GetBucketPublicAccessBlock GET PublicAccessBlock
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:PutBucketObjectLockConfiguration

PUT Bucket 对象锁定配置
s3:PutBucketPolicy PUT 存储桶策略
s3:PutBucketPublicAccessBlock PUT PublicAccessBlockDELETE PublicAccessBlock
s3:PutBucketRequestPayment PUT Bucket requestPayment
s3:PutBucketTagging DELETE Bucket 标签PUT Bucket 标签
s3:PutBucketVersioning PUT Bucket versioning
s3:PutBucketWebsite PUT Bucket website
s3:PutEncryptionConfiguration PUT 存储桶加密 DELETE 存储桶加密
s3:PutInventoryConfiguration PUT Bucket 清单DELETE Bucket 清单
s3:PutLifecycleConfiguration PUT 存储桶生命周期DELETE 存储桶生命周期
s3:PutMetricsConfiguration PUT Bucket 指标DELETE Bucket 指标
s3:PutReplicationConfiguration PUT 存储桶复制DELETE 存储桶复制

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

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

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

与账户操作相关的 Amazon S3 权限

权限关键字 涉及的 Amazon S3 操作
s3:CreateJob CreateJob
s3:DescribeJob DescribeJob
s3:GetAccountPublicAccessBlock GET PublicAccessBlock
s3:ListJobs ListJobs
s3:PutAccountPublicAccessBlock PUT PublicAccessBlockDELETE PublicAccessBlock
s3:UpdateJobPriority UpdateJobPriority
s3:UpdateJobStatus UpdateJobStatus

以下用户策略示例向用户授予 s3:GetAccountPublicAccessBlock 权限。注意,对于这些权限,需将 Resource 值设置为 "*"。有关更多信息,请参阅 在策略中指定资源

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }