限制对特定vpc的lambda或api网关的访问

MrG*_*rts 4 amazon-web-services amazon-vpc aws-lambda aws-api-gateway

是否可以使api网关lambda函数只能由特定的vpc访问.

我在亚马逊文档中搜索过,但我没有找到关于这个主题的任何内容.

先感谢您

Ele*_*Ele 5

不幸的是,你将无法做到这一点(见下面的更新).

s3是通过Bucket策略提供这种控制访问的服务.

您可以做的是向您的呼叫者授予权限(Lambda调用者和API调用者).

看看这些资源:

更新:Michael的重要评论- sqlbot

您可能会指出,这是不可能的根本原因是Lambda服务API和API网关都是从Internet访问的,这意味着调用者的VPC身份丢失了 - 但是,可以间接识别VPC通过其NAT网关的EIP,它应该可以用于aws:sourceIp IAM策略条件密钥,间接限制对这些EIP后面的任何机器的访问,因此仅限于VPC.也许这是一个黑客,也许这是一个解决方法.

更新11/08/2018

介绍Amazon API Gateway专用端点

当今应用程序开发的最大趋势之一是使用API​​来支持产品的后端技术.移动,物联网,Web应用程序或内部服务相互之间以及应用程序前端的交互方式越来越多地使用一些API接口.

除了这种构建API驱动的应用程序的趋势之外,还有向微服务应用程序设计模式的转变.更大的应用程序由许多较小的应用程序组件表示,通常也通过API进行通信.各种公司(从初创公司到企业)共同使用API​​和微服务的增长.大规模,安全地管理API以及最小的操作开销所需的工具数量也在增长.

今天,我们很高兴地宣布推出Amazon API Gateway私有端点.这是此服务最受欢迎的功能之一.我们相信这将使创建和管理私有API变得更加容易.

私有端点

今天的发布解决了这个难题的一个缺失部分,即能够在您自己的VPC中拥有私有API端点.使用此新功能,您仍然可以使用API​​网关功能,同时仅将REST API安全地暴露给VPC内的其他服务和资源,或者通过Direct Connect连接到您自己的数据中心.

在此输入图像描述

这是如何工作的.

通过AWS PrivateLink接口VPC端点实现API网关专用端点.接口端点通过在您在VPC内定义的子网中创建弹性网络接口来工作.然后,这些网络接口提供对在其他VPC中运行的服务或对诸如API网关的AWS服务的访问.配置接口端点时,您可以指定应通过它们的服务流量.使用私有DNS时,该服务的所有流量都将定向到接口端点,而不是通过默认路由,例如通过NAT网关或公共IP地址.

API网关作为完全托管服务在其自己的VPC中运行其基础结构.当您与API网关可公开访问的端点连接时,它通过公共网络完成.当它们被配置为私有时,公共网络不可用于路由您的API.相反,只能使用已配置的接口端点访问API.

在此输入图像描述

  • 您可能会指出,这是不可能的根本原因是Lambda服务API和API网关都是从Internet访问的,这意味着调用者的VPC身份丢失了 - 但是,可以间接识别VPC通过其NAT网关的EIP,*应该可用于[`aws:sourceIp` IAM策略条件密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip. html),间接限制对这些EIP背后的任何机器的访问,因此仅限于VPC.也许这是一个黑客,也许这是一个解决方法. (2认同)