swarm 模式的 overlay 网络安全模型

    swarm 模式使用 gossip 协议来交换 overlay 网络信息。默认情况下,swarm 节点通过 gossip 使用 GCM 模式的 AES 算法来加密和认证交换信息。swarm 管理器节点每隔 12 小时循环一次用来加密 gossip 数据的键。
    你也可以对 overlay 网络中不同节点上的容器的交换数据进行加密。为此,只需在创建 overlay 网络时指定“--opt encrypted”:
$ docker network create --opt encrypted -d overlay my-multi-host-network

    当运行 overlay 启动加密后,Docker 就会在所有要调度绑定到该 overlay 网络上的服务任务的节点之间创建一个 IPSEC 通道。这些通道也是使用 GCM 模式的 AES 加密算法,管理器节点也是每隔 12 小时循环一次加密键。
    因为 overlay 网络的 swarm 节点使用来自管理器节点的加密键来加密 gossip 消息,所以只有 swarm 中作为任务运行的容器能访问到这些键。其它使用“docker run”创建的不属于 swarm 节点的的容器是不能绑定到 overlay 网络的。如下:
$ docker run --network my-multi-host-network nginx
docker: Error response from daemon: swarm-scoped network (my-multi-host-network) is not compatible with `docker create` or `docker run`. This network can only be used by a docker service.

    这种情况下,应该迁移这个未管理的容器到管理服务上,比如:
$ docker service create --network my-multi-host-network nginx

    除 swarm 模式外,也可以依赖第三方的键值存储区来支持 overlay 网络,不过推荐使用前者,因为除了上面提及的安全外,它还能充分利用新服务 API 提供的可扩展性。

猜你喜欢

转载自aisxyz.iteye.com/blog/2387982