2

我在 VPC 中有一个 lambda 函数,它应该能够通过 VPC 端点连接到 SSM。事实上,我已经在另一个 VPC(默认)中使用它,但无法让它在我使用 CloudFormation 构建的新 VPC 中运行。此外,我可以通过同一 VPC 的 VPC 端点连接到 S3:

  • 部署 Lambda 的子网与 SSM VPC 终端节点相关联。
  • VPC 终端节点与一个安全组相关联,该安全组在端口 443 上接受来自应用层安全组(与 lambda 函数相关联)的传入请求。
  • Lambda 函数的应用层安全组有一个传出规则,允许它在 0.0.0.0/0 的任何地方广播
  • 子网的 NACL 允许所有传入和传出流量。
  • lambda函数的角色拥有对所有资源执行所有SSM动作的权限(只是暂时排除iam权限的情况)

  • 我尝试过 console.log 调试,它显示 lambda 函数在尝试从 SSM 获取信息后超时。

  • 我曾尝试使用流日志,但我看不到任何连接,或任何流入和流出 SSM 的数据。
  • 我已经比较了 2 个 VPC(一个可以工作的一个和一个不能工作的),我看不出规则上有任何差异。

谁能建议我如何调试它?

谢谢

4

1 回答 1

5

终于找到了问题,并认为我会发布这个以防万一其他人有同样的问题。

VPC 终端节点需要启用私有 dns。

通过控制台手动创建 VPC 终端节点时Enable Private DNS Name,默认选中该复选框。

但是,在使用 CloudFormation 创建 VPC 终端节点时,PrivateDnsEnabled需要将该属性显式设置为 true。

于 2018-08-17T12:01:55.380 回答