当不在 VPC 中时,我的 lambda 函数可以访问 Systems Manager 参数 (ssm.getParameter)。当我将 lambda 函数添加到我的 VPC 时,我无法访问 SSM。函数超时。
显然我错过了安全组设置或其他东西,但无法弄清楚。在我的 VPC 中运行 SSM 时,我需要做什么才能启用对 SSM 的 lambda 访问?
当不在 VPC 中时,我的 lambda 函数可以访问 Systems Manager 参数 (ssm.getParameter)。当我将 lambda 函数添加到我的 VPC 时,我无法访问 SSM。函数超时。
显然我错过了安全组设置或其他东西,但无法弄清楚。在我的 VPC 中运行 SSM 时,我需要做什么才能启用对 SSM 的 lambda 访问?
这很可能是因为您在公共子网中创建 lambda 函数,Lambda 确实获得了公共 IP 地址并使用 NAT 访问 VPC 外部的资源。
此外,作为旁注,AWS 现在为 SSM 提供了一个端点https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-setting-up-vpc.html所以你甚至不需要再上网
添加到@b.b3rn4rd
在遵循亚马逊的https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-setting-up-vpc.html之后,我自己完成了所有工作,但是从 lambdas 调用 SSM 时仍然出现超时错误。
我在以下文章中找到了答案https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-vpc-endpoints/您还需要为您的安全组添加另一个入站规则,您可以在其中允许入站您的 VPC 中的 HTTPS 请求,源将是您用于 Lambdas 的安全组。
它应该类似于类型:HTTPS 协议:TCP 端口:443 来源:[安全组]