在默认VPC中从Lambda访问AWS S3

时间:2019-01-09 14:31:47

标签: amazon-s3 amazon-ec2 aws-lambda amazon-vpc aws-vpc

我有一个lambda函数,该函数需要通过ssh访问ec2并加载文件并将其保存到s3。因此,为此,我将ec2和lambda都保留在默认VPC和相同的子网中。现在的问题是我可以将功能连接到ec2而不是s3。

自从早上删除vpc设置以来,它使我丧命,因为它将文件上传到s3,但是随后到ec2的连接丢失。

我尝试将NAT网关添加到默认VPC(尽管我不确定我是否正确执行此操作,因为我对此并不陌生),但是它没有执行任何操作。

我很困惑,因为我的ec2实例在同一VPC和子网中可以访问Internet,但是lambda函数无法访问s3。

我不确定该如何进行。

请帮助!!!

1 个答案:

答案 0 :(得分:4)

Lambda函数不会从VPC内获得分配给它的公共IP,因此它永远不会像您的EC2实例那样具有直接的Internet访问权限。您必须将Lambda函数移动到具有到NAT网关的路由的专用子网中,才能对其进行Internet访问。听起来像您尝试了此操作,但配置不正确。

如果所有需要访问的Lambda函数都是S3,则在您的VPC中设置VPC端点(AWS PrivateLink)比较容易。