首页 > 数据库 > 数据库开发技术 > 企业级运维人员怎么有效的提高数据的安全性
企业的数据承载着极其重要的价值,可以说是核心资产。在企业运作中,有效管理和保护数据是至关重要的任务。一点疏忽可能导致数据无意泄露,甚至被恶意黑客窃取。每年都有一些引人关注的事件,涉及某些知名或不知名公司,他们的数据库被黑客成功攻破,这种事件通常被形象地描述为公司被“脱裤”。
从数据安全的角度来看,我们可以将其分为外部网络安全和内部操作安全两个方面。下面将对这两个方面进行进一步讨论。
内部操作安全策略
1. 适度限制DBA权限
考虑到DBA在日常数据库运维和紧急故障处理中的角色,回收DBA的全部权限可能影响工作效率。在没有成熟的自动化运维平台之前,建议谨慎回收DBA的权限,以避免降低工作效率和导致DBA不被信任的情况。
2. 强化MySQL层安全措施
限制业务帐号仅通过内网远程登录,防止公网直接连接。
创建专用运维平台账号,仅允许从特定管理平台服务器远程连接,并在管理平台服务器上实施必要的安全措施和审计策略。
启用数据库审计功能(需要MySQL企业版、Percona或MariaDB分支版本)。
启用 safe-update 选项,防止没有 WHERE 条件的全表数据被修改。
提倡在应用中使用标志位而非直接DELETE删除数据,以及在需要真正删除数据时由DBA进行备份和物理删除,以避免误操作删除全部数据。
使用触发器等手段辅助功能,例如防止黑客对数据的恶意篡改。
3. 优化MySQL账号权限规则
业务帐号权限最小化,禁止DROP和TRUNCATE权限。
业务账号仅授予必要的DML权限,如select、update、insert、delete、execute等,其他权限谨慎授予。
初始化MySQL后删除无用账号和匿名test数据库:
bashCopy codemysql> DELETE FROM mysql.user WHERE user != 'root' OR host != 'localhost'; FLUSH PRIVILEGES;
mysql> DROP DATABASE test;
创建仅具备SELECT权限、仅允许本机登录的备份专用账号。
实施MySQL账号密码安全策略,包括密码长度和复杂性。
4. 数据备份最佳实践
全量备份是系统崩溃时的最后一线救命稻草,同时备份数据可用于审计和作为数据仓库的数据源。建议每天进行全备,定期对binlog进行增备,或使用binlog server机制传输到远程主机。在使用xtrabackup进行流式备份时,考虑加密传输以防备份数据被截取。
外网安全策略
操作系统和应用安全对比数据库自身安全更为重要。应用程序和服务器的系统安全也是防范数据安全事件的关键。以下是一些建议:
1. 操作系统安全措施
MySQL运行的Linux服务器应该仅在内部网络中运行,不应直接暴露在公网。如果需要公网连接,应通过跳板机进行端口转发,并限制数据库账号权限。
使用基于ssh key认证的系统账号,禁止远程密码登录,确保ssh key的算法和长度安全。
尽可能启用系统层的操作审计,记录所有ssh日志,并在必要时进行安全审计。
关闭不必要的系统服务,只启用必需的进程,如mysqld、sshd、networking、crond、syslogd等。
禁止root账号远程登录,禁止用root账号启动普通业务服务进程。
将sshd服务的端口号修改为10000以上,启用系统层的防火墙策略。
对MySQL及其他数据库服务相关目录设置适当的权限,避免全是755,建议使用750权限。
2. 应用安全措施
禁用web server的autoindex配置。
避免员工将代码上传到外部github等平台,防止内部IP和账号密码泄露。上传前应经过安全审核。
在web server层使用安全模块,如nginx的WAF模块。
在应用服务器层进行代码安全审计、安全扫描,预防XSS攻击、CSRF攻击、SQL注入、文件上传攻击等漏洞。
使用加密方式存储涉及账号密码的配置信息,或通过中间账号连接proxy层再连接MySQL,以避免应用直连MySQL。
最后,强调任何安全措施都不如内部员工的安全意识来得重要。内部员工的注意力和谨慎行为是保障数据安全的首要因素。

添加博主
微信号|yfq940-
原文作者:步步运维步步坑;如有侵权,请联系管理员删除。