还需要在容器实例上设置以下网络命令,以便任务中的容器可以检索其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
有人可以告诉我这是做什么的吗?
答案 0 :(得分:1)
需要这些设置才能允许在ECS任务中运行的客户端能够访问用于提供task IAM roles的凭据端点
需要net.ipv4.conf.all.route_localnet设置才能使第一个iptables规则起作用。通常,用于环回地址的流量不会被路由表处理,因此iptables POSTROUTING规则不会看到它。
需要第二个设置来配置netfilter以重写源自目的地为端口80的169.254.170.2到127.0.0.1:51679的桥接模式容器的TCP流量。这是ECS代理程序发布任务角色凭据的端口。
除了主机模式容器之外,还需要第三个设置来提供相同的功能。它会影响发往任务IAM凭据端点的出站而非转发的流量,并将其重定向到代理实际侦听的端口。