Docker Swarm 与TLS 概述

Docker Swarm -> Overview Docker Swarm with TLS

Docker Swarm 与TLS 概述

Swarm集群中的所有节点必需绑定它们的Docker daemon到一个网络端口。这显然是有安全隐患的。当到了例如Internet这种不可信的网络环境下,这个问题更为明显。为了缓和这种风险,Docker Swarm和Docker Engine daemon支持Transport Layer Security (TLS).

注意: TLS是SSL (Secure Sockets Layer)的后继者,并且这两个术语经常互用。Docker 在这个文章通篇中使用TLS表述。

了解TLS的概念

再进一步讨论之前,了解TLS的基本概念和public key infrastructure (PKI) 是很重要的。

Public key infrastructure 关系到安全的技术,策略,处理,它被用于创建和管理数字证书。这些证书和数字安全通信使用了authentication和encryption机制。

下面的推断可能很有用。通常护照被用于确认个人的身份。护照通常包含了拥有者的照片和生物信息。护照会列出颁发他的国家还有有效期。数字证书也很相似。下面的文本是从数字证书中摘录的:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 9590646456311914051 (0x8518d2237ad49e43)
Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=US, ST=CA, L=Sanfrancisco, O=Docker Inc
    Validity
        Not Before: Jan 18 09:42:16 2016 GMT
        Not After : Jan 15 09:42:16 2026 GMT
    Subject: CN=swarm

这个证书标识了一个称作 swarm 的计算机。证书的有效期在2016.1-2026.1,由美国加州的Docker Inc颁发的。

正如护照是用于个人登机验证,数字证书认证网络中的一个计算机。

数字证书的使用依赖于public key infrastructure (PKI). PKI的支持如下:

  • 安全证书的申请服务
  • 程序验证实体请求证书
  • 处理确认实体的证书资格
  • 颁发证书的技术和流程
  • 吊销证书的技术和流程

Docker Engine 如何通过认证使用TLS

在这一章,你会了解到Docker Engine和Swarm是如何使用PKI和证书去提升安全性。

你可以设置使Docker Engine CLI和Docker Engine daemon需要TLS认证。设置了TLS意味着所有Docker Engine CLI和Docker Engine daemon的通信必须通过TLS和一个可信的数字证书的签名。Docker Engine CLI 必须提供它的数字证书在Docker Engine daemon接受到了命令请求之前。

Docker Engine daemon必须信任Docker Engine CLI使用的证书。这种信任通畅是由受信任的第三方的方式建立的。下图是配置的需要TLS认证的Docker Engine CLI和Docker Engine daemon。


TLS authentication
TLS authentication

图中受信任的第三方就是证书颁发机构(CA)服务器。以国家的护照为例,CA 创建,签署,颁发,吊销证书。信任源于通过安装CA的根证书在运行的Docker Engine daemon的主机上。Docker Engine CLI请求其拥有的CA服务器签名和颁发的证书从CA服务器。

Docker Engine CLI发送它的证书到Docker Engine daemon在它发送命令之前。Docker Engine daemon 检查这个证书,因为Docker Engine daemon 相信这个CA,所以Docker Engine daemon 自然也相信任何由CA签发的证书。假设这个证书还没有过期或被吊销,Docker Engine daemon将接收来自被信任的Docker Engine CLI的命令。

Docker Engine ClI是一个很简单的客户端,它使用Docker Engine Remote API与Docker Engine daemon进行通信。任何使用Docker Engine Remote API的客户端都可以使用TLS。比如,Docker Engine 客户端像‘Docker Universal Control Plane’(UCP)就内置了TLS支持,第三方使用了Docker Engine Remote API的产品都可以通过这种方式配置。

Docker和Swarm的TLS模式

现在你知道了Docker Engine daemon如何使用证书进行认证。这里的三个TLS配置可能很重要对于Docker Engine daemon和它的客户端:

  • 外部第三方CA
  • 组织内部CA
  • 自签名证书

这些配置的区别被用于区分证书颁发机构(CA)的类型。

外部第三方CA

一个外部CA是一个受信的第三方公司,它提供证书的创建,颁发,吊销和管理。它们满足特定的条件,保持高水平的安全性和商业习惯来赢得信赖。你可以安装外部的CA的根证书为你的服务和计算机去信任他们。

当你使用一个外部的第三方CA,它们创建,签署,颁发,吊销和管理你的证书。他们通常会收取一定的费用,但是它被认为是一个提供了高度信赖的企业级可拓展解决方案。

组织内部CA

有许多组织选择去实现他们自己的CA和PKI。常见的例子是使用OpenSSL和Microsoft Active Directory。在这种情况下,你的公司拥有CA需要承担CA的相关工作。这样做的好处是,你自己拥有CA,你有更多的PKI控制权。

运维你自己的CA和KPI需要你提供所有外部第三方CA的服务。包含创建,签署,颁发,吊销和管理你的证书。自己做所有的事情会造成一些花费和成本。然而,对于一个大的组织来说,它可以比使用第三方CA减少花费。

假设你自己操作和妥善管理自己的内部CA和PKI。那么一个内部组织的CA是一个高度可拓展和高度安全的选项。

自签名证书

顾名思义,自签名证书是一个使用他们自己的私钥签名的证书而不是受信任的CA签发的。这是一个极低的花费并且简单的使用选择。如果你可以正确的管理自签名证书,当然要比不使用证书更好。

因为自签名证书缺乏一个成熟了PKI,它们不能很好的扩展并且缺乏很多其它选择提供的功能。还有一个缺点是你无法吊销自签名证书。因为这个原因和其它的限制,自签名证书被认为是这些选择中安全性最低的选择。不推荐将自签名证书暴露在公开的不可信的网络环境中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Docker Swarm -> Configure Docker Swarm for TLS 为Docker Sw...
    zerolinke阅读 1,569评论 0 2
  • 即将开通地铁,二个出口。到天河约半小时。 近学校,近广汕公路。 省物流中心和知识城就在附近(在建) 发展潜力很大,...
    琥珀工坊阅读 443评论 0 0
  • 关于此项目 OpenWrt是一个用于嵌入式设备的GNU/Linux发行版,具有强大的扩展性。不同于其他许多用于路由...
    3c937c88e6c0阅读 1,902评论 0 3