开源项目专访 | ZTDBP——一场运维事故诞生的开源项目

近年来,开源软件的力量日益凸显,而开源软件、开源项目的快速发展离不开开源基金会的支持,从资金支持、法务协助到运营治理、社区文化等方面,开源基金会扮演着越来越重要的角色。越来越多优秀的开源项目开始捐赠给开源基金会,通过基金会快速推动开源项目的健康成熟发展。

在今年6月份成功举办的2023开放原子全球开源峰会上,开放原子开源基金会与ZTDBP签订了捐赠协议。本文我们将重点聚焦ZTDBP项目,深入了解ZTDBP项目的功能、应用场景及项目捐赠后的发展方向,探讨开源基金会对开源项目以及开源项目对社区及行业带来的影响。

起源于运维事故

保护数据安全是重要课题

Q

请简要介绍一下ZTDBP项目,包括项目简介、功能以及应用场景?

ZTDBP是一款致力于在云原生环境下提供数据库通信认证及防护能力的开源项目。项目旨在通过以下几个方面来增强对于数据库的通信安全能力:私有代理授权校验、MTLS通信身份校验、自定义SQL拦截、访问控制以及数据库访问行为记录。

图片

在ZTDBP项目中,私有代理授权校验是一个非常重要的安全措施,通过该措施,项目能够避免数据库公网暴露的风险,从而保护数据的安全性。项目还采用MTLS双向身份校验和自定义SQL拦截的方式,对数据进行身份过滤、用户名密码信息保护和最小特权原则的访问控制,进一步保障数据的安全。

除此之外,ZTDBP项目还提供了数据库访问行为记录的功能,通过记录数据库访问行为并进行风险提示,帮助企业及时发现并排除安全风险,保护数据的完整性和可用性,记录的访问行为还可以用于后续的数据分析,提高企业的数据安全意识和防护能力。

简而言之,ZTDBP项目是一项高效、安全、可靠的云原生环境下的数据库防护基础设施,旨在为企业提供全方位的数据安全保护,保障企业的业务和数据安全。

Q

ZTDBP项目发起初衷是什么,请简单讲述一下项目的起源和发展历程?

ZTDBP项目起源于一次运维事故,由于运维人员没有遵守内部流程,误将一个内部测试环境的服务数据库清空,影响了几个项目的测试。虽然后续数据恢复了,但是引发了数据安全不能完全依赖于人和流程制度的思考,而且由于数据库访问信息存放在环境变量中,获取的难度相对较低,对于线上环境来说也只是基于网络位置的校验,除了更难进入内网外,其他与测试环境都是一致的。

那么如何更加有效地保护数据安全就变成了必须解决的重要课题。

于是我们开始设计和孵化这个项目,通过vault等机密存储组件存储服务的数据库信息;通过控制面和数据面分离来解耦控制逻辑及其权限控制,以及实际的数据保护逻辑;通过私有代理来进行更加细粒度的网络隔离和更强的安全校验。

首先是在内部进行使用和功能迭代,基础功能稳定之后,在开始考虑开源的过程中接触到了开放原子开源基金会,在进行开源的基本项目的建设同时也在向开放原子开源基金会进行项目捐赠。

非侵入式大受欢迎

坚持零信任技术思想

Q

ZTDBP有哪些主要特点和重点功能?这些功能中有哪些最受开发者的喜欢?

ZTDBP的主要功能特点有:

• 保护MySQL密码等敏感信息:可以使终端服务在不接触数据库真实访问地址及密码的情况下成功完成对数据库的访问。

• 基于零信任提供对于数据的可信访问:通过中间件方式禁止未授权的访问,减少了到达数据库的安全攻击。

• 提供灵活的认证、授权策略:以最小特权原则为不同的服务/账号授予权限,并通过控制面能够方便地进行动态调控。

• 具有非侵入式特点,业务服务代码不要做任何改变,采用正常的方式进行连接数据库,只不过用户名和密码是虚假的标识,在数据面做检验和从机密存储中获取真实的连接信息。

从项目内部推广使用的经验来看,非侵入式最受欢迎,因为不会对业务团队带来额外的工作量,从而极大降低了推广使用的阻力。

Q

ZTDBP技术架构和使用的技术栈都有哪些?选择这些技术栈的原因是什么?

ZTDBP项目后端与中间件采用Go语言,前端使用Vue进行开发;技术架构方面整体采用零信任的思想,即从不信任,永远验证;采用数据面和控制面分离的方式来解耦不同的功能。

ZTDBP采用这些技术栈主要有两方面的因素,第一,这些技术栈开发者已经熟练使用,第二,许多云原生项目采用Go语言开发,具有比较多的库,不必重复造轮子,可以站在前人的肩膀上进行开发。

Q

ZTDBP主要用于哪些应用场景?目前在哪些行业或领域中得到了广泛应用?对比行业内同类型项目,主要优势有哪些,不足是什么,未来准备如何在项目上持续发力?

