ECS实例的IP表

IP tables for ECS instance

还需要在容器实例上设置以下网络命令,以便任务中的容器可以检索其 AWS 凭证:

还需要在容器实例上设置以下网络命令,以便任务中的容器可以检索其 AWS 凭证:

sudo sysctl -w net.ipv4.conf.all.route_localnet=1
sudo iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679
sudo iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679

有人可以告诉我这是做什么的吗?

需要这些设置以允许 ECS 任务中的客户端 运行 能够到达用于提供 task IAM roles

的凭据端点

需要 net.ipv4.conf.all.route_localnet 设置才能使第一个 iptables 规则生效。通常,发往环回地址的流量不会被路由表处理,因此不会被 iptables POSTROUTING 规则看到。

需要第二个设置来配置 netfilter 以将源自桥接模式容器的 TCP 流量重写到 169.254.170.2 的端口 80 到 127.0.0.1:51679。这是 ECS 代理出售任务角色凭据的端口。

需要第三个设置来提供除主机模式容器之外的相同功能。它会影响流向任务 IAM 凭证端点的出站流量,而不是转发流量,并将其重定向到代理实际侦听的端口。