AWS:使路由对外界私有
AWS: Make route private from outside world
我目前在 EC2 实例上 运行 有一个 Web 应用程序,旁边有 MySQL 运行。
我正在构建另一个需要来自 MySQL 数据库的信息的后端批处理服务。但是,我不希望它直接访问数据库。我想做的是在 Web 应用程序中构建一些 API 路由,即只能在内部访问(例如在 VPC 内)的 /private/foo
、/private/bar
,而所有其他路由都可以继续正常工作。
我想知道如何进行设置?
您的 VPC 使用私有子网(您可以配置地址)。您需要做的就是确保进入您服务器的流量来自同一子网。
由于您希望现有的 webapp 为这些专用路由提供服务,因此您需要在代码中查找原始 IP 地址。 (如果您不知道该怎么做,您可能会提出一个新的问题。)
另一种方法是 运行 第二个服务(或相同的服务但在第二个端口上侦听)。如果所有私有流量都来自端口 8081
(例如)并且所有 public 流量都来自端口 8080
,您可以只使用 AWS 的安全组来仅允许子网本地流量到端口 8081 和所有到 8080 的流量。
运行 一个 http/s Apache 反向代理服务器在您的 Web 应用程序前面。使用这个新的 Web 层来控制所有内部和外部 http/s 流量。
外部流量:
- 将 Apache 配置为在 80/443 上侦听外部流量。
- 使用并配置 Apache 模块 Proxy-Pass 以反向代理 Apache 虚拟主机配置中端口 80/443 中的所有 Web 应用程序流量。
- 使用 80/443 虚拟主机配置中的
<Location >
指令阻止对 /private
的访问
- 更新您的 DNS 记录以指向此网络层而不是您的网络应用程序
如何容纳您的内部流量:
- 让 Apache 侦听新端口,例如8080
- 为端口 8080 配置 Apache 虚拟主机以将内部 http 请求反向代理到您的 Web 应用程序,即
/private
如何保护设计:
- 使用 AWS 安全组阻止端口 8080 上的任何外部流量。
- 通过在 Apache 8080 虚拟主机配置中使用 Apache
allow,deny
规则来加倍降低安全规则,以确保仅允许来自内部 ip-range 的流量
上面的替代 Apache 配置:
不要理会端口 8080,所有内部和外部流量都使用 80,443。内部流量会针对不同的域名发出请求,并且您的内部和外部流量可以 managed/separated 使用 Apache 基于名称的虚拟主机 https://httpd.apache.org/docs/current/vhosts/name-based.html
我目前在 EC2 实例上 运行 有一个 Web 应用程序,旁边有 MySQL 运行。
我正在构建另一个需要来自 MySQL 数据库的信息的后端批处理服务。但是,我不希望它直接访问数据库。我想做的是在 Web 应用程序中构建一些 API 路由,即只能在内部访问(例如在 VPC 内)的 /private/foo
、/private/bar
,而所有其他路由都可以继续正常工作。
我想知道如何进行设置?
您的 VPC 使用私有子网(您可以配置地址)。您需要做的就是确保进入您服务器的流量来自同一子网。
由于您希望现有的 webapp 为这些专用路由提供服务,因此您需要在代码中查找原始 IP 地址。 (如果您不知道该怎么做,您可能会提出一个新的问题。)
另一种方法是 运行 第二个服务(或相同的服务但在第二个端口上侦听)。如果所有私有流量都来自端口 8081
(例如)并且所有 public 流量都来自端口 8080
,您可以只使用 AWS 的安全组来仅允许子网本地流量到端口 8081 和所有到 8080 的流量。
运行 一个 http/s Apache 反向代理服务器在您的 Web 应用程序前面。使用这个新的 Web 层来控制所有内部和外部 http/s 流量。
外部流量:
- 将 Apache 配置为在 80/443 上侦听外部流量。
- 使用并配置 Apache 模块 Proxy-Pass 以反向代理 Apache 虚拟主机配置中端口 80/443 中的所有 Web 应用程序流量。
- 使用 80/443 虚拟主机配置中的
<Location >
指令阻止对/private
的访问 - 更新您的 DNS 记录以指向此网络层而不是您的网络应用程序
如何容纳您的内部流量:
- 让 Apache 侦听新端口,例如8080
- 为端口 8080 配置 Apache 虚拟主机以将内部 http 请求反向代理到您的 Web 应用程序,即
/private
如何保护设计:
- 使用 AWS 安全组阻止端口 8080 上的任何外部流量。
- 通过在 Apache 8080 虚拟主机配置中使用 Apache
allow,deny
规则来加倍降低安全规则,以确保仅允许来自内部 ip-range 的流量
上面的替代 Apache 配置:
不要理会端口 8080,所有内部和外部流量都使用 80,443。内部流量会针对不同的域名发出请求,并且您的内部和外部流量可以 managed/separated 使用 Apache 基于名称的虚拟主机 https://httpd.apache.org/docs/current/vhosts/name-based.html