深度揭秘Greenplum数据库透明加密
今天为大家介绍的是基于下一代Greenplum数据库的数据安全组件的一个重要组成部分——数据透明加密。数据加密已经成为保证数据库安全必不可少的一项要求。传统Greenplum使用外部的UDF在实现数据加密,在易用性和性能方面都有所欠缺。为了满足客户对于数据加密的易用性和性能方面的要求,Greenplum实现了基于扩展组件模式(内核原生)的透明数据加密。该功能可实现原生用户数据自动加解密,无需修改查询语句且性能损失小。
Greenplum的数据安全运行模式主要分为三个层次:
- 用户层
这一层中,包含了主要普通用户的操作,比如连接数据库,运行业务相关等操作。 - DBA层
在这一层中,包含了DBA用户的操作,主要进行的是管理数据库和业务审计等操作。 - System Admin(运维层)
这一层中,包含了系统管理员(运维工程师)的操作。主要进行的运维相关的比如管理集群和数据备份恢复等操作。
在数据安全上,Greenplum对用户层与DBA层已经做到可以完全保证数据的安全性。但对于System Admin这一层,传统的Greenplum还存在一些风险。Greenplum作为一个单独数据库软件,缺乏对硬件和系统的控制。此外,数据库运维需要登录到系统来进行,使得运维人员具有了访问数据库二进制文件、数据文件和预写日志文件的权限。作为一个大型的分布式数据库,用户常使用原厂服务、主机厂或第三方来进行运维。运维人员可以轻易的接触数据库文件,而数据文件为明文二进制文件,运维人员可以直接通过Linux自带工具(strings,hexdump)访问。pg_waldump也可以直接读取并显示预写日志中的用户数据。
由于数据库可能会有非部门或外部员工运维(原厂、主机厂、或者合作伙伴),导致用户数据存在直接暴露的风险。而此类操作往往也是运维正常操作,事后审计难度也很大。此外,如果用户的服务器是被托管或者经由云部署等情况,也导致了数据被盗以后泄露的风险。
基于这样的背景,用户便有了对于数据加密的需求,来确保机密数据的安全,进行知识产权的保护或者是满足审计的要求。Greenplum研发团队正在为Greenplum数据库设计和密集开发数据透明加密功能,在不改变用户业务模式和行为的前提下,来保证用户的数据安全,具体发布日期请关注官方信息。
本视频内容主要分为四个部分,Greenplum原厂工程师王淏舟会先为大家介绍Greenplum团队如何站在用户需求端来进行讨论,以及做数据透明加密的相关背景。接着会为大家详细介绍Greenplum当前基于pgcypto的数据加密方案,并针对Greenplum数据透明加密设计和加密流程进行详细的解说。
欢迎大家戳链接观看视频,相关PPT可以前往Greenplum中文社区下载页面 https://cn.greenplum.org/download 自行获取。
文章转自公众号:Greenplum中文社区