ZTDBP主要用于以下两个场景:

• 数据库访问信息防护场景:通过数据面安全防护避免数据库连接信息的暴露。

• 使用私有代理进行资源的网络隔离场景:避免数据库直接的外网暴露或者在内网增加网络隔离增强安全性。

ZTDBP主要用于数据库的安全防护,公司内测试与正式环境均采用了此项目增加安全防护。目前的数据安全防护主要基于网络位置的校验,注重网络隔离的防护,比较难以进入内网。

ZTDBP的优势是采用零信任思想默认启用无处不在的加密及验证,增强数据传输和数据访问安全性,增强数据库连接信息的存储安全性,通过控制面给予灵活的访问策略控制。项目的不足之处主要有两个,一方面,ZTDBP对数据库种类的支持有限,这也是目前主要建设的内容之一;另一方面,由于部署额外的组件,带来额外复杂度提升,这是难以避免的,ZTDBP采取的措施是增强可观测性使其更易于部署和维护,降低使用者的心智负担。

捐赠给开放原子开源基金会

寻求更好发展

Q

为什么决定将ZTDBP捐赠给开放原子开源基金会?基金会有哪些地方吸引了项目方?

一方面,我们希望能够促进项目以一个中立的身份持续发展;另一方面,希望通过基金会增加项目的影响力。开放原子开源基金会代表了一种社会责任和知识共享的精神,这也会进一步增加项目的社会形象,从而吸引到更多的用户和参与者,增强项目的可持续性。同时,我们也希望通过基金会获得更多关于项目孵化和发展的指导。

Q

项目捐赠给开放原子开源基金会之后,取得了哪些显著进展?

我们认为主要有以下几大重要进展,首先,ZTDBP在基金会的帮助下通过了合规检查,规范了项目本身的开源协议,检测了引用库的开源协议,消除了潜在的开源协议冲突风险。其次,社区代码的贡献流程也更加规范。另外,ZTDBP积极通过参与基金会展会等活动,对项目进行宣传,也因此收获了许多对项目感兴趣的潜在用户和开发者。

Q

在同样捐赠给开放原子开源基金会的项目中,您希望与哪些相关开源项目或者组织建立合作关系,原因是什么?您认为哪些项目发展的比较好,他们有哪些值得我们借鉴的地方?

我们对Pika项目比较感兴趣,ZTDBP正在进行对于Redis数据库的支持,Pika是一个“大容量的类Redis存储”,因此无论是在组合使用还是技术交流方面都有可能性。此外,我们认为OpenHarmony和openEuler的发展都比较好,社区都非常活跃,在社区运营方面非常值得学习。

Q

ZTDBP如何保证在开源社区中的活跃度,又是如何回馈开源社区的?

我们的计划是先进行使用和贡献文档的补全,这样能够降低使用和贡献的门槛,然后吸引更多的用户与开发者,从而收取到更多的意见反馈和社区贡献,促进开源社区的活跃发展。

回馈开源社区有多种方式,不仅仅是贡献代码,还包括提交错误报告和建议,参与问题的讨论,撰写文档教程,推广和分享项目及开源内容等等。

未来展望

Q

ZTDBP的未来目标是什么?对项目版本路标的规划是什么?有哪些重点需要实现的功能?

ZTDBP项目的目标是成为云原生环境下的一个成熟的数据库保护方案提供关键基础设施组件。目前产品已在内部投入使用,后续希望能够通过社区来进行打磨完善,并进行更加通用化的建设,提供更好的灵活性,今年项目的目标是希望能够发布稳定可用于企业生产的1.0版本。

目前规划中的重点功能有:

• 增加更多种类数据库的支持包括Redis;

• 增加Wasm授权插件提交灵活性;

• 已有功能强化包括授权粒度、指标观测、私有化代理组网等。

图片

Q

对那些有兴趣使用和已经参与项目贡献的用户和开发者,有哪些想分享的?

ZTDBP项目的功能特色是非侵入式,对于业务代码来说是不需要进行任何改动的,数据面采用类似Sidecar的机制进行数据保护,尝试成本比较低,推广阻力也相对较低。欢迎大家来了解和使用ZTDBP。

数据库通信认证及防护是如今云原生架构和大数据应用中备受关注的领域,ZTDBP作为一款数据库通信防护项目,通过加入开放原子开源基金会并与其他开源项目合作,彰显开源软件的力量和开源社区的合作精神。同时,基金会也为开源项目的良好发展提供了更广阔的平台和资源,推动开源社区的蓬勃发展。

未来,基金会将继续优化服务体系,推进开源项目发展、培育开源人才、促进开源生态繁荣,为ZTDBP等开源项目提供全方位的创新发展生态。

猜你喜欢

转载自blog.csdn.net/OpenAtomFund/article/details/132736865