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

 更新时间:2023年08月17日 08:20:59   作者: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保护加密数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 清理Docker磁盘空间的几种有效方法

    清理Docker磁盘空间的几种有效方法

    随着Docker的广泛使用,管理Docker占用的磁盘空间变得越来越重要,长时间运行Docker环境,未使用的容器、镜像、卷和网络等会逐渐积累,占用大量磁盘空间,本文将介绍几种清理Docker磁盘空间的有效方法,需要的朋友可以参考下
    2024-08-08
  • docker-compose的build使用方式

    docker-compose的build使用方式

    这篇文章主要介绍了docker-compose的build使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • docker创建redis镜像的方法

    docker创建redis镜像的方法

    本篇文章主要介绍了docker创建redis镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 使用Docker部署Angular项目的方法步骤

    使用Docker部署Angular项目的方法步骤

    这篇文章主要介绍了使用Docker部署Angular项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • docker搭建minio的问题解决

    docker搭建minio的问题解决

    本文主要介绍了docker搭建minio的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法

    Docker出现Cannot connect to the Docker daemon. Is the docker d

    这篇文章主要介绍了Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法的相关资料,需要的朋友可以参考下
    2016-12-12
  • 初次使用Docker的体验笔记总结

    初次使用Docker的体验笔记总结

    这篇文章主要介绍了初次使用Docker的体验笔记总结,对初学Docker具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • docker批量删除临时镜像

    docker批量删除临时镜像

    在开发的时候,需要经常发布开发包,在使用docker build构建镜像的时候,同一个版本经常会使用相同tag,频繁打包一段时间后,本地会出现很多Tag=<none>的临时镜像,下面给大家分享相关命令docker批量删除Tag=<none>的临时镜像,感兴趣的朋友一起看看吧
    2024-07-07
  • Docker目录映射方式

    Docker目录映射方式

    总结了一些常用的Docker命令,包括查看、停止、重启和删除容器等操作,帮助用户更好地管理容器
    2024-11-11
  • docker容器启动失败如何查看日志

    docker容器启动失败如何查看日志

    这篇文章主要介绍了docker容器启动失败如何查看日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论