【发布时间】:2020-08-21 12:10:12
【问题描述】:
我们在 aws 上有一个 Lambda 函数,它通过 api 网关公开。 在该 api 上,我们有一个资源策略来限制流量,因此只有我们公司中的 ip 地址可以访问端点。 为此,我们使用 AWS 在 api 网关资源策略页面上提供的标准 ip range blacklist 模板,并将其修改为使用 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,它在执行更多逻辑之前对该 API 网关进行 http 调用以收集一些信息。我们想使用这个现有的 lambda,因为它执行一些复杂的逻辑。 但是,当我们尝试在新的 lambda 中对现有 lambda 的 API 网关进行 http get 以获取所需信息时,根据资源策略中的拒绝规则,它会被拒绝
是否可以设置 IPAddress 限制并允许从我们的 AWS 账户中的所有 lambda 调用?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway