View a markdown version of this page

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

AWS App Runner 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息,请参阅 AWS App Runner 可用性变更

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

为传入流量启用私有端点

默认情况下,当您创建 AWS App Runner 服务时,可通过互联网访问该服务。但是,您也可以将您的 App Runner 服务设为私有服务,只能在亚马逊虚拟私有云 (亚马逊 VPC) 内访问。

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

注意

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

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

当您的 App Runner 服务处于私有状态时,您可以从亚马逊 VPC 内访问您的服务。不需要互联网网关、NAT 设备或 VPN 连接。

注意

对于传入流量和传出流量,App Runner 支持 IPv4 和双栈(IPv4 和 IPv6)。

注意事项

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

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

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

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

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

  • 如果您为 IP 地址类型选择双栈选项,请确保您的子网可以支持双栈流量。

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

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

Permissions

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

  • ec2: CreateTags

  • ec2: CreateVpcEndpoint

  • ec2: ModifyVpcEndpoint

  • ec2: DeleteVpcEndpoints

  • ec2: DescribeSubnets

  • ec2: DescribeVpcEndpoints

  • ec2: DescribeVpcs

VPC 接口端点

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

  • 用于启用连接的亚马逊 VPC。

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

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

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

    com.amazonaws.region.apprunner.requests

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

注意

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

VPC 入口连接

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

注意

应用程序运行器的一个 VPC 入口连接资源可以连接到亚马逊 VPC 的一个 VPC 接口终端节点。此外,您只能为每个 App Runner 服务创建一个 VPC 入口连接资源。

私有端点

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

Summary

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