目录
openGauss 数据库 SQL 引擎
openGauss 数据库执行器技术
openGauss 存储技术
openGauss 事务机制
openGauss 数据库安全
Ⅰ.openGauss 平安机制概览
Ⅱ.openGauss 平安认证
Ⅲ.openGauss 角色管理机制
Ⅳ.openGauss 审计与追踪
Ⅴ.openGauss 数据安全技术
Ⅵ.openGauss 云平安技术
1.IAM 认证
2. 平安 chroot 技术
3. 防篡改技术
Ⅶ.openGauss 智能平安机制
六.openGauss 云平安技术
传统的数据库对于企业来说,运维是一个重大的难题,因为每个企业须要领有针对特定数据库专业知识的 DBA 人员。且数据库运维老本很高,对于小企业来说是很难继续维持的。随着云技术的成熟,越来越多的企业将利用和数据搬迁上云。不同于传统的 IT 业务场景,在云环境下,零碎所面临的危险远远多于公有环境。因而,除根本的平安能力外,咱们须要额定的思考云环境所面临的危险。
IAM 认证 01
当用户须要把数据库部署到云上时,用户首先须要通过 Portal 界面创立数据库服务。创立胜利后,用户则能够下载对应的客户端来进行数据管理操作。为了晋升数据库应用过程中的便捷性和安全性,云服务个别会提供 IAM 服务(Identity and Access Management)认证机制。
openGauss 搬迁上云后所提供的服务称为华为数据仓库服务(Data Warehouse Service,DWS)服务。当咱们与 IAM 进行对接时,须要对应的服务和数据库的 C / S 两端合作实现。残缺的 IAM 认证对接组件如图 10 所示。
图 10 IAM 认证对接组件流程图
在上述流程图中,咱们要求云数据库服务管控侧和 openGauss 内核侧别离具备如表 2 的性能:
表 12 云数据库服务管控侧和 openGauss 内核侧功能表
事实上,openGauss 反对两种形式来创立用于 IAM 认证的用户。第一种形式是手动创立,起应用语法如下,咱们无需指定该用户的明码。
CREATE USER ‘db_iam_user’ PASSWORD DISABLE;
第二种形式为主动创立,由 DWS 管控侧提供凭证来指定主动创立参数 (参数为 AutoCreate),如果指定的数据库用户不存在则会主动创立,需 openGauss 内核侧适配,工具反对以下参数:
§ 集群标识符:蕴含数据库的集群名称。
§ 数据库用户名:现有或新的数据库用户名称。如果数据库中不存在此用户且 AutoCreate 为 true,则将创立反对 IAM 认证的数据库新用户。如果此用户不存在且 AutoCreate 为 false,则申请会失败。
§ AutoCreate (可选):如果数据库用户名不存在,则创立新用户。
获取凭证 API 接口将通过 DWS Service 和管控侧工具将 AutoCreate、数据库用户名信息传递到管控域,GuestAgent 须要外部连贯数据库查问 DWS Service 传递的数据库用户名是否存在,如果存在则间接退出。如果不存在则判断 AutoCreate 是否为 true,如果 AutoCreate 为 ture,则拼接如下 SQL 语句发给数据库创立用于 IAM 认证的用户:
CREATE ROLE user_name PASSWORD DISABLE;
平安 chroot 技术 02
数据库搬迁上云后须要解决的另外一个问题是目录平安。当攻击者晓得数据库的装置目录后,能够毁坏数据库的目录构造。Chroot(Change Root) 技术通过扭转程序执行时所参考的根目录地位,来增进零碎的安全性限度使用者能做的事。
chroot 是以后云环境必须具备的一种技术,chroot 的作用包含:
§ 切换运行零碎的根目录所在位置,可疏导 Linux 系统启动和零碎急救;
§ 加强零碎的安全性,限度用户的可见性和势力;
§ 建设与原始零碎相隔离的系统目录构造,升高失败流传等问题;
openGauss 采纳基于 chroot 目录内容最小化这个计划将集群所有相干文件配置在 chroot 目录下的 /var/chroot 文件,在通过 chroot 之后,零碎读取到的目录和文件将不在是旧零碎根下的而是新根下,建设一个与原零碎隔离的系统目录构造,减少了零碎的安全性,限度了用户的势力。默认 chroot 的目录门路设置为 /var/chroot。
防篡改技术 03
数据库从线下搬迁到云上后,除了解决根本的危险之外,还有一个最为重要的危险,那就是歹意 DBA 的运维危险。DBA 用户及歹意运维人员能够登录零碎,并歹意批改零碎数据。在批改完数据信息后,DBA 用户能够删除对应的审计日志而不被审计管理员发现。这里实际上体现的是第三方可信源监守自盗的问题。
以后解决第三方可信源监守自盗的最无效办法是去中心化思维。区块链就是这种思维最好的体现,在就义一点效率的状况下,可取得极大的安全性。在区块链零碎中,首先没有一本地方大帐本了 (如第三方机构),所以无奈捣毁。其次,无奈舞弊,除非篡改者可能控制系统内的大多数人对电脑都进行批改,否则零碎会参考少数人的意见来决定什么才是实在后果,而本人批改的账本齐全没有意义。
区块链的实质即分布式多活数据库,两者在很多概念上具备共同之处。上面就一些区块链中的基本概念进行比对。
§ 共识算法:在分布式数据库中,最为要害的一点是须要保持数据一致性。以后广泛采纳 PAXOS 或 RAFT 算法达成分布式数据库的数据一致性协商。在施行时,数据分片会同时寄存在数据库的主从节点上,主节点负责数据的读写操作,从节点进行只读操作。当主节点写入数据时,其事务日志会被实时同步给其余从节点进行回放,以达到主从节点之间数据一致性的指标。
相比于区块链体系,数据库的主节点即为日志生成节点,其每次生成事务日志的性能,与区块链中每次出块时矿工的性能齐全等价。然而分布式数据库每次操作时对日志实时播送到节点中,并且在事务提交时进行一致性判断。
§ 智能合约:在区块链零碎中,智能合约其实是一段被存储在一个区块链上的代码,由区块链交易触发,并与区块链状态模式相互影响。这里所说的代码能够是任意反对的语言:Java、Fortran、C++ 等。当咱们应用 SQL 语言时,它就是写在扩大 SQL 的存储过程。
除了上述关键技术点比照剖析外,区块链和数据库在其余技术细节上还能够做如表 3 所示剖析:
表 3 区块链和数据库技术剖析
事实上,通过上述的剖析咱们能够看到,数据库和区块链具备很多相似之处,咱们能够在数据库中融入区块链的思维将区块链天生具备的防篡改能力集成到数据库中。
openGauss 数据将反对两种状态的防篡改零碎:中心化部署及去中心化部署形式。中心化部署和去中心化部署计划的次要区别在于:
§ 中心化部署状况下,对外提供服务的节点即为 Master 节点。
§ 不须要通过拜占庭等相似的共识算法进行共识和校验。
因而,在中心化部署下,除 Master 节点外的残余节点次要为日志备份节点,或提供对外的查问服务。在去中心化部署下,交易连贯的工作节点即为 Master 节点(整个零碎是一个多主的关系),而后在本地交易实现后与其余节点进行背书共识和验证。当复制节点验证胜利前方可提交以后事务。
因为联合了数据库的长处和区块链的长处,openGauss 防篡改零碎有如下劣势:零碎内数据不可更改、记录历史可追溯、数据加密可验证、零碎高牢靠、整体易用性高。
七.openGauss 智能平安机制
随着攻防理念的倒退,零碎中的平安个性变得越来越简单。这些更加系统化、精细化的平安技术尽管能够无效的进攻和解决环境中存在的各类危险,然而对 DBA 人员和运维人员都提出了较高的要求。无论这部分工作是由企业来做还是云服务提供商来实现,都是一个较大的挑战。另外一方面,不同国家和不同地区对平安的诉求和定义也是不一样的,服务提供商在抉择对应的安全策略时很容易忘记彼此之间的差别。因而咱们须要零碎变得更加的智能,变得能够本人治理这些平安机制。咱们称之为自治平安机制或智能平安机制。
事实上,越来越多的数据库服务商正在聚焦于通过应用 AI 技术来晋升零碎的安全性,这不仅包含咱们常说的智能数据安全,还包含零碎自治治理平安。
在泛滥的智能平安机制中,首当其冲的敏感数据发现。数据库最重要的是爱护用户数据,而数据外面最为重要的是敏感数据。随着数据格式的多样化,用户理论的隐衷数据暗藏在了海量数据潮中。更为艰难的一点是,不同的行业,不同的国家其法律法规所定义的敏感数据是不一样的。咱们不仅要实现敏感数据发现这类个性,还要基于 AI 底座来实现该性能。
除了敏感数据发现外,另外一个重要的须要应用 AI 性能的个性是 AI 防 SQL 注入攻打。SQL 注入通过动静拼接 SQL 注入传入 Web 服务端或者数据库服务端。其出现的形式多种多样。与之类似的还包含 AI 异样行为发现和 AI 日志剖析。通过这些个性咱们能够疾速的理解到咱们的零碎在遭逢什么样的危险。这些危险行为的特色是什么。AI 零碎会通知咱们这些危险,而后由零碎本人依据以后的危险来进行安全策略制订。一个残缺的 AI 自反馈机制如图 12 所示。这也是 openGauss 数据库将来重点发力的方向。
图 12 openGauss 智能平安机制全景图
在整个智能平安机制图中:
(1) 数据库依然能够承受来自不同行为的连贯,包含终端手机数据、包含数据库用户、包含各类利用,也可能涵盖攻击者。所有的这些拜访行为均为记录在数据库内核日志中。
(2) 除了对外的这些连贯行为外,数据库迁徙上云后还会有一个非凡类的连贯用户,DBA 用户或集群保护用户,这些用户存在第三方信赖问题。
(3) 在数据库外部,服务端会记录大量数据库外部产生的动作,并产生行为日志和审计日志。通过日志剖析归类,联合人工智能模块,零碎能够获取所有这些行为的特色,并提取异样行为。根据异样行为零碎就能够自行决定采取何种防备策略,并加以施行利用。
(4) 在整个零碎中,还须要留神存储的平安,包含本地盘和云环境对象存储服务的平安。这也是整个智能零碎的重要一环。
至此,openGauss 全系列连载结束。