在策略中指定权限
Amazon S3 定义了可在策略中指定的一组权限。这些是关键字,每个关键字都映射到特定的 Amazon S3 操作。有关更多信息,请参阅 Amazon Simple Storage Service API Reference 中的操作。
对象操作的权限
本节提供可在策略中指定的对象操作的权限列表。
对象操作的 Amazon S3 权限
权限 | Amazon S3 操作 |
---|---|
s3:AbortMultipartUpload |
中止分段上传 |
|
PUT Object 保留、PUT Object 、DELETE Object |
s3:DeleteObject |
DELETE Object |
|
DELETE 对象标记 |
s3:DeleteObjectVersion |
DELETE Object(针对特定版本的对象) |
|
DELETE 对象标记(针对特定版本的对象) |
s3:GetObject |
如果在启用了版本控制的存储桶上授予此权限,则始终会获得最新版本的数据。 |
s3:GetObjectAcl |
GET 对象 ACL |
|
GET Object 依法保留、GET Object |
|
Get Object 保留、GET Object |
|
GET 对象标记 |
s3:GetObjectTorrent |
GET Object torrent |
s3:GetObjectVersion |
要授予对版本特定对象数据的权限,必须授予此权限。即,如果您在发出其中任何请求时指定版本号,则需要此 Amazon S3 权限。 |
s3:GetObjectVersionAcl |
GET ACL(针对特定版本的对象) |
|
GET 对象标记 (针对特定版本的对象) |
s3:GetObjectVersionTorrent |
GET Object Torrent versioning |
s3:ListMultipartUploadParts |
列出分段 |
s3:PutObject |
|
s3:PutObjectAcl |
PUT 对象 ACL |
|
PUT Object 依法保留、PUT Object |
|
PUT Object 保留、PUT Object |
|
PUT 对象标记 |
s3:PutObjectVersionAcl |
PUT 对象 ACL (针对特定版本的对象) |
|
PUT 对象标记 (针对特定版本的对象) |
|
POST Object restore |
以下存储桶策略示例授予用户 (Dave) s3:PutObject
和 s3: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:CreateBucket
、s3:ListAllMyBuckets
和 s3: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:ListAllMyBuckets
和 s3: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 |
|
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 cors、DELETE Bucket cors |
s3:PutBucketLogging |
PUT Bucket logging |
s3:PutBucketNotification |
PUT Bucket notification |
|
PUT Bucket 对象锁定配置 |
s3:PutBucketPolicy |
PUT 存储桶策略 |
s3:PutBucketPublicAccessBlock |
PUT PublicAccessBlock、DELETE 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:DeleteObject
、s3:DeleteObjectVersion
和 s3:PutLifecycleConfiguration
权限。默认状态下,用户没有权限。但在创建用户,将用户添加到组以及授予他们权限时,用户有可能获得您并不打算授予的某些权限。这是可使用显式拒绝的情况,显式拒绝将取代用户可能拥有的其他所有权限,并且拒绝对特定操作的用户权限。
与账户操作相关的权限
本节提供与可在策略中指定的账户操作相关的权限列表。
与账户操作相关的 Amazon S3 权限
权限关键字 | 涉及的 Amazon S3 操作 |
---|---|
s3:CreateJob |
CreateJob |
s3:DescribeJob |
DescribeJob |
s3:GetAccountPublicAccessBlock |
GET PublicAccessBlock |
s3:ListJobs |
ListJobs |
s3:PutAccountPublicAccessBlock |
PUT PublicAccessBlock、DELETE PublicAccessBlock |
s3:UpdateJobPriority |
UpdateJobPriority |
s3:UpdateJobStatus |
UpdateJobStatus |
以下用户策略示例向用户授予 s3:GetAccountPublicAccessBlock
权限。注意,对于这些权限,需将 Resource
值设置为 "*"
。有关更多信息,请参阅 在策略中指定资源。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }