带有 Consul 的 Docker Machine/Swarm ——默认安全吗?

带有 Consul 的 Docker Machine/Swarm ——默认安全吗?

我使用了这个要点(下面重复)使用 Consul 创建 Docker Swarm。

docker-machine create \
  --driver=digitalocean \
  --digitalocean-access-token=$DO_TOKEN \
  --digitalocean-size=512mb \
  --digitalocean-region=nyc3 \
  --digitalocean-private-networking=true \
  --digitalocean-image=ubuntu-15-04-x64 \
    docker-swarm-kv-store

docker $(docker-machine config docker-swarm-kv-store) run -d \
  --net=host progrium/consul --server -bootstrap-expect 1

kvip=$(docker-machine ip docker-swarm-kv-store)

docker-machine create \
  --driver=digitalocean \
  --digitalocean-access-token=$DO_TOKEN \
  --digitalocean-size=2gb \
  --digitalocean-region=nyc3 \
  --digitalocean-private-networking=true \
  --digitalocean-image=ubuntu-15-04-x64 \
  --swarm \
  --swarm-master \
  --swarm-discovery consul://${kvip}:8500 \
  --engine-opt "cluster-store consul://${kvip}:8500" \
  --engine-opt "cluster-advertise eth1:2376" \
    docker-swarm-master

docker-machine create \
  --driver=digitalocean \
  --digitalocean-access-token=$DO_TOKEN \
  --digitalocean-size=2gb \
  --digitalocean-region=nyc3 \
  --digitalocean-private-networking=true \
  --digitalocean-image=ubuntu-15-04-x64 \
  --swarm \
  --swarm-discovery consul://${kvip}:8500 \
  --engine-opt "cluster-store consul://${kvip}:8500" \
  --engine-opt "cluster-advertise eth1:2376" \
    docker-swarm-agent-1

eval $(docker-machine env --swarm docker-swarm-master)
docker info

Docker Machine 是否确保集群是安全的(可能通过秘密管理 SSL 证书),或者任何人都可以通过指向来加入我的 Consul 集群${kvip}:8500

答案1

答案似乎是集群默认不受保护

上面列出的第二个命令是启动 Consul 服务的地方。如果证书已传递,则它们将显示在该行中。

Consul 入门指南只需要您希望加入的集群中另一个节点的主机名/端口——无需身份验证。但是,如果您已生成 TLS 证书,则可以添加它们如 DigitalOcean 教程所示. 需要注意的一点是,由于原始问题提到在 Docker 容器内运行 Consul,因此您需要使用卷来移动证书。

答案2

除了 @RyanKennedy 提到的之外,还要考虑任何人都可以:

  • 将代理加入到 consul 集群(避免这种情况的一种方法可能是使用加密
  • 向 consul 提交数据(你可以通过使用ACL 令牌

显然,这一切都假设没有其他东西提供保护,但是为了给您的防御提供一些深度,我肯定会考虑上面提到的两个配置项。

相关内容