docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker-swarm保护加密数据

docker-swarm教程之安全保护加密数据的方法详解

作者:demo007x

默认情况下,集群管理器使用的raft 算法的日志在磁盘上加密,这种静态加密可保护服务配置和数据免受访问加密Raft日志的攻击者的攻击,因此引入了Docker secret功能,来保证加密文件的安全,本文将给大家详细的介绍一下如何安全的保护加密数据

如何安全的保护加密数据

什么是“自动锁定”

默认情况下,集群管理器使用的raft 算法的日志在磁盘上加密。这种静态加密可保护服务配置和数据免受访问加密Raft日志的攻击者的攻击。因此引入了Docker secret 功能,来保证加密文件的安全。

当Docker重新启动时,用于加密群节点之间通信的TLS密钥和用于加密和解密磁盘上的Raft日志的密钥都加载到每个管理器节点的内存中。Docker能够保护相互TLS加密密钥以及用于加密和解密静态Raft日志的密钥,允许我们拥有这些密钥,并要求在 manager手动解锁。此功能称为自动锁定。

当Docker重新启动时,必须首先使用Docker在集群锁定时生成的密钥加密密钥来解锁集群。并且我们也可以随时修改此密钥加密密钥。

注意:当新节点加入集群时,是不不需要解锁蜂群,因为密钥通过相互TLS传播给它。

在启用自动锁定的情况下初始化蜂群

当我们初始化新的集群时,使用--autolock标志在Docker重新启动时启用群管理器节点的自动锁定。

 docker swarm init --autolock

将密钥存储在安全的地方,例如密码管理器中。

当Docker重新启动服务时,锁定的集群会导致以下错误:

 sudo service docker restart
 docker service ls

在现有集群上启用或禁用自动锁定

要在现有蜂群上启用自动锁定,请将autolock标志设置为true

 docker swarm update --autolock=true

要禁用自动锁定,请将--autolock设置为false。用于读取和写入Raft日志的相互TLS密钥和加密密钥未加密存储在磁盘上。在静态存储未加密的加密密钥的风险和无需解锁每个manager即可重新启动蜂群的便利性之间存在权衡。

docker swarm update --autolock=false

禁用自动锁定后,请将解锁密钥保留一段时间,以防manager在仍配置为使用旧密钥锁定时出现服务停止。

解锁集群

要解锁锁定的集群,请使用docker swarm unlock

 docker swarm unlock

当锁定集群或修改密钥时,输入生成并在命令输出中显示的加密密钥,集群解锁。

查看正在运行的集群当前解锁密钥

考虑我们的集群按预期运行的情况,然后管理器节点变得不可用。对问题进行故障排除,并使物理节点重新联机,但需要通过提供解锁密钥来读取加密的凭据和 Raft日志来解锁管理器。

如果自节点离开集群后,密钥尚未被修改,并且在集群中有一个功能管理器节点的法定人数,可以使用docker swarm unlock-key查看当前解锁密钥,而无需任何参数。

 docker swarm unlock-key

如果密钥在群节点不可用后修改,并且没有上一个密钥的记录,我们可能需要强制 manager离开蜂群,并将其作为新manager重新加入集群。

修改解锁键

我们应该定期修改锁定的集群的解锁密钥。

 docker swarm unlock-key --rotate

Note:当在修改解锁密钥时,请将旧密钥记录几分钟,这样如果manager在获得新密钥之前停止,它仍然可能被旧密钥解锁。

到此这篇关于docker-swarm教程之安全保护加密数据的方法详解的文章就介绍到这了,更多相关docker-swarm保护加密数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文