为传入流量启用私有端点 - AWS App Runner

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

为传入流量启用私有端点

默认情况下,当您创建 AWS App Runner 服务时,该服务可通过 Internet 进行访问。但是,您也可以将您的 App Runner 服务设为私有,并且只能从亚马逊虚拟私有云(亚马逊 VPC)中访问。

将 App Runner 服务私有化后,您可以完全控制传入流量,从而增加一层额外的安全性。这在各种用例中都很有用,包括运行内部 API、企业 Web 应用程序或仍在开发中、需要更高隐私和安全级别或需要满足特定合规性要求的应用程序。

注意

如果您的 App Runner 应用程序需要源 IP/CIDR 传入流量控制规则,则必须对私有端点使用安全组规则,而不是 WA F Web ACL。这是因为我们目前不支持将请求源 IP 数据转发到与 WAF 关联的 App Runner 私有服务。因此,与 WAF Web ACL 关联的 App Runner 私有服务的源 IP 规则不符合基于 IP 的规则。

要了解有关基础设施安全和安全组的更多信息,包括最佳实践,请参阅 Amazon VPC 用户指南中的以下主题:使用安全组控制网络流量和控制流向 AWS 资源的流量。

当您的 App Runner 服务为私有服务时,您可以从 Amazon VPC 中访问您的服务。不需要互联网网关、NAT 设备或 VPN 连接。

注意

App Runner 目前仅支持公共传入流量的双栈(IPv4 和 IPv6)地址类型。对于传出流量私人传入流量,仅支持 IPv4。

注意事项

  • 在为 App Runner 设置 VPC 接口终端节点之前,请查看AWS PrivateLink 指南中的注意事项

  • App Runner 不支持 VPC 终端节点策略。默认情况下,允许通过 VPC 接口终端节点对 App Runner 进行完全访问。或者,您可以将安全组与终端节点网络接口关联,以控制通过 VPC 接口终端节点到 App Runner 的流量。

  • 如果您的 App Runner 应用程序需要源 IP/CIDR 传入流量控制规则,则必须对私有端点使用安全组规则,而不是 WA F Web ACL。这是因为我们目前不支持将请求源 IP 数据转发到与 WAF 关联的 App Runner 私有服务。因此,与 WAF Web ACL 关联的 App Runner 私有服务的源 IP 规则不符合基于 IP 的规则。

  • 启用私有终端节点后,只能从您的 VPC 访问您的服务,并且无法通过互联网访问您的服务。

  • 为了获得更高的可用性,建议您在可用区中为 VPC 接口终端节点选择至少两个不同的子网。我们不建议只使用一个子网。

  • 您可以使用相同的 VPC 接口终端节点访问一个 VPC 中的多个 App Runner 服务。

有关本节中使用的术语的信息,请参阅术语

权限

以下是启用私有终端节点所需的权限列表:

  • ec2: CreateTags

  • ec2: CreateVpcEndpoint

  • ec2: ModifyVpcEndpoint

  • ec2: DeleteVpcEndpoints

  • ec2: DescribeSubnets

  • ec2: DescribeVpcEndpoints

  • ec2: DescribeVpcs

VPC 接口终端节点

VPC 接口终端节点是一种将 Amazon VPC 连接到终端节点服务的AWS PrivateLink资源。您可以通过传递 VPC 接口终端节点来指定您希望通过哪个 Amazon VPC 访问您的 AppRunner 服务。要创建 VPC 接口终端节点,请指定以下内容:

  • 用于启用连接的 Amazon VPC。

  • 添加安全组。默认情况下,会向 VPC 接口终端节点分配安全组。您可以选择关联自定义安全组,以进一步控制传入的网络流量。

  • 添加子网。为确保更高的可用性,建议您为每个可用区选择至少两个子网来访问 App Runner 服务。将在您为 VPC 接口终端节点启用的每个子网中创建一个网络接口终端节点。这些是请求者管理的网络接口,用作发往 App Runner 的流量的入口点。请求者托管式网络接口是 AWS 服务代表您在 VPC 中创建的网络接口。

  • 如果您使用的是 API,请添加 App Runner VPC 接口终端节点Servicename。例如,

    com.amazonaws.region.apprunner.requests

您可以使用以下 AWS 服务之一创建 VPC 接口终端节点:

  • App Runner 控制台 有关更多信息,请参阅管理私有终端节点

  • 亚马逊 VPC 控制台或 API,以及 AWS Command Line Interface (AWS CLI)。有关更多信息,请参阅AWS PrivateLink 指南 AWS PrivateLink中的AWS 服务 直通访问

注意

您需要根据AWS PrivateLink 定价为您使用的每个 VPC 接口终端节点付费。因此,为了提高成本效益,您可以使用相同的 VPC 接口终端节点访问一个 VPC 内的多个 App Runner 服务。但是,为了实现更好的隔离,可以考虑为每个 App Runner 服务关联不同的 VPC 接口终端节点。

VPC 入口连接

VPC 入口连接是一种 App Runner 资源,用于为传入流量指定应用程序运行器端点。当您在 App Runner 控制台上为传入流量选择私有终端节点时,App Runner 会在幕后分配 VPC 入口连接资源。选择此选项仅允许来自 Amazon VPC 的流量访问您的 App Runner 服务。VPC 入口连接资源将您的 App Runner 服务连接到 Amazon VPC 的 VPC 接口终端节点。只有在使用 API 操作为传入流量配置网络设置时,才能创建 VPC 入口连接资源。有关如何创建 VPC 入口连接资源的更多信息,请参阅 AWS App Runner API 参考CreateVpcIngressConnection中的。

注意

App Runner 的一个 VPC 入口连接资源可以连接到 Amazon VPC 的一个 VPC 接口终端节点。此外,您只能为每个 App Runner 服务创建一个 VPC 入口连接资源。

私有端点

私有终端节点是一个 App Runner 控制台选项,如果您只想接收来自 Amazon VPC 的传入流量,则可以选择该选项。在 App Runner 控制台上选择 “私有终端节点” 选项,您可以通过配置 VPC 接口终端节点将服务连接到 VPC。在幕后,App Runner 会为您配置的 VPC 接口终端节点分配 VPC 入口连接资源。

注意

私有终端节点仅支持 IPv4 网络流量。

Summary

仅允许来自 Amazon VPC 的流量访问您的 App Runner 服务,从而使您的服务私有化。为此,您需要使用 App Runner 或 Amazon VPC 为选定的亚马逊 VPC 创建 VPC 接口终端节点。在 App Runner 控制台上,当您为传入流量启用私有终端节点时,可以创建 VPC 接口终端节点。然后,App Runner 会自动创建 VPC 入口连接资源并连接到 VPC 接口终端节点和您的 App Runner 服务。这将创建一个私有服务连接,确保只有来自所选 VPC 的流量才能访问您的 App Runner 服务。