没有人可以告诉你如何构建Hadoop吗?随意的下载无身份验证的Docker容器?容器简单易用,解放了系统管理员的双手,但这也让有些管理员过于依赖和信赖这项技术,忽视了对技术细节的把控能力,也忽视了安全。这是容器时代下的“悲剧”,还是系统管理员未尽其责?你赞同哪方呢:

系统管理员处于悲伤状态,在一片混乱……

我不是在抱怨老式的系统管理员。因为他们知道如何保持系统运行、管理更新和升级路径。

然而考虑到诸如Hadoop这样的例子,似乎没有人知道该如何从零构建Hadoop,其依赖性、版本需求和构建工具的混乱让人难以置信。

没人再从头编译源码,大多数人直接在别的网站上下载预编译的二进制文件,而这些文件通常没有任何身份验证或签名。就这样,NSA和病毒成了天堂——无需利用任何安全漏洞了,扮演app、VM或Docker image,当然也会有人下载你那恶意的二进制。

Debian的Hadoop Wiki Page就是一个典型的例子。事实上,在2010年人们就放弃了从源代码为Debian构建Hadoop并提供很好的包。

又比如说,为了创建Apache Bigtop,你显然需要先安装puppet3,然后它试图运行sudo puppet以能够进入NSA后门(例如它将下载并安装一个过时的预编译JDK,因为它觉得安装Java太过愚蠢)。它将尝试执行如下的命令:

容器管理系统 容器管理员_容器管理系统

注意它甚至没有正确安装包,但却把它安装到了你的根目录中,没有任何对签名的检查、甚至没有SSL证书。

即便这个的构建是能够工作的,但是请相信这一切将会变成一个巨大的、混乱的连锁依赖性。我上次检查的Hadoop类路径已经超过了100 jars,我打赌现在到150了。

曾试图去安全的更新一个容器吗?

从本质上来讲,Docker方法归结于下载一个无符号二进制、运行并希望它不包含任何能进入你公司网络的后门。这给人的感觉就像是90年代下载Windows共享。不禁在想第一个包含卸载的Docker image将会何时出现?

回到数年前,Linux发行版努力为你提供一个安全的操作系统。然而随后,一切变得和Windows一样,应用盛行,你下载并运行他们,不关心是否安全,不关心更新的事情。

所以,你曾试图去安全的更新一个容器吗?下面是来自HN的评论:

我认同这些方面的设定是尴尬的,但是这应该是系统管理员的职责,即更为精确的产品部署。没有人可以告诉你如何构建Hadoop吗?显然不是,你可以找到构建的方法。随意的下载Docker容器?不,你可以避免这种尴尬。