只允许 AWS API Gateway 访问 EC2 实例

Posted

技术标签:

【中文标题】只允许 AWS API Gateway 访问 EC2 实例【英文标题】:Only allow AWS API Gateway to access EC2 instance 【发布时间】:2016-07-23 01:37:18 【问题描述】:

我们的 api 在 AWS EC2 实例上运行。我们对使用 Cognito 和版本控制对 API 调用进行身份验证的 AWS API Gateway 很感兴趣。

谁能告诉我如何在不公开的情况下允许访问托管在 EC2 实例上的 API?我只希望 API Gateway 访问该 API。

我无法在文档中找到任何解决方案。

【问题讨论】:

【参考方案1】:

上一个答案:

您的服务器必须是公开的,API Gateway 才能访问它。此时最好的解决方案是使用客户端 SSL 证书,以便您的服务器可以轻松拒绝任何不是来自 API 网关的流量。

http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication.html

更新答案:

您现在可以在您的 VPC 中放置一个不可公开访问的私有网络负载均衡器,并在 API Gateway 中启用 VPCLink 以允许 API Gateway 向私有 NLB 发送请求。

【讨论】:

好的,谢谢,还有什么我应该考虑增加安全性的吗,或者这就足够了。 这样做会完全锁定对您服务器的访问,仅限 API 网关。 好的,我所要做的就是在我的 nginx 后端使用ssl_client_certificatessl_verify_client?谢谢。

以上是关于只允许 AWS API Gateway 访问 EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章

调用 AWS API Gateway Private 无法从 Front 访问,但 EC2 有效

AWS Api Gateway CORS“访问控制允许来源”正则表达式与 Cloudformation

AWS EC2 与 AWS API Gateway 上的 Node.js RESTful API 服务器

将托管在 AWS EC2 上的 Asp.net Web api 连接到 AWS API Gateway

将 AWS API Gateway 和私有 EC2 实例拼接在一起

访问控制允许凭据错误--nodejs