我已经阅读了互联网上的大多数Stackoverflow问题和大量文档,但由于某种原因,当Redshift位于不同的VPC和不同的AWS帐户中时,无法让lambda连接到Redshift。
我有两个与VPC相关的子网,一个internet网关和NAT网关连接到VPC上。这是与Lambda函数相关联的VPC。我将NAT弹性ip添加到Redshift安全组的安全组中。NAT在路由表中,指向Redshift弹性ip。
一、以下方法行之有效:
你知道如何让兰达使用NAT的弹性ip或类似的东西吗?路由表中的NAT是否需要指向Redshift的弹性ip,或者CIDR块或类似的东西?我遗漏了什么?
发布于 2019-03-26 10:31:00
正如你所说的,向互联网开放你的红移并不是最好的答案,你真的应该考虑只在互联网上使用它。
因此,您将在下面找到我推荐给您的内容:-使用VPC对等程序(https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)将您绑定到Redshift VPC。小心地遵循路由表的所有步骤。-一旦您的VPC窥视已经完成,您将能够直接声明您的Lambda安全组到您的Redshift安全组,以允许入站访问。
然后,您将能够删除您的红移群集的互联网,并只能使用它的内部方式。
然后,如果您仍然希望使用您的方式,请注意:-请小心将Lambda部署到您的私有子网中(以便能够使用NAT网关EIP),并确保配置了您的所有路由(https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。如果您将lambda部署到您的公共子网中,那么配置Redshift安全组就会更加困难。-然后允许Lambda VPC EIP到Redshift安全组(入站规则)
发布于 2019-03-26 06:21:01
我使用以下要点找出了它:https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7
本质上,我做错的是使用一个路由表。我还把NAT指向了Redshift的弹性ip。
我所要做的就是从原始路由表中删除NAT,并创建一个新的附加路由表。然后,我将NAT添加到新的路由表中,并将该路由表与VPC中的另一个子网相关联。我将NAT指向0.0.0.0,而不是Redshift弹性ip。
这使我得以摆脱Redshift安全小组中的“公开”问题。我也相信NAT能帮助Lambda远离公共关系,但需要澄清这一点。
https://stackoverflow.com/questions/55349746
复制相似问题