我有一个通过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 EC2实例周围的防火墙。它控制从哪个CIDR范围可访问哪些端口。
假设您有一个EC2实例在端口80上运行服务,并且只希望VPC中的其他实例可以访问它。您只需将安全组配置为仅允许来自VPC的CIDR范围的端口80上的入站连接。这将使用私有IP地址,因为那是流量的来源。
让我们迈出更好的一步……假设您只希望specific实例能够进行通信。您将:
App-SG
)Web-SG
)Web-SG
以允许从App-SG
到端口80的入站连接即,安全组特定引用另一个安全组。这将允许来自与App-SG
关联的任何EC2实例的入站连接。
以上都不要求使用弹性IP地址。仅面向公众的资源需要公共IP地址。仅公开负载均衡器并使其他所有内容保持“私有”是很常见的。