GaussDB 数据库架构师修炼(七) 安全规划
1 GaussDB安全规划分层
2. 安全规划建议
2.1 应用层安全规划建议
- 1) 在应用程序开发工具中部署SQL相关安全插件提前发现安全问题。
2) 采用SQL审核工具(比如华为云UGO工具)防范风险SQL,包括不满足DBA预定义的规范、存在性能风险、存在误删风险等SQL 。
2.2 接入层安全规划建议
1) 安全要求高的业务,建议开启SSL连接数据库。
2) 在应用程序的配置文件中不要明文保存密码和私钥,建议加密保存。
比如基于Spring框架的Java应用可以扩展 PropertyPlaceholderConfigurer类, 在传入驱动前再读取配置文件中的密文解密为明文。
3) 多个应用同时连接数据库时,需要合理规划和分配连接数, 防止数据 库服务端连接过载,建议在客户端使用成熟的连接池管理组件。
2.3 网络传输层安全规划建议
1) 应用程序部署区域和数据库部署区域建议使用防火墙安全隔离。
防火墙一般默认开启TCP连接状态检测,长时间不活动的会话会老化删除。
- 建议在GaussDB驱动端配置keepalives相关参数。
2) 应用程序和数据库一般不建议规划在同一个 VPC 网络或子网。
- 如果使用 VPC 网络建议开启安全组策略,采用最小暴露原则设置安全组规则。
- 只给应用暴露需要的端口。
- 只允许放通需要的协议,比如 TCP 协议。
- 只允许特定的 IP 或网段可以访问数据库。
3) 不建议把数据库端口绑定EIP直接暴露在外网,一些数据迁移特定场景 建议迁移完应该立即解绑EIP,减小数据库的被攻击面。
4)敏感数据跨网络域传输,建议在传输前先应用数据库全密态技术在客 户端先加密。
2.4 OS层安全规划建议
1)一般不建议未经兼容性测试的第三方应用程序和数据库部署在同一个 操作系统内。如果实际生产环境无法避免,必须做好充分验证。
2)使用cgroup等技术限制第三方应用程序资源使用。
3)第三方应用程序及其依赖的其他组件必须定期更新漏洞并做好兼容性 测试。
4)建议使用Linux进程沙箱技术比如chroot,将第三方应用程序进程的操作限制在指定目录。
5)使用不同OS用户管理不同第三方应用程序,按最小权限原则分配权限。
5)建议使用Linux进程沙箱技术(比如chroot)限制GaussDB进程只能操 作指定目录,消减单个数据库节点被入侵后横向渗透风险。
6)OS补丁漏洞定期更新并做好和GaussDB兼容性验证。
7)定期更新OS用户密码,并设置防暴力破解规则。
8)开启OS操作的审计日志。
9)开启OS的iptables服务,按最小暴露原则配置iptables规则。
3 数据库层安全规划建议
常见的数据库层的安全规划主要分下面大类:
1)数据库账号安全规划
2)数据库访问安全规划
3)数据库加密方案规划
4)数据库安全审计方案规划
3.2 数据库账号安全规划建议
- 合理规划密码复杂度策略,包括大小写字母、数字、特殊字符等。
- 合理规划密码的有效期。
- 合理配置弱口令字典。
- 合理设置密码重用规则,包括不可重用天数或不可重用次数。
3.3 数据库访问安全分类
3.3.1 数据库访问安全规划建议
- HCS标准形态和轻量化形态,数据库管控服务支持RBAC和ABAC两种 权限模型。
一般中小型组织推荐采用RBAC模型,构建更简单,易理解,易使用。
一般大型组织或有细粒度权限控制需求的客户推荐采用ABAC模型,可以根据 用户特征、资源特征、操作类型等多种属性确定访问权限。
- GaussDB内核只支持RBAC模型,进一步又可细分为两种模型
1)默认权限管理模型
SYSADMIN 系统管理员权限默认具有与对象所有者相同的权限。
2)三权分立权限管理模型
SYSADMIN 系统管理员仅保留对表空间有创建、修改、删除、访问、分配操作的权限,将 不再拥有创建角色和用户的权限(拆分给安全管理员), 也不再拥有查看和维护数据库审 (拆分给审计管理员) ,也不能访问其他用户的对象。
- 三权分立主要是权限分离原则,避免系统管理员拥有过度集中权力带 来的风险,建议根据实际业务管理诉求选择。
- 建议根据应用端业务类型将应用相关的数据库对象划分到不同的schema管理,为不同的应用创建不同的数据库user,按最小权限原则 给user赋予权限。
3.4 数据库加密方案主要分类
3.5 数据库加密方案规划建议
- 仅对敏感字段加密,最大降低加密对数据库性能影响。
- 应用端和数据库端跨不信任网络域传输时,建议使用全密态加密方案。
- 私钥在客户端建议加密保存。
- 私钥由具备硬件安全模块保护的KMS密钥管理服务管理,防止丢失导 致无法解密,并定期轮转。
3.6 数据库安全审计分类
3.7 数据库安全审计方案规划建议
- 默认管控面服务的操作和数据库内核的审计功能都开启,不建议用户 关闭,便于管理员根据审计日志找出非法操作的用户、时间、内容等。
- 数据库内核各审计项默认参数已经符合安全标准,如需调整,建议提 前在测试环境观测对性能影响。
3.8 介质层安全规划建议
- 多副本部署,消减单副本被入侵损坏风险。
- 多地域部署,消减单个数据中心被横向渗透风险。
- 多介质冗余,使用备份一体机等技术方案定期转储归档到磁带机。