【发布时间】:2019-06-26 16:10:37
【问题描述】:
如何最好地通过 IP 限制对 AWS API 网关中某些路由的访问?
我想只允许我的 ECS 集群访问 API 网关中的某些路由。我尝试将 ECS NAT 网关、VPC CIDR 范围放在aws:SourceIp 中,但总是被拒绝。我什至尝试了我的个人计算机公共IP地址......结果相同......这是正确的方法吗?或者我应该尝试 IAM 授权人吗? IAM 授权方的缺点是我需要签署我的 API 调用?也许使用 API Gateway SDK?这意味着我更愿意避免代码更改。
{
"Id": "MY_API_POLICY",
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": ["XX.XX.XX.XX/32"]
}
},
"Resource": [
"arn:aws:execute-*:*:apiid/stagename/*/private/route"
]
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"arn:aws:execute-*:*:apiid/stagename/*/public/route"
]
}
]
}
【问题讨论】:
-
使用 Amazon API Gateway,您可以创建只能使用接口 VPC 终端节点从您的 Amazon Virtual Private Cloud (VPC) 访问的私有 REST API。这有帮助吗?
-
@jarmod 但我是一些公开的 API
-
集群的安全组,用于阻止您不希望它访问的那些 ips 的入站/出站流量,
-
是的资源策略是限制 ip/range 访问的正确方法。尝试关注aws.amazon.com/blogs/compute/… 以找到正确的方法。
-
@BanjoObayomi 如果您仅阻止安全组的端口,这可能不足以更好地阻止 api 网关上的 IP 范围
标签: amazon-web-services authentication authorization aws-api-gateway