将 Elastic Beanstalk 与 VPC 终端节点结合使用 - AWS Elastic Beanstalk
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 Elastic Beanstalk 与 VPC 终端节点结合使用

VPC 终端节点 使您能够将 VPC 私密地连接到支持的 AWS 服务和 VPC 终端节点服务(由 AWS PrivateLink 提供支持),而无需互联网网关、NAT 设备、VPN 连接或 AWS Direct Connect 连接。

VPC 中的实例无需公有 IP 地址便可与服务中的资源进行通信。VPC 和其他服务之间的流量不会脱离 Amazon 网络。有关 VPC 终端节点的完整信息,请参阅 Amazon VPC 用户指南 中的 VPC 终端节点

AWS Elastic Beanstalk 支持 AWS PrivateLink,这将提供与 Elastic Beanstalk 服务的私有连接并使流量远离公共 Internet。要使您的应用程序能够使用 AWS PrivateLink 向 Elastic Beanstalk 发送请求,您可以配置一类称为接口 VPC 终端节点(接口终端节点)的 VPC 终端节点。有关更多信息,请参阅 Amazon VPC 用户指南 中的接口 VPC 终端节点 (AWS PrivateLink)

注意

Elastic Beanstalk 在有限数量的 AWS 区域中支持 AWS PrivateLink 和接口 VPC 终端节点。我们正在努力在不久的将来向更多 AWS 区域提供支持。

为 Elastic Beanstalk 设置 VPC 终端节点

要在 VPC 中为 Elastic Beanstalk 服务创建接口 VPC 终端节点,请遵循创建接口终端节点过程。对于 Service Name (服务名称),请选择 com.amazonaws.region.elasticbeanstalk

如果已为 VPC 配置公有 Internet 访问权限,则您的应用程序仍可使用 elasticbeanstalk.region.amazonaws.com 公有终端节点通过 Internet 访问 Elastic Beanstalk。可以通过确保在终端节点创建期间启用 Enable DNS name (启用 DNS 名称) 来防止这种情况(默认情况下为 true)。这会在您的 VPC 中添加一个 DNS 条目,该条目将公有服务终端节点映射到接口 VPC 终端节点。

为增强型运行状况设置 VPC 终端节点

如果您为环境启用了增强型运行状况报告,则也可将增强型运行状况信息配置为通过 AWS PrivateLink 发送。增强型运行状况信息由 healthd 守护程序(环境实例上的 Elastic Beanstalk 组件)发送到单独的 Elastic Beanstalk 增强型运行状况服务。要在 VPC 中为此服务创建接口 VPC 终端节点,请遵循创建接口终端节点过程。对于 Service Name (服务名称),请选择 com.amazonaws.region.elasticbeanstalk-health

重要

healthd 守护程序将增强型运行状况信息发送到公有终端节点 elasticbeanstalk-health.region.amazonaws.com。如果已为 VPC 配置公有 Internet 访问权限,并且为 VPC 终端节点禁用了 Enable DNS name (启用 DNS 名称),则增强型运行状况信息将通过公有 Internet 传播。在设置增强型运行状况 VPC 终端节点时,这可能不是您的意图。请确保启用 Enable DNS name (启用 DNS 名称)(默认情况下为 true)。

在私有 VPC 中使用 VPC 终端节点

私有 VPC 或 VPC 中的私有子网没有公有 Internet 访问权限。您可能希望在私有 VPC 中运行 Elastic Beanstalk 环境并配置接口 VPC 终端节点以增强安全性。在此情况下,请注意,除了联系 Elastic Beanstalk 服务之外,您的环境可能会出于其他原因尝试连接到 Internet。要了解有关在私有 VPC 中运行环境的更多信息,请参阅在私有 VPC 中运行 Elastic Beanstalk 环境

使用终端节点策略控制通过 VPC 终端节点进行的访问

默认情况下,VPC 终端节点允许对与其关联的服务进行完全访问。创建或修改终端节点时,可以将终端节点策略 附加到终端节点。

终端节点策略是一种 AWS Identity and Access Management (IAM) 资源策略,用于通过终端节点控制对指定服务的访问。终端节点策略特定于某个终端节点。它独立于您的环境可能拥有的任何用户或实例 IAM 策略,并且不会覆盖或替换这些策略。有关创作和使用 VPC 终端节点策略的详细信息,请参阅 Amazon VPC 用户指南 中的使用 VPC 终端节点控制对服务的访问

以下示例拒绝所有用户通过 VPC 终端节点终止环境的权限,并允许对所有其他操作进行完全访问。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "elasticbeanstalk:TerminateEnvironment", "Effect": "Deny", "Resource": "*", "Principal": "*" } ] }
注意

目前,仅主 Elastic Beanstalk 服务支持将终端节点策略附加到其 VPC 终端节点。增强型运行状况服务不支持终端节点策略。