存储桶策略示例 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

存储桶策略示例

使用 S3 on Outposts 桶策略,您可以保护对 S3 on Outposts 桶中对象的访问,这样,只有具有适当权限的用户才能访问它们。您甚至可以阻止没有适当权限的经过身份验证的用户访问您的 S3 on Outposts 资源。

本节介绍关于 S3 on Outposts 桶策略的典型使用案例的示例。要测试这些策略,您需要将 user input placeholders 替换为您自己的信息(例如存储桶名称)。

要授予或拒绝对一组对象的权限,可以在 Amazon资源名称(ARN)和其他值中使用通配符(*)。例如,您可以控制对以通用前缀或以给定扩展名结尾的对象组的访问,例如 .html

有关 Amazon Identity and Access Management(IAM)策略语言的更多信息,请参阅使用 S3 on Outposts 设置 IAM

注意

使用 Amazon S3 控制台测试 s3outposts 权限时,您必须授予控制台所需的其它权限,如 s3outposts:createendpoints3outposts:listendpoints 等等。

用于创建存储桶策略的其他资源

基于特定 IP 地址管理对 Amazon S3 on Outposts 桶的访问权限

存储桶策略是基于资源的 Amazon Identity and Access Management (IAM) 策略,您可以使用该策略向存储桶及其中对象授予访问权限。只有存储桶拥有者才能将策略与存储桶关联。附加到存储桶的权限适用于存储桶拥有者拥有的存储桶中所有对象。存储桶策略的大小限制为 20 KB。有关更多信息,请参阅桶策略

限制特定 IP 地址的访问权限

以下示例拒绝所有用户对指定桶中的对象执行任何 S3 on Outposts 操作,除非请求来自指定的 IP 地址范围。

注意

在限制对特定 IP 地址的访问权限时,务必还要指定哪些 VPC 端点、VPC 源 IP 地址或外部 IP 地址可以访问 S3 on Outposts 桶。否则,如果您的策略拒绝所有用户在没有适当权限的情况下对 S3 on Outposts 桶中的对象执行任何 s3outposts 操作,则您可能会失去对该桶的访问权限。

此策略的 Condition 语句确定允许的 IP 版本 4(IPv4)IP 地址范围为 192.0.2.0/24

Condition 块使用 NotIpAddress 条件和 aws:SourceIp 条件键(这是 Amazon 范围的条件键)。aws:SourceIp 条件键只能用于公有 IP 地址范围。有关条件键的更多信息,请参阅 Actions, resources, and condition keys for S3 on Outpostsaws:SourceIp IPv4 值使用标准 CIDR 表示法。有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素参考

警告

在使用此 S3 on Outposts 策略之前,将此示例中的 192.0.2.0/24 IP 地址范围替换为适合您的使用案例的值。否则,您将失去访问桶的能力。

{ "Version": "2012-10-17", "Id": "S3OutpostsPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Deny", "Principal": "*", "Action": "s3outposts:*", "Resource": [ "arn:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/accesspoint/EXAMPLE-ACCESS-POINT-NAME" "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET" ], "Condition": { "NotIpAddress": { "aws:SourceIp": "192.0.2.0/24" } } } ] }

同时允许 IPv4 和 IPv6 地址

在您开始使用 IPv6 地址时,建议您使用您的 IPv6 地址范围以及现有的 IPv4 范围来更新组织的所有策略。这样做将有助于确保这些策略在您转换到 IPv6 时继续有效。

以下 S3 on Outposts 示例桶策略说明如何混用 IPv4 和 IPv6 地址范围来覆盖组织的所有有效 IP 地址。该示例策略将允许对示例 IP 地址 192.0.2.12001:DB8:1234:5678::1 的访问,而拒绝对地址 203.0.113.12001:DB8:1234:5678:ABCD::1 的访问。

aws:SourceIp 条件键只能用于公有 IP 地址范围。aws:SourceIp 的 IPv6 值必须采用标准的 CIDR 格式。对于 IPv6,我们支持使用 :: 表示 0 范围(例如,2001:DB8:1234:5678::/64)。有关更多信息,请参阅《IAM 用户指南》中的 IP 地址条件运算符

警告

在使用此 S3 on Outposts 策略之前,将此示例中的 IP 地址范围替换为适合您的使用案例的值。否则,您可能会失去访问存储桶的能力。

{ "Id": "S3OutpostsPolicyId2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIPmix", "Effect": "Allow", "Principal": "*", "Action": "s3outposts:*", "Resource": [ "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET", "arn:aws:aws:s3-outposts:region:111122223333:outpost/OUTPOSTS-ID/bucket/DOC-EXAMPLE-BUCKET/*" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "2001:DB8:1234:5678::/64" ] }, "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678:ABCD::/80" ] } } } ] }