最近,我使用 assessment 对我的AWS资源进行了安全性评估。因此,在AWS基础安全最佳实践v1.0.0类别下,有一个失败的说法
EC2实例不应具有公共IPv4地址
如果此实例没有公共IP,如何通过internet访问此实例?
我想很好地解释一下这个安全最佳实践,即EC2实例不应该有公共IP地址。
发布于 2021-04-20 12:08:35
通常,只有负载均衡器才会暴露在互联网上。然后,它将流量转发给分布在多个可用性区域的Amazon实例。
负载均衡器可以过滤流量,并可以根据URL中请求的路径将流量路由到适当的目的地。
这样,没有人可以访问EC2实例(例如通过RDP或SSH)。
管理员应该能够通过VPN或直接连接来访问VPC,而不是通过Internet。
发布于 2021-04-21 14:02:12
EC2实例不应具有公共IPv4地址
这可能是指私有子网中的EC2实例。对于公共子网中的EC2实例,您需要一个IP来接收网络流量。
根据VPC常见问题

为了安全起见,确保与公共EC2实例关联的安全组只允许所需端口上的通信。例如,say服务器应该只需要有一个入站规则(入口),比如端口80。您不需要定义出站规则(出入口),因为对入站规则(入口)的响应仍然是允许的。
安全组是有状态的--如果您从实例发送请求,则允许该请求的响应通信量流入,而不考虑入站安全组规则。无论出站规则如何,都允许对允许入站通信量的响应流出。
正如我前面对其他答案之一的注释--您可以通过使用SSM (不包括边缘情况),而不允许SSH端口的入站通信量而逃脱。
如果你使用负载平衡器,答案不会改变。我试图在一个公共子网和Cloudformation中提供一个ASG (自动缩放组),指定实现不应该将公共IP地址与EC2实例相关联。ASG从未从EC2实例中获得成功信号,Cloudformation部署也被回滚。

发布于 2022-03-28 11:27:15
我认为您正面临这个安全问题,因为子网配置。检查子网配置是否启用了自动分配公共IP。
公共实例放置在此子网中,默认情况下将接收公共IP。这就是AWS提到的安全问题。
每次将新的EC2实例放入子网时,都应该手动启用Public,即使它是公共子网
https://stackoverflow.com/questions/67178299
复制相似问题