GaussDB(for MySQL)安全最佳实践
安全性是华为云与您的共同责任。华为云负责云服务自身的安全,提供安全的云;作为租户,您需要合理使用云服务提供的安全能力对数据进行保护,安全地使用云。详情请参见责任共担。
本文提供了云数据库 GaussDB(for MySQL)使用过程中的安全最佳实践,旨在为提高整体安全能力提供可操作的规范性指导。根据该指导文档您可以持续评估GaussDB(for MySQL)资源的安全状态,更好的组合使用GaussDB(for MySQL)提供的多种安全能力,提高对GaussDB(for MySQL)资源的整体安全防御能力,保护存储的数据不泄露、不被篡改,以及数据传输过程中不泄露、不被篡改。
本文从以下几个维度给出建议,您可以评估GaussDB(for MySQL)使用情况,并根据业务需要在本指导的基础上进行安全配置。
- 内网连接实例,更快更安全
- 正确的使用访问控制能力保护数据不泄露、不被篡改
- 构建数据的恢复、容灾能力避免数据被异常破坏
- 确保您的数据在传输到GaussDB(for MySQL)过程中不被窃取和篡改
- 利用GaussDB(for MySQL)提供的操作日志审计是否存在异常数据访问操作
- 使用最新版本的SDK获得更好的操作体验和更强的安全能力
内网连接实例,更快更安全
- 使用DAS连接数据库实例
华为云数据管理服务(Data Admin Service,简称DAS)是一款专业的简化数据库管理工具,提供优质的可视化操作界面,大幅提高工作效率,让数据管理变得既安全又简单。您可以通过数据管理服务连接并管理GaussDB(for MySQL)实例。GaussDB(for MySQL)默认为您开通了远程主机登录权限,推荐您使用更安全便捷的数据管理服务连接实例。详情请参见通过DAS连接GaussDB(for MySQL)实例。
- 使用读写内网地址连接数据库实例
当应用部署在弹性云服务器上,且该弹性云服务器与GaussDB(for MySQL)实例处于同一区域,同一VPC时,建议单独使用读写内网地址连接弹性云服务器与GaussDB(for MySQL)数据库实例,安全性较高,而且可实现GaussDB(for MySQL)的较好性能。详情请参见内网连接GaussDB(for MySQL)实例。
正确的使用访问控制能力保护数据不泄露、不被篡改
正确的使用访问控制能力,可以有效预防您的数据被异常窃取或者破坏。
- 建议对不同角色的IAM用户仅设置最小权限,避免权限过大导致数据泄露或被误操作
为了更好的进行权限隔离和管理,建议您配置独立的IAM管理员,授予IAM管理员IAM策略的管理权限。IAM管理员可以根据您业务的实际诉求创建不同的用户组,用户组对应不同的数据访问场景,通过将用户添加到用户组并将IAM策略绑定到对应用户组,IAM管理员可以为不同职能部门的员工按照最小权限原则授予不同的数据访问权限,详情请参见权限管理。
- 配置安全组访问控制,保护数据不被异常读取和操作
您创建GaussDB(for MySQL)实例后,配置安全组的入方向、出方向规则限制,可以控制连接实例的网络范围,避免GaussDB(for MySQL)暴露给不可信第三方。详情请参见设置安全组规则。
- 建议使用非默认端口,避免端口被扫描攻击
GaussDB(for MySQL)默认端口为3306,容易被扫描攻击,建议将端口设置为非默认端口。详情请参见修改数据库端口。
- 定期修改管理员账号密码,防止账号被盗用。
默认的数据库管理员帐号root拥有较高的权限,建议您参考重置管理员密码定期修改root密码。
- 使用不同的账号(非管理员)管理不同的数据库
通过创建不同的账号,将各个数据库按照业务或者实际需要分配给不同的账号管理,并且对账号进行读写权限的分配。详情请参见账号管理。
- 开启敏感操作多因子认证保护您的数据不被误删
GaussDB(for MySQL)支持敏感操作保护,开启后执行删除实例等敏感操作时,系统会进行身份验证,进一步保证GaussDB(for MySQL)配置和数据的安全性,对数据的高危操作进行控制。详情请参见敏感操作。
构建数据的恢复、容灾能力避免数据被异常破坏
预先构建数据的容灾和恢复能力,可以有效避免异常数据处理场景下数据误删、破坏的问题。
- 建议合理规划自动备份策略
创建GaussDB(for MySQL)数据库实例时,系统默认开启自动备份策略,暂不支持关闭。实例创建成功后,您可根据业务需要设置自动备份策略。GaussDB(for MySQL)按照用户设置的自动备份策略对数据库进行备份。GaussDB(for MySQL)的备份操作是实例级的,而不是数据库级的。当数据库故障或数据损坏时,可以通过备份恢复数据库,从而保证数据可靠性。由于开启备份会损耗数据库读写性能,建议您选择业务低峰时间段启动自动备份。详情请参见设置自动备份策略。
- 建议使用跨区域备份构建异地数据容灾能力
云数据库 GaussDB(for MySQL)支持将备份文件存放到另一个区域存储,某一区域的实例故障后,可以在异地区域使用备份文件在异地恢复到新的 GaussDB(for MySQL)实例,用来恢复业务。详情请参见设置跨区域备份策略。
确保您的数据在传输到GaussDB(for MySQL)过程中不被窃取和篡改
- 建议使用HTTPS协议访问GaussDB(for MySQL),确保数据传输过程中不被窃取和破坏
HTTPS(超文本传输安全协议)是一种互联网通信协议,可保护客户端与服务端之间传输的数据的完整性和机密性。建议您使用HTTPS协议进行数据访问。
- 使用SSL加密连接数据库实例
SSL(Secure Socket Layer,安全套接层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。SSL可以加密数据以防止数据中途被窃取,并且维护数据的完整性,确保数据在传输过程中不被改变。详情请参见设置SSL数据加密。
利用GaussDB(for MySQL)提供的操作日志审计是否存在异常数据访问操作
- 开启云审计服务,记录GaussDB(for MySQL)的所有访问操作便于事后审查
云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。
您开通云审计服务并创建和配置追踪器后,CTS可记录GaussDB(for MySQL)的管理事件和数据事件用于审计。详情请参见CTS审计。
- 开启全量SQL记录的所有SQL访问请求
当您开启全量SQL功能,系统会将所有的SQL文本内容进行存储,以便进行分析。详情请参见设置全量SQL。
- 使用云监控服务对安全事件进行实时监控、告警
华为云提供了云监控服务(Cloud Eye)。您可使用该服务监控自己GaussDB(for MySQL)实例,执行自动实时监控、告警和通知操作,帮助您实时掌握实例的运行状态、重要事件告警等信息。
云监控服务不需要开通,会在用户创建资源(如GaussDB(for MySQL)实例)后自动启动。
关于云监控服务的更多介绍,请参见云监控服务产品介绍。
使用最新版本的SDK获得更好的操作体验和更强的安全能力
建议客户升级SDK并使用最新版本,从客户侧对您的数据和GaussDB(for MySQL)使用过程提供更好的保护。最新版本SDK在各语言对应界面下载,请参见SDK概述。