AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何对我的私有 Elastic Beanstalk 环境网络配置中的 VPC 端点进行故障排除?
我想在我的完全私有的 AWS Elastic Beanstalk 环境中解决网络问题。
简短描述
完全私有环境具有以下设置,并且仅允许从同一个 Amazon Virtual Private Cloud (Amazon VPC) 内访问您的 Web 应用程序。
- **负载均衡器可见性:**私有
- **负载均衡器子网:**两个私有子网
- **实例公共 IP:**已禁用
- **实例子网:**两个私有子网
VPC 之间的所有通信均通过配置的 VPC 端点进行。此外,VPC 内的所有通信均通过路由表中的本地路由进行。以下是由于网络配置而可能在环境中看到的常见错误:
- The Amazon Elastic Compute Cloud (Amazon EC2) instances failed to communicate with Elastic Beanstalk.(Amazon Elastic Compute Cloud (Amazon EC2) 实例与 Elastic Beanstalk 通信失败。)Communication failure is due to configuration problems with the VPC or a failed EC2 instance.(通信失败是由于 VPC 的配置问题或 EC2 实例失败造成的。)Check your VPC configuration, and try launching the environment again.(请检查您的 VPC 配置并尝试重新启动环境。)
- The instances didn't respond in the allowed command timeout time.(实例在允许的命令超时时间内未响应。)
解决方法
在创建完全私有的 Elastic Beanstalk 环境时,请确保已设置以下配置:
- 您必须有一个 VPC,在不同的可用区中至少有两个私有子网。
- VPC 必须启用 DNS 主机名和 DNS 解析。启用这些功能会在您的 VPC 中添加一个 DNS 条目,该条目将公共服务端点映射到接口 VPC 端点。
- 您必须创建 VPC 端点,以便 VPC 之外的 AWS 服务和 VPC 内部的实例能够通过这些端点进行通信。
检查 VPC 端点
标准的 Elastic Beanstalk 环境必须具有以下 VPC 端点才能成功创建:
- com.amazonaws.your-region.elasticbeanstalk(Elastic Beanstalk 接口端点)
- com.amazonaws.your-region.elasticbeanstalk-health(Elastic Beanstalk 运行状况接口端点)
- com.amazonaws.your-region.cloudformation(AWS CloudFormation 接口端点)
- com.amazonaws.your-region.logs(日志接口端点)
- com.amazonaws.your-region.sqs(Amazon Simple Queue Service (Amazon SQS) 接口端点)
- com.amazonaws.your-region.s3(Amazon Simple Storage Service (Amazon S3) 网关端点)
在 64 位 Amazon Linux 2 上运行的 Docker 平台中运行的环境必须具有以下额外 VPC 端点:
- com.amazonaws.your-region.ecr.dkr
- com.amazonaws.your-region.ecr.api
在 64 位 Amazon Linux 2 上运行的 Amazon Elastic Container Service (Amazon ECS) 平台中运行的环境必须具有以下额外 VPC 端点:
- com.amazonaws.your-region.ecs
- com.amazonaws.your-region.ecr.api
- com.amazonaws.your-region.ecr.dkr
注意: 为确保您的 Docker 和多 Docker 环境正常运行,请提供私有 Docker 映像。
检查安全组。
创建接口 VPC 端点时,必须为您的 VPC 端点选择子网和安全组。确保选择私有子网和具有相应入站规则的安全组。
连接到接口 VPC 端点的安全组必须具有端口 443 (HTTPS) 的入站规则:
入站规则:
| 类型 | 协议 | 端口范围 | 源 |
| HTTPS | TCP | 443 | 客户端的 IP 地址(参考备注) |
注意:要保护通过 VPC 端点的传入流量,请考虑在源中仅指定客户端的 IP 地址或网络。
此外,验证与实例关联的安全组是否允许来自负载均衡器的安全组的 HTTP 流量:
入站规则:
| 类型 | 协议 | 端口范围 | 源 |
| HTTP | TCP | 80 | 负载均衡器的安全组 |
验证与负载均衡器关联的安全组是否允许入站规则中的所有 HTTP 流量:
入站规则:
| 类型 | 协议 | 端口范围 | 源 |
| HTTP | TCP | 80 | 0.0.0.0/0 |
**注意:**您无需限制前面任何安全组中的出口流量。
检查路由表条目
创建网关端点时,您可以选择路由表。确保选择与 VPC 私有子网关联的路由表。与私有子网关联的路由表必须为每个网关 VPC 端点提供路由。例如,您必须为与 Amazon Simple Storage Service (Amazon S3) 或 Amazon DynamoDB 关联的每个网关 VPC 端点提供路由。
路由表条目:
| 目标 | 目标 |
| 172.xx.x.0/16 | local |
| pl-63a5xxx | vpce-04xxx |
检查 VPC 端点策略
VPC 端点策略必须允许您的 Elastic Beanstalk 环境私下与该服务通信。创建接口或网关端点时,您可以附加端点策略。端点策略控制哪些 AWS 主体可以使用 VPC 端点访问端点服务。AWS 主体包括 AWS 账户、AWS Identity and Access Management (IAM) 用户和 IAM 角色。如果您在创建端点时未指定端点策略,则默认情况下,该端点具有完全访问权限。
以下是使用 Elastic Beanstalk 时 S3 端点所需的 S3 网关 VPC 端点最低策略示例。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EBBucketAccess", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:PutObjectAcl", "s3:DeleteObject", "s3:PutBucketPolicy", "s3:PutObjectVersionAcl" ], "Resource": [ "arn:aws:s3:::elasticbeanstalk-*", "arn:aws:s3:::elasticbeanstalk-*/*", "arn:aws:s3:::cloudformation*/*" ] } ] }
