AWS-对于对外部服务的传出请求,我应该使用AWS API Gateway还是NAT GAteway从私有子网调用外部Web服务

时间:2019-01-26 05:38:16

标签: amazon-web-services

使用AWS API网关的场景?这也仅适用于传入或传出服务吗? NAT网关是通过Internet网关调用外部服务的首选方式吗?可以用AWS API Gateway代替吗?后者会提供更多安全性吗?

两种调用外部服务的方式- 选项1- a)通过路由表将专用子网组件配置到NAT网关。 b)请求是否将从专用子网-> NAT网关-> Internet网关->外部服务路由?

选项2- a)配置私有子网以通过路由表在公共子网中调用AWS API Gateway b)请求是否将通过私有子网-> AWS API网关->外部服务进行路由?

请告诉我哪种选择更好?

1 个答案:

答案 0 :(得分:1)

您正在混淆。

如果实例/服务位于私有子网中,并且您需要该实例具有对Internet的出站访问权限,则需要一些NATing / PATing服务。如果是AWS,则可以将NAT网关连接到VPC,也可以在同一VPC的公共子网中启动NAT实例,并相应地配置路由表。 API网关与此无关。

API网关可帮助您构建无服务器,安全且高度可用的REST API,可以将HTTP / HTTPS请求发送到该API。您可以配置一些API网关资源/方法以指向外部服务吗?你当然可以。但是,API网关无法在您的路由表中定位。为什么?仅仅是因为路由表在ISO OSI模型的第三层(通过IP地址路由)上运行,而API网关在ISO OSI模型的第七层(应用层)上运行。

这是您可以做的事情。

  1. 实例(专用子网)-> NAT实例-> Internet网关->外部服务
  2. 实例(专用子网)-> NAT网关-> Internet网关->外部服务
  3. 实例(专用子网)-> NAT实例/网关-> Internet网关-> API网关->外部服务

或者您甚至可以启动仅在VPC内部运行的私有API网关,但又与授予Internet访问无关。

关于安全性,我们在这里不是在谈论某人试图访问您的资源(入站访问),而是在谈论您/您的资源试图访问某些外部服务。您可以并且应该通过防火墙(如NACL,安全组甚至操作系统级别的防火墙)来控制此操作。 API网关的安全性以相反的方式起作用,它可以保护您免受恶意传入请求/ DDOS攻击和对资源的未授权使用。

简而言之,如果您已经知道要从私有子网内部访问外部服务,那么API网关对您完全没有用。