【发布时间】:2021-07-09 09:55:40
【问题描述】:
我目前在 AWS 中有如下设置:
图片来源来自task networking in aws fargate。
我正在使用 AWS ECR 来存储我的 docker 映像,并且在我的任务定义中,作为容器映像,我正在使用提供的存储库 URI。一切都在同一个区域,它们工作得很好。
但是,我想通过仅将特定端口列入白名单来加强 AWS 的安全性。从安全组的角度来看,我已根据需要对其进行了更新,并且一切仍在按预期工作。但是对于网络 ACL,我在 Fargate 任务方面遇到了一些问题。在公共子网的 ACL 部分中,对于入站规则,我希望只允许从 Internet (0.0.0.0/0) 访问 HTTPS 和 HTTP。这样做会导致我的 fargate 任务出现这个问题:ResourceInitializationError: unable to pull secrets or registry auth: pull command failed: : signal: killed。需要注意的是,两个子网(私有和公共)的出站规则都允许流量到任何地方(0.0.0.0/0)。
我了解 Fargate 任务需要连接到 Internet 才能在 ECR 中提取 docker 映像,而 NAT 可以帮助实现这一点。 docker pull 或 docker push 使用 HTTPS,并且私有子网已允许来自所有来源的所有流量和出站流量。
请就如何修改网络 ACL 以仅将特定端口列入白名单提出建议。
P.S:最后的手段是使用 AWS PrivateLink 访问 ECR 存储库,但我还不想这样做。
【问题讨论】:
-
您能提供/截屏您的 NACL 吗?另外我知道,如果您使用默认的 NACL,一切都会按预期进行?
-
帖子已更新,其中包含适用于公共子网的 NACL。是的,使用默认 NACL 一切正常
标签: amazon-web-services security amazon-ecs amazon-ecr