AWS App Runner 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息,请参阅 AWS App Runner 可用性变更。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理私有端点
使用以下方法之一管理传入流量的私有端点:
注意
如果您的 App Runner 应用程序需要源流 IP/CIDR 入流量控制规则,则必须对私有端点使用安全组规则,而不是 WAF Web ACL 。这是因为我们目前不支持将请求源 IP 数据转发到与 WAF 关联的 App Runner 私有服务。因此,与 WAF Web ACL 关联的 App Runner 私有服务的源 IP 规则不符合基于 IP 的规则。
要了解有关基础设施安全和安全组的更多信息,包括最佳实践,请参阅 A mazon VPC 用户指南中的以下主题:控制网络流量和使用安全组控制流向 AWS 资源的流量。
应用程序运行器控制台
当您使用 App Runner 控制台创建服务时,或者稍后更新其配置时,您可以选择配置传入流量。
要配置您的传入流量,请选择以下选项之一。
-
公共终端节点:使您的服务可通过互联网访问所有服务。默认情况下,选择公共端点。
-
私有终端节点:使您的 App Runner 服务只能在亚马逊 VPC 内访问。
启用私有端点
通过将私有终端节点与您要访问的 Amazon VPC 的 VPC 接口终端节点关联来启用该终端节点。您可以创建新的 VPC 接口终端节点,也可以选择现有的 VPC 接口终端节点。
创建 VPC 接口终端节点
-
打开 App Runner 控制台
,然后在区域列表中选择您的 AWS 区域。 -
转到 “配置服务” 下的 “网络” 部分。
-
对于传入的网络流量,选择私有端点。使用 VPC 接口终端节点连接到 VCP 的选项打开。
-
选择创建新端点。创建新 VPC 接口终端节点对话框打开。
-
输入 VPC 接口终端节点的名称。
-
从可用的下拉列表中选择所需的 VPC 接口终端节点。
-
从下拉列表中选择安全组。添加安全组为 VPC 接口终端节点提供了额外的安全层。建议选择两个或更多安全组。如果您不选择安全组,App Runner 会为 VPC 接口终端节点分配默认安全组。确保安全组规则不会屏蔽想要与您的 App Runner 服务通信的资源。安全组规则必须允许与您的 App Runner 服务交互的资源。
注意
如果您的 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 终端节点支持双栈流量。
-
(可选)选择添加新标签并输入标签密钥和标签值。
-
选择创建。配置服务页面打开,顶栏显示成功创建 VPC 接口终端节点的消息。
选择现有的 VPC 接口终端节点
-
打开 App Runner 控制台
,然后在区域列表中选择您的 AWS 区域。 -
转到 “配置服务” 下的 “网络” 部分。
-
对于传入的网络流量,选择私有端点。使用 VPC 接口终端节点连接到 VPC 的选项打开。显示了可用 VPC 接口终端节点的列表。
-
选择 VPC 接口终端节点下列出的所需的 VPC 接口终端节点。
-
选择 “下一步” 创建您的服务。App Runner 启用私有端点。
注意
创建服务后,如果需要,您可以选择编辑与 VPC 接口终端节点关联的安全组和子网。
要查看私有端点的详细信息,请访问您的服务并展开 “配置” 选项卡下的 “网络” 部分。它显示了 VPC 和与私有终端节点关联的 VPC 接口终端节点的详细信息。
更新 VPC 接口终端节点
创建 App Runner 服务后,您可以编辑与私有终端节点关联的 VPC 接口终端节点。
注意
您无法更新终端节点名称和 VPC 字段。
更新 VPC 接口终端节点
-
打开 App Runner 控制台
,然后在区域列表中选择您的 AWS 区域。 -
转到您的服务,然后在左侧面板上选择网络配置。
-
选择传入流量以查看与相应服务关联的 VPC 接口终端节点。
-
选择要编辑的 VPC 接口终端节点。
-
选择编辑。编辑 VPC 接口终端节点的对话框打开。
-
选择所需的安全组和子网,然后单击 “更新”。显示 VPC 接口终端节点详细信息的页面打开,顶栏上显示成功更新 VPC 接口终端节点的消息。
注意
如果您的 App Runner 应用程序需要源流 IP/CIDR 入流量控制规则,则必须对私有端点使用安全组规则,而不是 WAF Web ACL 。这是因为我们目前不支持将请求源 IP 数据转发到与 WAF 关联的 App Runner 私有服务。因此,与 WAF Web ACL 关联的 App Runner 私有服务的源 IP 规则不符合基于 IP 的规则。
要了解有关基础设施安全和安全组的更多信息,包括最佳实践,请参阅 A mazon VPC 用户指南中的以下主题:控制网络流量和使用安全组控制流向 AWS 资源的流量。
删除 VPC 接口终端节点
如果您不希望私密访问您的 App Runner 服务,则可以将传入流量设置为 “公开” 。更改为公有会删除私有终端节点,但不会删除 VPC 接口终端节点
删除 VPC 接口终端节点
-
打开 App Runner 控制台
,然后在区域列表中选择您的 AWS 区域。 -
转到您的服务,然后在左侧面板上选择网络配置。
-
选择传入流量以查看与相应服务关联的 VPC 接口终端节点。
注意
在删除 VPC 接口终端节点之前,请通过更新您的服务将其从其连接的所有服务中移除。
-
选择删除。
如果有服务连接到 VPC 接口终端节点,则您会收到 “无法删除 VPC 接口终端节点” 消息。如果没有任何服务连接到 VPC 接口终端节点,您将收到一条确认删除的消息。
-
选择删除。网络配置页面将打开传入流量,顶栏上显示成功删除 VPC 接口终端节点的消息。
App Runner API 或 AWS CLI
您可以在 App Runner 上部署只能从亚马逊 VPC 内部访问的应用程序。
有关将服务设为私有所需权限的信息,请参阅Permissions。
创建与 Amazon VPC 的私有服务连接
-
创建 VPC 接口终端节点(一种 AWS PrivateLink 资源)以连接到 App Runner。为此,请指定与应用程序关联的子网和安全组。以下是创建 VPC 接口终端节点的示例。
注意
如果您的 App Runner 应用程序需要源流 IP/CIDR 入流量控制规则,则必须对私有端点使用安全组规则,而不是 WAF Web ACL 。这是因为我们目前不支持将请求源 IP 数据转发到与 WAF 关联的 App Runner 私有服务。因此,与 WAF Web ACL 关联的 App Runner 私有服务的源 IP 规则不符合基于 IP 的规则。
要了解有关基础设施安全和安全组的更多信息,包括最佳实践,请参阅 A mazon VPC 用户指南中的以下主题:控制网络流量和使用安全组控制流向 AWS 资源的流量。
例
aws ec2 create-vpc-endpoint --vpc-endpoint-type: Interface --service-name:com.amazonaws.us-east-1.apprunner.requests--subnets:subnet1, subnet2--security-groups:sg1 -
通过 CLI 使用CreateService或 UpdateService App Runner API 操作引用 VPC 接口终端节点。将您的服务配置为不可公开访问。
False在NetworkConfiguration参数的IngressConfiguration成员中设置IsPubliclyAccessible为。或者,您可以将该IpAddressType字段设置为IPV4或DUAL_STACK。如果未设置,则此值默认为 IPV4。以下示例引用了 VPC 接口终端节点。例
aws apprunner create-service --network-configuration: { "IngressConfiguration": { "IsPubliclyAccessible":False}, "IpAddressType": "IPV4" } --service-name:com.amazonaws.us-east-1.apprunner.requests--source-configuration:<source_configuration> -
调用
create-vpc-ingress-connectionAPI 操作为 App Runner 创建 VPC 入口连接资源,并将其与您在上一步中创建的 VPC 接口终端节点相关联。它返回一个域名,该域名用于在指定 VPC 中访问您的服务。以下是创建 VPC 入口连接资源的示例。例请求
aws apprunner create-vpc-ingress-connection --service-arn: <apprunner_service_arn> --ingress-vpc-configuration: {"VpcId":<vpc_id>, "VpceId":<vpce_id>} --vpc-ingress-connection-name:<vic_connection_name>例响应
{ "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "PENDING_CREATION", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created> }
更新 VPC 入口连接
您可以更新 VPC 入口连接资源。VPC 入口连接必须处于以下状态之一才能更新:
-
AVAILABLE
-
创建失败
-
更新失败
以下是更新 VPC 入口连接资源的示例。
例请求
aws apprunner update-vpc-ingress-connection --vpc-ingress-connection-arn:<vpc_ingress_connection_arn>
例响应
{ "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "FAILED_UPDATE", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created> }
删除 VPC 入口连接
如果您不再需要与亚马逊 VPC 的私有连接,则可以删除 VPC 入口连接资源。
VPC 入口连接必须处于以下状态之一才能删除:
-
AVAILABLE
-
创建失败
-
更新失败
-
删除失败
以下是删除 VPC 入口连接的示例
例请求
aws apprunner delete-vpc-ingress-connection --vpc-ingress-connection-arn:<vpc_ingress_connection_arn>
例响应
{ "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "PENDING_DELETION", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created>, "DeletedAt": <date_deleted> }
使用以下 App Runner API 操作来管理服务的私有入站流量。
-
CreateVpcIngressConnection— 创建新的 VPC 入口连接资源。当您想要将 App Runner 服务与 Amazon VPC 端点相关联时,App Runner 需要此资源。
-
ListVpcIngressConnections— 返回与您的 AWS 账户关联的 AWS App Runner VPC 入口连接终端节点列表。
-
DescribeVpcIngressConnection— 返回 AWS App Runner VPC 入口连接资源的完整描述。
-
UpdateVpcIngressConnection— 更新 AWS App Runner VPC 入口连接资源。
-
DeleteVpcIngressConnection— 删除与 App Runner 服务关联的 App Runner VPC 入口连接资源。
有关使用 App Runner API 的更多信息,请参阅 App Runner API 参考指南。