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容器配置Nginx实例分享

    Docker容器配置Nginx实例分享

    这篇文章主要介绍了Docker容器配置Nginx实例分享的相关资料,需要的朋友可以参考下
    2016-10-10
  • Docker如何搭建私有镜像仓库

    Docker如何搭建私有镜像仓库

    这篇文章主要介绍了Docker如何搭建私有镜像仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • docker在ubuntu14.04下的安装步骤

    docker在ubuntu14.04下的安装步骤

    这篇文章主要介绍了docker在ubuntu14.04下的安装步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Docker Secret的管理和使用详解

    Docker Secret的管理和使用详解

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

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

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

    Docker搭建Portainer可视化界面步骤详解

    在本篇文章里小编给大家分享的是一篇关于Docker搭建Portainer可视化界面的实例操作方法,需要的朋友们参考下。
    2019-10-10
  • Docker Volumn容器间共享数据的实现

    Docker Volumn容器间共享数据的实现

    这篇文章主要介绍了Docker Volumn容器间共享数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • docker部署redis报错内存分配过度解决办法

    docker部署redis报错内存分配过度解决办法

    Docker很适合用于测试发布,将Docker封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署,这篇文章主要给大家介绍了关于docker部署redis报错内存分配过度的解决办法,需要的朋友可以参考下
    2023-11-11
  • 基于Docker+Selenium Grid的测试技术应用示例代码

    基于Docker+Selenium Grid的测试技术应用示例代码

    Selenium Grid允许我们在多台计算机上并行运行测试,并集中管理不同的浏览器版本和浏览器配置。这篇文章给大家介绍基于Docker+Selenium Grid的测试技术应用示例代码,需要的朋友参考下吧
    2021-08-08
  • 教你使用Portainer管理多台Docker容器环境的方法

    教你使用Portainer管理多台Docker容器环境的方法

    这篇文章主要介绍了Portainer管理多台Docker容器环境,本文给大家介绍的非常详细,包括环境准备及管理docker的详细过程,需要的朋友可以参考下
    2021-11-11

最新评论