使用存储桶策略控制从 VPC 终端节点的访问 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

使用存储桶策略控制从 VPC 终端节点的访问

您可以使用 Amazon S3 存储桶策略控制从特定 Virtual Private Cloud (VPC) 终端节点或特定 VPC 对存储桶的访问。本部分包含可用于从 VPC 终端节点控制 Amazon S3 存储桶访问的示例存储桶策略。要了解如何设置 VPC 终端节点,请参阅《VPC 用户指南》中的 VPC 终端节点

您可以使用 VPC 在您定义的虚拟网络内启动 AWS 资源。使用 VPC 终端节点可以在您的 VPC 和其他 AWS 服务之间创建私有连接,无需通过 Internet、VPN 连接、NAT 实例或 AWS Direct Connect 进行访问。

Amazon S3 的 VPC 终端节点是 VPC 内的逻辑实体,仅允许连接到 Amazon S3。VPC 终端节点将请求路由到 Amazon S3 并将响应路由回 VPC。VPC 终端节点仅更改请求的路由方式。Amazon S3 公有终端节点和 DNS 名称将继续使用 VPC 终端节点。有关在 Amazon S3 中使用 VPC 终端节点的重要信息,请参阅《VPC 用户指南》中的网关 VPC 终端节点Amazon S3 的终端节点

Amazon S3 的 VPC 终端节点提供两种方式来控制对 Amazon S3 数据的访问:

  • 您可以控制允许通过特定 VPC 终端节点访问的请求、用户或组。有关此类型的访问控制的信息,请参阅《VPC 用户指南》中的使用 VPC 终端节点控制对服务的访问

  • 可以使用 Amazon S3 存储桶策略控制哪些 VPC 或 VPC 终端节点有权访问存储桶。有关此类型存储桶策略访问控制的示例,请参阅以下有关限制访问的主题。

重要

如本节中所述对 VPC 终端节点应用 Amazon S3 存储桶策略时,您可能会无意中阻止对存储桶的访问权限。存储桶权限旨在专门限制存储桶访问源自 VPC 终端节点的连接,而这可能会阻止到存储桶的所有连接。有关如何修复此问题的信息,请参阅我的存储桶策略有错误的 VPC 或 VPC 终端节点 ID。如何修复策略才能访问存储桶?AWS Support 知识中心)。

限制对特定 VPC 终端节点的访问

下面是限制仅从 ID 为 vpce-1a2b3c4d 的 VPC 终端节点访问特定存储桶 awsexamplebucket1 的 Amazon S3 存储桶策略示例。如果未使用指定的终端节点,则该策略拒绝对存储桶的所有访问。aws:SourceVpce 条件用于指定终端节点。aws:SourceVpce 条件不需要 VPC 终端节点资源的 Amazon 资源名称 (ARN),而只需要 VPC 终端节点 ID。有关在策略中使用条件的更多信息,请参阅 Amazon S3 条件键示例

重要
  • 在使用以下示例策略之前,将 VPC 终端节点 ID 替换为适合您的使用案例的值。否则,您将无法访问您的存储桶。

  • 此策略禁用控制台访问指定的存储桶,因为控制台请求不是来自指定的 VPC 终端节点。

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }

限制对特定 VPC 的访问

可以使用 aws:SourceVpc 条件来创建用于限制对特定 VPC 的访问的存储桶策略。如果在同一 VPC 中配置了多个 VPC 终端节点,并且要管理对所有终端节点的 Amazon S3 存储桶的访问,这一点非常有用。下面是允许 VPC vpc-111bbb22 访问 awsexamplebucket1 及其对象的策略的示例。如果未使用指定的 VPC,则该策略拒绝对存储桶的所有访问。vpc-111bbb22 条件键不需要 VPC 资源 的 ARN,仅需要 VPC ID。

重要
  • 在使用以下示例策略之前,将 VPC ID 替换为适合您的使用案例的值。否则,您将无法访问您的存储桶。

  • 此策略禁用控制台访问指定的存储桶,因为控制台请求不是来自指定的 VPC。

{ "Version": "2012-10-17", "Id": "Policy1415115909153", "Statement": [ { "Sid": "Access-to-specific-VPC-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::awsexamplebucket1", "arn:aws:s3:::awsexamplebucket1/*"], "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-111bbb22" } } } ] }