本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 VPC 中创建 Transfer Family 网络应用程序
本节介绍在 VPC 中创建 Transfer Family 网络应用程序的过程。您可以将 Web 应用程序的终端节点托管在虚拟私有云 (VPC) 中,用于向 Amazon S3 存储桶传输数据和从中传输数据,而无需通过公共互联网。要分配可以使用您的 Web 应用程序的用户和群组,请参阅在 Transfer Family 网络应用中分配或添加用户或群组。
注意
为了确保在使用 Transfer Family 网络应用程序 VPC 终端节点时的私密 end-to-end数据流,您必须实现三个额外的组件。首先,为 Amazon S3 控制 API 操作设置 PrivateLink 终端节点,这是调用 Amazon S3 访问授权 API 所必需的。其次,使用 Amazon S3 网关终端节点(用于来自您的 VPC 内部的流量)或 PrivateLink Amazon S3 接口终端节点(用于通过 VPN 或 Direct Connect 来自本地网络的流量)为访问 Amazon S3 数据配置终端节点。第三,将存储桶策略更新为仅允许来自这些 VPC 终端节点的流量,从而锁定您的 Amazon S3 存储桶访问权限。这种组合可确保所有数据传输都保留在您的专用网络基础设施中,并且永远不会通过公共互联网。
创建 Transfer Family 网络应用程序
先决条件
-
Amazon IAM Identity Center 使用已配置的身份提供商进行设置。请参阅为 Transfer Family 网络应用程序配置您的身份提供商。
-
VPC 和网络组件已设置。请参阅创建 VPC。
-
为 Amazon S3 控制操作设置的 API 终端节点。请参阅访问 Amazon S3 接口终端节点。
-
为 Amazon S3(网关或接口)设置的 VPC 终端节点。请参阅 Amazon S3 的 VPC 终端节点类型。如果您使用的是接口终端节点,则必须启用私有 DNS。有关示例,请参阅引入对 Amazon S3 的私有 DNS 支持 Amazon PrivateLink
。
注意
Amazon IAM Identity Center 不支持 VPC 终端节点;所有身份验证请求都通过公共互联网传输。此外,Transfer Family 网络应用程序需要互联网访问才能加载静态内容(例如 JavaScript CSS 和 HTML 文件)。公共互联网访问的要求与数据访问是分开的。您的 VPC 终端节点可确保连接通过您的 VPC 基础设施进行路由。
创建 Transfer Family 网络应用程序
-
登录 Amazon Web Services 管理控制台 并打开 Amazon Transfer Family 控制台,网址为https://console.aws.amazon.com/transfer/
。 -
在左侧导航窗格中,选择 Web 应用程序。
-
选择创建 Web 应用程序。对于身份验证访问,窗格填充如下。
-
如果您已经在中创建了组织或账户实例 Amazon IAM Identity Center,则会看到以下消息:您的 Amazon Transfer Family 应用程序已连接到 IAM Identity Center 的账户实例。
-
如果您已经拥有账户实例并且是组织实例的成员,则可以选择连接哪个实例。
-
如果您还没有账户实例,或者您是组织实例的成员,则可以选择创建账户实例。
-
-
在终端节点配置部分,选择您的用户访问您的 Web 应用程序的方式:
-
可公开访问:您可以通过 HTTPS 通过公众访问您的 Web 应用程序终端节点。此选项不需要任何 VPC 配置,因此设置起来很简单,适用于供广泛公众使用的应用程序。
-
VPC 托管:您的网络应用程序终端节点托管在您的虚拟私有云 (VPC) 中,通过您的 VPC 网络或 VPN 连接提供私有网络 Amazon Direct Connect访问权限。此选项通过网络隔离增强了安全性,建议用于内部应用程序。
注意
您必须具有双堆栈 VPC 配置。有关更多信息,请参阅 Amazon Virtual Private Cloud 用户指南中的双栈 VPC 配置示例。
配置 VPC 托管终端节点时,您需要指定:
-
VPC:选择一个现有 VPC 或创建一个新的 VPC。“创建 VPC” 按钮可用。
-
可用区:选择要部署终端节点的可用区。
-
子网:在每个选定的可用区内选择子网。
-
安全组:选择或创建安全组以根据源 IP 地址控制访问权限。如果未指定,则使用 VPC 的默认安全组。通过 VPC 控制台管理安全组。将您的 VPC 安全组配置为允许通过 TCP 端口 443 通过 HTTPS 从您的网络发送的入站流量。这是 IAM 身份中心身份验证和加载 Web 应用程序静态内容所必需的。
注意
无法为 VPC 终端节点自定义访问终端节点。要添加自定义 URL,请使用公共端点。
-
-
创建后步骤
-
请务必为从 Web 应用程序终端节点访问的所有存储分区设置跨源资源共享 (CORS) 策略。请参阅跨源资源共享 (CORS) 政策。
-
更新您的存储桶策略,仅允许来自您的 VPC 的流量通过您的 VPC 终端节点。请参阅限制对特定 VPC 端点的访问。
-
向 Transfer Family 网络应用程序分配或添加用户或群组。请参阅在 Transfer Family 网络应用中分配或添加用户或群组。
跨源资源共享 (CORS) 政策
您必须为 Web 应用程序使用的所有存储分区设置跨源资源共享 (CORS)。有关 CORS 的更多信息,请参阅 为您的存储桶设置跨源资源共享 (CORS)。
重要
在使用以下示例策略之前,请将 Allowed Origin 替换为您的访问终端节点。否则,当您的最终用户尝试访问您的 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" } } } ] }