Amazon S3 操作 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon S3 操作

Amazon S3 定义了可在策略中指定的一组权限。这些是关键字,每个关键字都映射到特定的 Amazon S3 操作。有关 Amazon S3 操作的更多信息,请参阅 Amazon Simple Storage Service API Reference 中的操作

要了解如何在策略中的 Amazon S3 中指定权限,请查看以下示例策略。有关策略中使用的 Amazon S3 操作、资源和条件键的列表,请参阅Amazon S3 的操作、资源和条件键。有关 Amazon S3 操作的完整列表,请参阅操作

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

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

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

"Action": "*"

以下用户策略示例授予用户 s3:CreateBuckets3:ListAllMyBucketss3: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-cn:s3:::*" ] } ] }

控制台访问策略

如果用户想要使用 AWS 管理控制台查看存储桶和这些存储桶中的内容,用户必须具有 s3:ListAllMyBucketss3:GetBucketLocation 权限。有关示例,请参阅博客文章编写 IAM 策略:如何授予对 S3 存储桶的访问权限中的控制台访问策略

以下用户策略授予用户 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 对象权限

可通过显式调用 DELETE 对象 API 或配置其生命周期来删除对象(请参阅对象生命周期管理),以便 Amazon S3 能够在对象生命周期已过时将它们删除。要显式阻止用户或账户删除对象,必须显式拒绝授予他们 s3:DeleteObjects3:DeleteObjectVersions3:PutLifecycleConfiguration 权限。

显式拒绝

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

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

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