Amazon web services 如何使API网关仅对我的ec2实例可用?

Amazon web services 如何使API网关仅对我的ec2实例可用?,amazon-web-services,amazon-ec2,aws-api-gateway,Amazon Web Services,Amazon Ec2,Aws Api Gateway,我向AWS部署了一个lambda,并创建了一个api网关来访问它。我不希望API网关是公共的,因为lambda只从我的一个ec2实例调用。配置它以保护此API的最佳方式是什么?我的ec2实例需要公共IP地址,因为我有指向它的DNS配置路由 我建议在Amazon API网关中使用私有API, 这将保护您的API网关,并使其仅可供VPC内的资源访问。 可以使用专用API的安全组和资源策略进一步保护它 不过,您需要创建一个端点来使用私有API网关 详细设置- 由于您仅从单个Amazon EC2实例使用

我向AWS部署了一个lambda,并创建了一个api网关来访问它。我不希望API网关是公共的,因为lambda只从我的一个ec2实例调用。配置它以保护此API的最佳方式是什么?我的ec2实例需要公共IP地址,因为我有指向它的DNS配置路由

我建议在Amazon API网关中使用私有API,
这将保护您的API网关,并使其仅可供VPC内的资源访问。
可以使用专用API的安全组和资源策略进一步保护它

不过,您需要创建一个端点来使用私有API网关

详细设置-

由于您仅从单个Amazon EC2实例使用AWS Lambda函数,因此无需使用API网关。(API网关通常用于向大量用户公开API。)

您可以直接调用AWS Lambda函数:

  • 您可以通过拨打
  • 您还可以使用编程语言(如和)中的AWS SDK

附带问题:如果Lambda函数仅从单个EC2实例调用,为什么选择使用API网关而不是直接调用Lambda
invoke()
函数?我不知道
invoke
函数。我如何从ec2实例调用它?我的ec2实例是否也需要在私有
VPC
中?如果是,如何访问ec2实例?要访问专用API网关,您的ec2需要与API网关位于同一VPC中。EC2的子网将取决于用例,如果它是前端,然后是公共子网,如果它是API服务器,然后在私有子网中启动,可以通过堡垒主机访问。EC2和lambda可以在不同的区域吗?可以。调用Lambda函数时,可以指定区域。在AWS CLI中,可以使用
--region
。在SDK中,可以在创建Lambda客户端对象时指定区域。