Amazon web services 我可以将VPC中的HTTP端点指定为AWS API网关中的资源吗?

Amazon web services 我可以将VPC中的HTTP端点指定为AWS API网关中的资源吗?,amazon-web-services,amazon-vpc,aws-api-gateway,Amazon Web Services,Amazon Vpc,Aws Api Gateway,我的产品(某些Web API)位于专有网络内部,即没有任何外部访问。我想公开这个API的一部分(只是几个HTTP方法),以便从internet访问。我试图使用AWSAPI网关实现这一点,但看起来我无法将内部ELB端点作为API网关资源。你知道我该怎么做吗 谢谢, --Vovan这最初是不可能的,然后通过支持客户端证书解决了这个问题,API网关可以使用客户端证书向您的服务进行身份验证。这是一个很好的解决方案,现在仍然可用,但仍然要求您的服务公开(至少在某种意义上)到Internet 2017年11

我的产品(某些Web API)位于专有网络内部,即没有任何外部访问。我想公开这个API的一部分(只是几个HTTP方法),以便从internet访问。我试图使用AWSAPI网关实现这一点,但看起来我无法将内部ELB端点作为API网关资源。你知道我该怎么做吗

谢谢,
--Vovan

这最初是不可能的,然后通过支持客户端证书解决了这个问题,API网关可以使用客户端证书向您的服务进行身份验证。这是一个很好的解决方案,现在仍然可用,但仍然要求您的服务公开(至少在某种意义上)到Internet

2017年11月,AWS发布了一项新功能,允许您实际提供API网关和内部服务之间的网络路径

您现在可以在Amazon虚拟私有云(VPC)中提供对HTTP(S)资源的访问,而无需将其直接暴露在公共互联网上。您可以使用API网关创建与VPC集成的API端点。您可以通过在VPC和网络负载均衡器(NLB)之间建立VPC链接来创建VPC的端点,这是由弹性负载平衡提供的

历史背景如下


到目前为止,还没有简单且万无一失的方法可以做到这一点,因为API网关可以访问的服务需要通过公共互联网进行访问/公开,并且没有内置的信任机制可以确保此类请求实际上来自任何API网关部署,更不用说API网关部署了

Amazon似乎已经解决了对后端服务的请求进行身份验证的问题,因为这些请求肯定不仅来自API网关,而且来自API网关实例。与以前一样,端点仍然需要向Internet公开,因为源IP地址是不可预测的——但API网关现在支持客户端SSL证书,API网关的后端使用该证书向后端服务的前端进行身份验证,API网关正在调用该证书

Q:Amazon API网关能否在Amazon专有网络中工作?

否。Amazon API网关端点始终是Internet的公共端点。对后端操作的代理请求也需要在Internet上公开访问。但是,您可以在AmazonAPI网关中生成客户端SSL证书,以验证到后端系统的请求是否由API网关使用证书的公钥发送

Q:我可以验证是API网关调用我的后端吗?

对。AmazonAPI网关可以生成客户端SSL证书,并使该证书的公钥对您可用。可以使用生成的证书调用后端,并且可以使用证书的公钥验证来自Amazon API网关的调用

-

当您在API网关控制台中生成客户机证书时,会向您提供该证书的公钥。为了安全起见,私钥由API网关保留,您无法访问。协商SSL时,API网关将向后端提供公钥。任何不提供相同公钥的对等方都不是API网关,您的后端应该拒绝SSL协商

如果恶意参与者拥有公钥,他们仍然无法通过SSL与您的后端通信,因为他们缺少匹配的私钥,而私钥只有API网关知道。(您的交互端将使用SSL证书及其配对私钥进行加密,当然,这只有您知道。)


此功能解决了API网关HTTP代理功能实用性的一个重大限制。。。事实上,当我发现上面修改过的信息时,我开始怀疑自己:这是否一直存在,我是否设法忽略了它?此信息是在2015年9月添加的。

这有点迂回,但您可以通过Lambda函数代理VPC中的Web服务端点。可以直接从API网关调用该Lambda函数。本博客详细介绍了如何做到这一点。

几周前,亚马逊宣布,他们将增加对lambda专有网络资源的支持。这似乎是通过网关和lambda集成向公共端点公开私有api的选择方法的另一种选择。这是一个很好的观点。我看了re:Invent2015现场主题演讲的网络广播,但我不记得听到过关于VPC集成的这一点。现在我意识到,当Vogels博士开始谈论python时,我认为在几分钟内不会讨论任何有意义的内容,所以我休息了一下,四处走走,舒展筋骨当该功能打开时,我会更新它。很高兴知道,但是使用客户端证书进行身份验证看起来更像是一种解决方法,而不是真正的答案。内部API仍然暴露在外部,所以没有任何东西可以保护它免受某些DOS攻击,如上面海报中的syn flood etcAgree。API网关的一个很好的特性是它可以保护API免受某些DOS攻击。但我不认为这有什么意义,后端EC2实例也暴露在互联网上。API网关应该像弹性负载平衡器一样工作,并与您的VPC一起工作。如前所述,Lambda函数现在可以直接访问VPC内部的资源。API网关的类似集成还没有被提及,但可能即将面世。当然,您可以使用API网关>Lambda>VPC资源,成本和复杂性也会相应增加。您的API interfa