我们在AWS上具有Lambda函数,该函数通过api网关公开。 在该api上,我们有一项资源策略来限制流量,因此我们公司中只有ip地址可以访问端点。 为此,我们使用AWS在api网关资源策略页面上提供的标准ip范围黑名单模板,并将其修改为使用NotIpAddress而不是IpAddress,例如
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/stage/*/getInfo",
"Condition" : {
"NotIpAddress": {
"aws:SourceIp": [ "192.188.1.1", "192.168.1.2" ]
}
}
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/stage/*/getInfo"
}
]
}
我们现在需要开发另一个lambda,该lambda对该API网关进行http调用,以在执行更多逻辑之前收集一些信息。我们要使用现有的lambda,因为它执行一些复杂的逻辑。 但是,当我们尝试在新的lambda中使用http获取到现有lambda的API网关以获取所需信息时,根据资源策略中的deny规则,该请求将被拒绝
是否可以设置IPAddress限制并允许来自我们AWS账户中所有lambda的调用?
答案 0 :(得分:1)
如果Lambda位于您的VPC的专用子网中,则其IP地址可以绑定到NAT网关/ NAT实例。