如何限制访问以允许通过公共Nginx反向代理在VPC中(在AWS中)所有内容?

问题描述 投票:0回答:1

我有一个通过Nginx公开的VPC内部运行的服务(也在VPC内的服务器上),因为需要nginx处理的http配置。我想允许同一VPC中的服务器通过only访问该服务-现在通过使用以下方式对ips进行硬编码来完成:

allow <elastic ip>;
allow <specific ip>;
allow <specific ip>;
...
deny all;

Elastic IP(在vpc范围内)似乎只允许没有自己的公共IP的实例。我还尝试过允许vpc和子网CIDR块,由于它们是内部的,因此我认为它们没有帮助。

如何获得针对私有VPC的一般公共CIDR?可能吗?我会以错误的方式处理吗?

amazon-web-services nginx networking amazon-vpc vpc
1个回答
0
投票

听起来您应该使用安全组

一个安全组就像每个单独的Amazon EC2实例周围的防火墙。它控制从哪个CIDR范围可访问哪些端口。

假设您有一个EC2实例在端口80上运行服务,并且只希望VPC中的其他实例可以访问它。您只需将安全组配置为仅允许来自VPC的CIDR范围的端口80上的入站连接。这将使用私有IP地址,因为那是流量的来源。

让我们迈出更好的一步……假设您只希望specific实例能够进行通信。您将:

  • 在允许访问Web服务器的实例上创建安全组(我们将其称为App-SG
  • [使用Web服务器在实例上创建安全组(将其称为Web-SG
  • 配置为Web-SG以允许从App-SG到端口80的入站连接

即,安全组特定引用另一个安全组。这将允许来自与App-SG关联的任何EC2实例的入站连接。

以上都不要求使用弹性IP地址。仅面向公众的资源需要公共IP地址。仅公开负载均衡器并使其他所有内容保持“私有”是很常见的。

© www.soinside.com 2019 - 2024. All rights reserved.