Amazon S3 操作
Amazon S3 定义了可在策略中指定的一组权限。这些是关键字,每个关键字都映射到特定的 Amazon S3 操作。有关 Amazon S3 操作的更多信息,请参阅《Amazon Simple Storage Service API 参考》中的操作。
要了解如何在 Amazon S3 策略中指定权限,请查看以下示例策略。有关策略中使用的 Amazon S3 操作、资源和条件键的列表,请参阅Amazon S3 的操作、资源和条件键。有关 Amazon S3 操作的完整列表,请参阅操作。
示例 — 对象操作
以下存储桶策略示例授予用户 (Dave) s3:PutObject
和 s3:PutObjectAcl
权限。如果移除 Principal
元素,则可将此策略附加到用户。这些是对象操作。相应地,Resource
ARN 的 relative-id
部分标识对象 (awsexamplebucket1/*
)。有关更多信息,请参阅Amazon S3 资源。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Dave" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
awsexamplebucket1
/*" } ] }
所有 Amazon S3 操作的权限
您可使用通配符来授予对所有 Amazon S3 操作的权限。
"Action": "*"
示例 — 存储桶操作
以下用户策略示例授予用户 s3:CreateBucket
、s3:ListAllMyBuckets
和 s3:GetBucketLocation
权限。对于所有这些权限,您将 Resource
ARN 的 relative-id
部分设置为“*”。对于其他所有存储桶操作,必须指定存储桶名称。有关更多信息,请参阅Amazon S3 资源。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }
控制台访问策略
如果用户想要使用 AWS 管理控制台查看存储桶和这些存储桶中的内容,用户必须具有 s3:ListAllMyBuckets
和 s3:GetBucketLocation
权限。有关示例,请参阅博客文章编写 IAM 策略:如何授予对 S3 存储桶的访问权限
示例 — 存储桶子资源操作
以下用户策略授予用户 Dave 对 s3:GetBucketAcl
存储桶的
权限。
DOC-EXAMPLE-BUCKET1
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET1
/*
DELETE 对象权限
可通过显式调用 DELETE Object API 或配置其生命周期来删除对象(请参阅对象生命周期管理),以便 Amazon S3 能够在对象生命周期已过时将它们删除。要显式阻止用户或账户删除对象,必须显式拒绝授予他们 s3:DeleteObject
、s3:DeleteObjectVersion
和 s3:PutLifecycleConfiguration
权限。
显式拒绝
默认状态下,用户没有权限。但在创建用户、将用户添加到组以及授予他们权限时,用户可能获得您并不打算授予的某些权限。这是可使用显式拒绝的情况,显式拒绝将取代用户可能拥有的其他所有权限,并且拒绝对特定操作的用户权限。
示例 — 账户操作
以下用户策略示例向用户授予 s3:GetAccountPublicAccessBlock
权限。对于这些权限,请将 Resource
值设置为 "*"
。有关更多信息,请参阅Amazon S3 资源。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }