防盗、防泄露、防篡改,我们把 ZooKeeper 的这种认证模式玩明白了

news2024/9/25 23:21:23

作者:子葵

你的 ZooKeeper 安全吗?

在当下网络安全事件频发的背景下,安全防护的构建成为日常开发与运维工作中的重中之重。ZooKeeper 存储着系统敏感实例信息与配置数据,但传统的使用方式并未为 ZooKeeper 配备强制身份验证机制,从而使得其内部数据面临暴露在网络空间中的风险。稍有不慎,任何具备网络访问能力的实体都能读取甚至篡改 ZooKeeper 中的数据,具有较大安全隐患。

用户案例

某企业自建 ZooKeeper 客户就曾在使用 ZooKeeper 时忽略了对内部敏感数据设置适当的访问控制列表(ACL)和使用身份认证能力,同时没有禁用那些具备潜在安全风险的“四字命令”,ZooKeeper 数据完全暴露于网络中,任何能够访问此网络的人员都能够连接并操作 Zookeeper 中的数据,在这种使用场景中由于存在巨大的安全隐患,被安全团队要求限期整改。

在这里插入图片描述
在这里插入图片描述

自行改造升级 ZooKeeper 安全能力,复杂程度高,风险大

1. 普通 ACL 方式修改繁琐,管理复杂

ZooKeeper 本身具备身份认证和细粒度的访问控制列表(ACL)能力。即便在默认配置下,它也能够支持多种身份认证模式,包括 Digest、IP 和 World 等。开发者可以在初始化连接时提供认证信息,并针对特定的 Znode 设置相应的 ACL,这样一来就能有效地限制客户端访问 Znode 的权限范围。然而,这套机制虽然强大,但是实际使用起来比较复杂。针对每个 Znode 单独配置 ACL 意味着随着 Znode 数量的增加,尤其是在业务逻辑较为复杂时,管理工作将变得异常繁重并且容易出错。

2. SASL 方式手动配置风险高,运维复杂

ZooKeeper 还提供了对 SASL(简单认证和安全层)身份认证模式的支持,该模式通过简单的服务器和客户端配置就能实现基于用户名和密码的认证机制。SASL 是一种支持身份验证过程和数据安全传输的协议,在 Java 中已经有一套基于该协议的接口实现,借助这些接口实现,ZooKeeper 实现了 SASL 认证功能,并且该功能可通过配置文件动态读取与应用,使得开发者可以无缝集成 SASL 认证机制,无需修改现有代码即可提升 ZooKeeper 的安全性。

在这里插入图片描述

采用 SASL 认证模式时,客户端与服务端通过相关配置实现安全连接:仅允许持有有效认证信息的客户端与ZooKeeper 服务器建立连接并执行数据操作。这有效增强了数据的安全性,避免了将 ZooKeeper 中的数据暴露于整个网络。

但是,实际部署 SASL 认证机制需手动完成服务端的配置工作,其配置规则较为复杂,容易在设置过程中出现错误导致节点异常。此外,SASL 认证所需的身份信息配置也需持续手动维护,增加了运维工作的难度和复杂性。

使用 MSE 标准化流程,简单快速加固集群安全能力

MSE 通过标准化流程集成了 SASL 配置管理能力,屏蔽底层集群和客户端配置的复杂度,使得用户只需要通过白屏化配置和客户端配置引入即可接入 SASL 身份认证能力。

在这里插入图片描述

MSE 集成 SASL 管理能力,方便用户快捷接入,提升集群安全能力

为了让用户更加便捷地利用 SASL 身份认证功能,MSE 简化了复杂的服务端配置步骤,将其抽象成简单的白屏操作。用户只需在 MSE 控制台几步操作,即可轻松启动服务端的 SASL 认证功能。同时 MSE 控制台会自动生成客户端配置,以及引导用户简单配置参数即可让应用接入 SASL 能力,无需深入繁琐的技术细节即可提升ZooKeeper 的安全能力。

在这里插入图片描述

通过在 MSE 控制台一键配置 SASL 用户信息,屏蔽 ZooKeeper 本身的复杂配置

在这里插入图片描述

通过参数配置,一键开启集群强制校验 SASL 身份信息以及禁用敏感信息四字命令

在开启了服务端和客户端强制 SASL 身份认证能力之后,未配置用户信息或者用户信息错误的客户端将无法再连接到 ZooKeeper Server。同时 MSE 提供用户管理,密码轮转等能力,在必要时刻能够快速轮转,和用户禁用。

通过以上配置,集群将会开启强制认证客户端 SASL 身份认证,无法通过身份认证的客户端将无法对服务端发起请求,从而有效降低了 Zookeeper 集群内部数据泄漏的风险,并且降低了手动运维的风险和复杂度。

兼容多种使用场景

1. Dubbo

使用 Dubbo 支持通过此种方式配置 SASL 身份认证能力,在 Dubbo 的使用场景中,需要确保使用的 ZooKeeper 依赖版本在 3.4.x 及以上版本才支持,配置过程和一般使用 ZooKeeper 客户端的方式相同。

2. SpringCloud

SpringCloud 使用的 spring-cloud-starter-zookeeper-discovery 依赖默认全部版本都支持,配置过程和一般使用 ZooKeeper 客户端的方式相同。

3. Kafka

kafka 所有版本依赖的 Zookeeper 客户端都支持使用 sasl 身份认证,配置过程和一般使用 ZooKeeper 客户端的方式相同。

4. 大数据生态

支持 Hadoop,Hbase,Hive 等依赖 ZooKeeper 的大数据组件(需要这些组件依赖的 ZooKeeper 版本在 3.4.x 及以上版本)。

5. 基于 ZooKeeper Java 客户端的所有场景

应用中使用 ZooKeeper java SDK 的其他场景都支持接入 SASL(需要依赖的ZooKeeper 版本在 3.4.x 及以上版本)。

小结

ZooKeeper 作为应用的核心中间件在业务流程中存储着敏感数据,具有关键作用。正确且规范的使用方法对确保数据安全至关重要,否则可能会因操作不当而导致内部数据泄露,进而带来严重的安全风险。因此,在日常的 ZooKeeper 运维和使用过程中,标准化和安全的操作对于加强企业安全防护和能力建设显得格外关键。为了实现这一目标,MSE 提供了一整套标准化流程,帮助用户以更安全、更简便的方式使用 ZooKeeper,从而加速企业安全能力的提升同时最大程度地降低在变更过程中可能出现的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu查看IP地址

Ubuntu查看IP地址 文章目录 Ubuntu查看IP地址查看IP地址的命令遇到的问题解决方案 查看IP地址的命令 1.使用ifconfig 2.使用hostname -I(-之前一个空格) 3.使用ip addr show 遇到的问题 1.使用ifconfig只显示一个127.0.0.1地址 2.使用hostname -I …

成功解决LabVIEW中加载 lvanlys.dll动态链接库(DLL)初始化例程失败

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主 🎄所属专栏:『奇怪问题及Bug解决』 📑精选文章:LabVIEW人工智能深度学习指南 🍻本文由virobotics(仪酷智能)原…

事务和索引(面试常问)

面试常问: 一、数据库隔离级别?事务隔离级别解决的问题? 答:1.数据库隔离级别: READ_UNCOMMITTED 读未提交 READ_COMMITTED 读提交(不可重复读) REPEATABLE_READ 可重复读 SERIALIZABLE 串行化…

Spring学习(三)-Bean的作用域和生命周期

Spring学习(三)-Bean的作用域和生命周期 –2020年06月25日 一、bean的作用域 概念: Spring 2.5之前的Bean 的作用域只有两种 Springleton:单例Bean Prototype : 原型Bean Spring 2.5 之后Bean的作用域有一下五种 …

C语言 Unix 时间戳 和 时间日期相互转换

Unix 时间戳(也称为 POSIX 时间戳)是一个表示从 1970 年 1 月 1 日 UTC 时刻开始所经过的秒数的数值。这个时间戳是与时间区域无关的,也就是说它在全球任何地方都表示同一个时刻。 如果你要将 Unix 时间戳转换为某个特定时区的时间&#xff…

封闭式蓝牙耳机推荐?4款更实用的开放式耳机推荐

封闭式耳机我想应该是头戴式耳机中的一种耳机类型吧,而开放式耳机则是一种范围比较大的耳机类型,这两种耳机类型确实有比较大的区别: 声音泄漏与隔音效果: 开放式耳机:由于其设计允许空气流通,因此声音会…

调用DXGI截图初始化失败,提示0xf 887a0004

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

09.FreeRTOS时间片调度与任务相关函数

文章目录 09. FreeRTOS时间片调度与任务相关函数1. FreeRTOS时间片调度2. 任务状态查询API函数3. 任务时间统计API函数 09. FreeRTOS时间片调度与任务相关函数 1. FreeRTOS时间片调度 时间片调度简介: 时间片调度实验流程: 核心代码: 开…

