AWS Lambda 无法访问同一 VPC 中的 EC2 端口

Posted

技术标签:

【中文标题】AWS Lambda 无法访问同一 VPC 中的 EC2 端口【英文标题】:AWS Lambda unable to access EC2 port within the same VPC 【发布时间】:2017-02-18 02:26:05 【问题描述】:

我有一个 lambda 函数访问在同一 VPC 中的 EC2 实例上运行的 Elasticsearch。不幸的是,即使我将其设为可公开访问,lambda 也无法访问该端口。

lambda 和 EC2 都分配给同一个 VPC。 lambda 也被分配给一个安全组,分配给 EC2 的 SG 明确地向该安全组授予入站权限。 Lambda 函数也分配给具有以下托管策略的角色:

AWSLambdaExecute AWSLambdaVPCAccessExecutionRole CloudWatchLogsFullAccess

Lambda 是否缺少某些权限?

谢谢!

【问题讨论】:

嘿,你是怎么解决这个问题的? 接受的答案提到了私有 IP 地址,我意识到我错误地使用了公共 IP。切换到私有 IP 解决了这个问题。 【参考方案1】:

分配给 Lambda 函数的 IAM 角色与此问题无关。

听起来您已正确设置 VPC 和安全组。您如何从 Lambda 函数中引用 EC2 服务器?您必须通过分配给 EC2 实例的私有 IP 地址引用它,以使网络流量保持在 VPC 内,并正确应用您配置的安全组规则。

【讨论】:

以上是关于AWS Lambda 无法访问同一 VPC 中的 EC2 端口的主要内容,如果未能解决你的问题,请参考以下文章

VPC 中的 AWS Lambda 在 NAT 之后没有互联网访问权限

如何将 VPC 和安全组分配给 AWS CDK 中的 Lambda?

AWS Lambda 无法调用没有 VPC 的另一个 AWS Lambda - NodeJs

启用 VPC 的 Lambda 函数无法在同一 VPC 中启动/访问 EC2

允许 VPC 中的 Lambda 访问同一 VPC 中的 Elasticsearch 域

AWS Lambda + NAT 网关的替代方案