我正在尝试弄清楚如何收紧我在AWS ECS中分配给容器实例的安全组 .
-
我在ECS上的服务中运行了一个相当简单的Express.js Web服务
-
我正在ECS前面运行应用程序负载均衡器
-
My Express.js容器公开并侦听端口8080
-
我正在使用 dynamic port mapping 来允许容器实例在同一个端口上运行多个容器(8080)
我发现为了让ALB将请求转发到ECS集群中运行的容器,我需要分配给容器实例的安全组以允许 all traffic . 请记住这些实例(由于我没有将集群配置为将实例放置在我的私有子网中 - 所以我不习惯这些实例基本上是开放的,只是ALB可以将请求传递给VPC内部 .
我理解,通过动态端口映射,我的容器或不在底层Docker主机上的单个端口上运行's running them. I also understand that there's没有请求的单个IP可能从ALB到达EC2实例,所以在我看来我不能如果我使用动态端口映射,请将其锁定,因为有进入EC2实例的's no single point of origin or destination for the traffic that' . 我觉得我的生活让我知道如何做到这一点 .
我应该如何配置ECS或我的EC2安全组,以允许我只允许从ALB访问容器实例而不是从Internet的其他部分访问?
我试图尽可能多地包含信息而不用不必要的细节来淹没问题 . 如果有任何我没有包含的细节,请发表评论,我很乐意提供 .
1 回答
1)您没有必要在容器实例上拥有公共IP地址 . 只是不要在启动时设置选项,请参阅此页面特别是步骤"e" http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html?shortFooter=true
如果实例位于私有子网中,那么路由不应该允许ingres ...
2)可以使用安全组锁定安全性 . 使用“安全组ID”而不是IP地址意味着您不必知道ALB的确切地址 . 有关ALB配置的说明,请参阅此页面
http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-update-security-groups.html