盲盒卡牌风靡市场,抽卡机小程序成为新的机遇

如今,在商场中都可以看到卡牌的身影,拆卡成为了当下年轻人休闲娱乐的新宠,卡牌市场逐渐升温。抽卡机小程序作为一个能够快速拆卡的新模式,已经逐渐成为了用户拆卡的重要渠道,也为卡牌市场的发展提供了重要方式。本文将…

数字化转型如何通过数据改变企业的运营流程?

不仅仅是技术层面的革新,更是企业运营理念、组织架构、文化氛围及市场策略的全面升级。数字化转型通过深度融合云计算、大数据、人工智能、物联网等前沿技术,优化企业运营流程,提升效率,增强竞争力,从而在快速变化的市…

RTOS(8)信号量和互斥量

1.信号量 信号量分为二值信号量和计数信号量 与队列相比:他不能传输数据,但同时他不需要传输数据,占用的空间也更小,运行更快; 2.互斥量 与二值信号量类似,是特殊的信号量,本身是想实现谁上锁…

【Harmony Next】在鸿蒙项目中一键添加卡片

【Harmony Next】在鸿蒙项目中一键添加卡片 1.下载鸿蒙编译器DevEco Studio的插件DevEco CodeGenie【下载链接】 在华为的编译器现在官网下面可以下载DevEco CodeGenie的压缩包,安装后可以使用DevEco CodeGenie进行智能问答、生成卡片、知识查询等操作 2.安装DevE…

MapStruct实体映射工具

一丶MapStruct是什么 MapStruct 是一个代码生成器,它基于配置方法的约定,极大地简化了 Java Bean 类型之间映射的实现,生成的映射代码使用普通方法调用,因此快速、类型安全且易于理解。 官方网站 MapStruct – Java bean mappings, the easy way! 二丶为什么需要MapStru…

桌管系统能否查微信聊天记录?这篇文章告诉你答案

桌面管理系统(简称“桌管系统”)确实可以用来监控和查看员工的微信聊天记录。以“安企神”这款桌管系统为例,它提供了全面的功能来帮助企业管理和监控员工的上网行为及通信记录。以下是关于安企神系统如何查看微信聊天记录的一些具体信息&…

什么是行为监控?企业透明化管理新纪元!揭秘四款顶尖行为监控软件!

行为监控,是指通过技术手段对员工在工作场所内的行为、活动以及数据使用情况进行全面、实时的监测与分析。它不仅帮助管理者洞悉员工工作状态,提升团队效率,还能有效防止数据泄露和不当行为,为企业构建更加安全、有序的工作环境。…

RAG前沿技术/解决方案梳理

RAG前沿技术/解决方案梳理 BenchmarkRetrievalAdaptive-RAGDR-RAGRichRAGGenRT Critique/ReasoningSelf-RAGCorrective RAGSpeculative RAGPlanRAGSelf-ReasoningReSP MemorySelfmemHippoRAG Query RewriteRaFe SummaryRefiner 个人理解 对当前RAG的学术研究(或者好…

加密的PDF文件怎么能够转换为word文档

Word是一种常见的文档格式,被广泛应用于办公室、教育等领域,目前它拥有较为丰富的文档编辑和格式化功能。然而,因为当前很多场景下,大多数资料文件都是以PDF格式存在,因为其具备比较强的稳定性,所以想要去修…

LearnOpenGL-光照章节学习笔记

LearnOpenGL-光照章节学习笔记 颜色创建一个光照场景 基础光照一、环境光照二、漫反射光照三、镜面反射 材质光照贴图一、漫反射贴图二、镜面光贴图三、放射光贴图 投光物一、平行光二、点光源衰减实现 三、聚光灯平滑边缘 多光源一、平行光(定向光)二、…

知识分享 | 详解整车区域控制器(ZCU)

随着智能网联汽车技术的迅猛发展,整车区域控制器ZCU(Zone Control Unit)作为汽车电子电气架构中的核心组件,其重要性日益凸显。ZCU不仅作为区域数据中心、IO中心及配电中心,在车辆动力、传感器管理、信息娱乐等方面发挥…

线性DP+摆渡车

线性DP: 具有线性“阶段”划分的动态规划算法称为线性DP。 线性DP无论状态表示是一维还是多维,DP算法在线性DP问题上都体现出了“作用在线性空间上的阶段划分和状态转移” ,DP的阶段沿着各个维度线性增长。从一个或多个“初始状态”开始有方…