我们有多个EC2实例托管我们的微服务。服务器的自动伸缩组具有一个ELB。所有流量都通过AWS API网关路由。问题是ELB的HTTPS端口向世界开放。

如何保护我们的服务器,以便仅允许流量通过API网关?

#1 楼

自2017年11月以来,现在可以在VPC中直接与服务器交互\ o /

请参阅:


https://stackoverflow.com/questions / 32671394 / can-i-specify-http-endpoint-in-a-vpc-as-resource-in-aws-api-gateway
http://docs.aws.amazon.com/apigateway/latest/ developerguide / set-up-private-integration.html


评论


如果aws移动文档,您可以尝试从aws doc添加更多信息,以便将来的读者可以搜索特定术语以在链接断开时找到它。

–滕西拜
17年12月20日在20:05

#2 楼

如果您不想向服务器公开其HTTPS,最好的保护就是将它们隔离在VPC中。

但是,API Gateway无法配置为直接与服务器交互在VPC /子网中(尚未)。为了解决该限制,您可以通过AWS Lambda从API网关代理流量,以到达VPC。 AWS博客中有一篇出色的博客文章,确切地解释了如何做到这一点。

将服务器隔离在VPC中比将它们保留在公共Internet上并尝试构建一些东西来检测流量是否安全。是合法的(来自API网关)。

评论


对于任何中等活跃的API,通过Lambda进行代理都会变得非常昂贵。必须有比这更好的选择。

– Evgeny Zislis
17 Mar 3 '17 at 7:49

极其昂贵?为何如此?您可以分享使用情况统计信息吗?

–亚历山大
17 Mar 3 '17 at 7:59

每月要执行1.5亿次执行,每个请求最多执行400毫秒。选择性能最低的128mb Lambda类型。 s3.amazonaws.com/lambda-tools/pricing-calculator.html上的计算器显示大约每月$ 150。实际上并不是非常昂贵,但也不可忽略。

– Evgeny Zislis
17 Mar 3 '17 at 8:57