Docker容器给应用程序的编写、分发和部署带来了真正的翻天覆地的变化。容器的目的是灵活使应用程序可以按需启用,无论何时何地。当然,无论我们在哪里使用应用程序,我们都需要数据。
如何将数据映射到容器中主要有两个流派。***个流派称我们将数据保留在容器中;第二个称我们在容器外保存***在这两种情况下,安全问题给数据和容器管理带来了很大的问题。
▲Image: Pexels/Pixabay
管理数据访问
现在有很多技术可以用来分配和存储Docker容器。临时存储容量,本地到操作容器的主机,可在操作过程中分配到容器。存储卷存储在映射到应用程序特定子目录的主机中。卷可以在容器实例化时创建或使用“docker volume”提前创建命令。
此外,本地存储可以作为安装点映射到容器中。在这种情况下,“docker run”该命令可以指定本地目录作为容器中的安装点。第三种选择是使用存储插件直接连接外部存储和容器。
开放访问
在每种 *** 中,Docker框架没有为数据提供内部安全模型。例如,任何主机目录都可以安装在容器中,包括敏感系统文件夹,如/etc。这意味着容器可能会因为使用标准简单而修改这些文件Unix设置权限授予权限。在这方面,另一种更好的 *** 是使用不同的非根容器Linux用户ID(UID)向下操作容器。这很容易做到,但这意味着建立一种保护每个容器的 *** ID(GID)或者UID作为权限检查。
我们在这里遇到了另一个问题:使用非根容器,除非用于操作容器,否则当地卷不能正常工作UID有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限访问/有权限有权限有权限有权限有权限有权限有权限var/lib/docker/volumes 目录。如果不这样做,数据将无法访问或创建。打开此目录将有安全风险;然而,没有固有的 *** 根据卷设置单独的权限。
如果我们看看如何将外部存储安装到容器中,许多解决方案只需向操作容器的主机显示块设备(LUN)以及格式化的文件系统。然后将容器显示为安装点。此时,可以在容器中设置目录和文件的安全性,以减少我们讨论过的问题。然而,如果是这样的话LUN/volume如果在其他地方重复使用,没有安全控制,因为没有直接构建容器/卷映射关系的安全模型。一切都取决于信任主机上的命令。
还有一个问题:缺乏多租户。当我们运行容器时,每个容器的例子可能是单独的应用程序。在传统的存储部署中,分配到容器的存储应在一定程度上分离,以确保数据不会被无意或恶意访问。没有简单的 *** 可以在主机级别上做到这一点,只有信任编排工具来操作容器并映射到数据。
寻找解决方案
这里的一些问题是特定的Linux/Unix。例如,安装命名空间的抽象化为我们的数据提供了不同的入口点,但没有抽象的权限--我无法向用户映射用户10001001-如果没有与每个文件和目录相关的物理升级ACL数据(访问控制列表)。ACL变更可能会影响性能。本地卷,Docker主机目录的权限可以简单设置,容器正在启动的新卷匹配UID。
外卷为我们从操作容器主机中的权限结构转移提供了一个很好的机会。然而,这意味着我们需要一一个机制来将卷数据映射到特定的容器实例中。请记住,容器不是固有的“身份”,可以根据意愿开始和停止。这使得很难确定任何单个容器是否是数据卷的所有者。
目前,主要的解决方案是依靠安排平台来管理容器的运行。我们相信这些系统可以在很多方面映射卷和容器,这与传统不同SAN存储或虚拟磁盘映射到虚拟机中。但容器的区别在于其便携性和安全机制延伸到公共云。
我们还有很多工作要做。Docker,存储初创公司Infinit收购可能会激发他们如何保护持久数据。这可能意味着开发界面使所有供应商都能为此做出贡献。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。