如何阻止 docker swarm 服务访问特定 IP 地址

如何阻止 docker swarm 服务访问特定 IP 地址

我使用 docker swarm 在 Digital Ocean VPC 中部署了我的服务。

我想阻止该服务访问http://169.254.169.254/metadata/v1.json这是出于安全原因的元数据 API。有人知道怎么做吗?

谢谢,

答案1

你应该在主机上阻止它,Docker 使用主机网络配置,所以如果你的主机使用 iptables,你可以使用本文阻止访问。

你也可以使用相同的 iptables 阻止来自 Docker 的出口流量,请参阅这个答案

答案2

封禁IP有两种方式:169.254.169.254

1. 在宿主机中屏蔽 IP

# to block:
$ route add -host 169.254.169.254 reject

# to show the current routes:
$ route

2. 仅在 docker 过滤器链中使用以下方法阻止 docker 容器的 IP:iptables

# to block
$ iptables -I DOCKER-ISOLATION-STAGE-1 -d 169.254.169.254 -j DROP

# to show the current tables:
$ iptables -vL

相关内容