View a markdown version of this page

在 VPC 中创建 Transfer Family Web 应用程序 - AWS Transfer Family

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 VPC 中创建 Transfer Family Web 应用程序

本节介绍在 VPC 中创建 Transfer Family Web 应用程序的过程。您可以将 Web 应用程序的终端节点托管在虚拟私有云 (VPC) 中,用于将数据传输到 Amazon S3 存储桶或从中传输数据,而无需通过公共互联网。要分配可以使用您的 Web 应用程序的用户和群组,请参阅向 Transfer Family Web 应用程序分配或添加用户或群组

注意

为确保在使用 Transfer Family Web 应用程序 VPC 终端节点时实现私密的端到端数据流,您必须实现另外三个组件。首先,为 Amazon S3 控制 API 操作设置一个 PrivateLink 终端节点,这是 Amazon S3 Access Grants API 调用所必需的。其次,使用 Amazon S3 网关终端节点(适用于来自您的 VPC 内的流量)或 PrivateLink Amazon S3 接口终端节点(用于通过 VPN 或直接连接来自本地网络的流量)为 Amazon S3 数据访问配置终端节点。第三,通过更新存储桶策略来锁定您的 Amazon S3 存储桶访问权限,使其仅允许来自这些 VPC 终端节点的流量。这种组合可确保所有数据传输都保留在您的私有网络基础设施中,并且永远不会通过公共互联网。

创建 Transfer Family 网络应用程序

先决条件

注意

AWS IAM Identity Center 不支持 VPC 终端节点;所有身份验证请求都通过公共互联网传输。此外,Transfer Family 网络应用程序需要访问互联网才能加载静态内容(例如 JavaScript CSS 和 HTML 文件)。公共互联网访问要求与数据访问是分开的。您的 VPC 终端节点确保连接通过您的 VPC 基础设施路由。

创建 Transfer Family 网络应用程序
  1. 登录 AWS 管理控制台 并打开 AWS Transfer Family 控制台,地址为https://console.aws.amazon.com/transfer/

  2. 在左侧导航窗格中,选择 Web 应用程序

  3. 选择创建 Web 应用程序。对于身份验证访问,该窗格填充如下。

    • 如果您已经在中创建了组织或账户实例 AWS IAM Identity Center,则会看到以下消息:您的 AWS Transfer Family 应用程序已连接到 IAM Identity Center 的账户实例

    • 如果您已经拥有账户实例并且是组织实例的成员,则可以选择连接哪个实例。

    • 如果您还没有账户实例,或者是组织实例中的成员,则可以选择创建账户实例。

  4. 端点配置部分中,选择您的用户将如何访问您的 Web 应用程序:

    • 可公开访问:您可以通过 HTTPS 通过公众访问您的 Web 应用程序终端节点。此选项不需要任何 VPC 配置,因此易于设置,适用于面向公众广泛使用的应用程序。

    • VPC 托管:您的 Web 应用程序终端节点托管在您的虚拟私有云 (VPC) 中,通过您的 VPC 网络或 VPN 连接提供私有网络访问。 AWS Direct Connect此选项通过网络隔离增强安全性,建议内部应用程序使用。

      配置 VPC 托管终端节点时,您需要指定:

      • VPC:选择现有 VPC 或创建新的 VPC。创建 VPC 按钮可用。

      • IP 地址类型:选择 VPC 终端节点的 IP 地址类型。选择 IPv4 进行 IPv4-only 连接,或Dual-stack同时选择 IPv4 和 IPv6 连接。默认值为 Dual-stack。

      • 可用区域:选择将部署终端节点的可用区域。

      • 子网:在每个选定的可用区内选择子网。

      • 安全组:选择或创建安全组以根据源 IP 地址控制访问权限。如果未指定,则使用 VPC 的默认安全组。通过 VPC 控制台管理安全组。配置您的 VPC 安全组,以允许在 TCP 端口 443 上通过 HTTPS 来自您的网络的入站流量。这是 IAM 身份中心身份验证和 Web 应用程序静态内容加载所必需的。

Post-creation 步骤

Cross-origin 资源共享 (CORS) 政策

您必须为 Web 应用程序使用的所有存储分区设置跨源资源共享 (CORS)。有关 CORS 的更多信息,请参阅 为您的存储 Cross-origin 桶设置资源共享 (CORS)

重要

在使用以下示例策略之前,将允许的来源替换为您的访问终端节点。否则,您的最终用户在尝试访问您的 Web 应用程序上的位置时会收到错误。

策略示例:

[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedOrigins": [ "https://vpce-1234567-example.vpce-mq.transfer-webapp.us-east-1.on.aws" ], "ExposeHeaders": [ "last-modified", "content-length", "etag", "x-amz-version-id", "content-type", "x-amz-request-id", "x-amz-id-2", "date", "x-amz-cf-id", "x-amz-storage-class", "access-control-expose-headers" ], "MaxAgeSeconds": 3000 } ]

限制对特定 VPC 端点的访问

下面是限制仅从 ID 为 amzn-s3-demo-bucket 的 VPC 端点访问特定存储桶 vpce-1a2b3c4d 的 Amazon S3 存储桶策略示例。如果未使用指定的端点,则该策略会拒绝对存储桶的所有访问。aws:SourceVpce 条件指定端点。aws:SourceVpce 条件不需要 VPC 端点资源的 ARN,而只需要 VPC 端点 ID。有关更新存储桶策略以仅允许来自您的 VPC 的流量的更多信息,请参阅使用存储桶策略控制来自 VPC 终端节点的访问。有关在策略中使用条件的更多信息,请参阅使用条件密钥的存储桶策略示例。作为应用此策略的先决条件,您应该创建一个 Amazon S3 VPC 终端节点

重要

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

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