在当今快速发展的云计算时代,传统数据库管理方式正面临严峻挑战,Amazon RDS作为亚马逊云科技提供的托管数据库服务正在彻底改变企业管理数据库的方式,本文将带深入了解工具背后的技术原理、最佳实践和真实案例,给大家在云数据库的使用以启发。

目录

初识RDS

安全审计

入侵防范

写在最后

初识RDS

        Amazon RDS:是亚马逊云科技提供的托管关系型数据库服务,它完全自动化数据库基础设施管理,包括硬件配置、补丁更新、备份恢复等运维工作,同时支持MySQL、PostgreSQL、Oracle、SQL Server等多种主流数据库引擎,通过多可用区部署确保高可用性提供弹性扩展能力,并内置安全合规功能,让企业可以专注于应用开发而非数据库管理,显著降低运营成本,提高开发效率,从 网址 我们可以看出当前RDS所具备的优势:

        Amazon RDS生态系统提供了丰富的衍生产物,包括高性能的Amazon Aurora数据库引擎、优化连接管理的RDS Proxy、简化性能监控的Performance Insights、支持本地部署的RDS on Outposts,以及提供高级自定义能力的RDS Custom。这些服务扩展了基础RDS功能,满足不同性能需求、部署场景和管理复杂度,形成了完整的托管数据库解决方案,如下图所示:

        如果你想了解更多关于Amazon RDS在数据库方面,如MySQL数据库的内容,可以访问 网址 来查看更多知识和内容:

安全审计

        Amazon RDS for MySQL 提供高级审计功能来审核数据库活动,我们可以开启高级审计功能对数据库进行更加全面的安全审计,如需启用配置高级审计功能,MySQL本身主要的日志类型如下所示:

错误日志、二进制日志(Bin 日志)、常规日志(General 日志)、慢查询日志等

        由于常规日志记录了所有执行的SQL语句,包括来自客户端的查询和MySQL服务器内部的查询,而二进制日志是MySQL的重做日志,它以二进制格式记录了所有对数据进行修改的操作(如 INSERT、UPDATE、DELETE 等),可用于数据恢复和复制,因此从安全实践角度建议至少要开启这两种日志,我们可执行以下查询语句检查MySQL中是否启用了General Log和Bin Log:

SHOW VARIABLES LIKE 'general_log%';
SHOW VARIABLES LIKE 'log_bin';

        我们可以通过如下步骤来借助RDS来帮助我们处理审计工作,创建自定义选项组导航到RDS控制台的选项组列表页。创建一个新的选项组:

        自定义选项组的名称、描述,其中使用的引擎以及引擎版本,应与在用的 MySQL 引擎版本保持一致:

创建完成后,编辑刚创建的选项组,添加选项:

        在选项名称中选择MARIADB_AUDIT_PLUGIN,该审计插件实现高级审计功能并支持众多选项设置除 SERVER_AUDIT外,其他选项可在MySQL的MariaDB审计插件支持中查询到具体含义及其默认值,其中SERVER_AUDIT选项默认设定为“FORCE_PLUS_PERMANENT”。

        在Amazon RDS中该选项能且仅能设置为FORCE_PLUS_PERMANENT,该值告诉RDS服务加载审计插件并防止它在数据库运行时被删除,保护审计功能的完整性,之后选择立即应用,表示当应用到数据库时将立即应用更改或等到下一个计划的维护时段应用:

在数据库列表页,找到 MySQL 数据库实例,点击“修改”按钮:

在“其他配置”中,修改为我们上一节创建的选项组。然后点击继续:

然后系统会提示是否修复数据库,勾选立即修改,如下图所示:

验证配置结果,完成上述操作之后到数据库中执行查询语句,如下所示可以看到参数已经起效:

SHOW VARIABLES LIKE 'SERVER_AUDIT_LOGGING';

总结

        可以通过查看数据库日志内容检查审计记录格式是否满足要求。Amazon RDS for MySQL 日志存储概括来说分为两种类型:一种是如高级审计的日志文件,另一种则是审核日志、错误日志、常规日志、慢查询日志等数据库内部的日志,不同的日志存储类型有不同的查看方式。

        对于日志文件,可通过查看和列出数据库日志文件直接在亚马逊云科技控制台查看中。对于数据库内部日志,由于日志驻留在 MySQL 文件系统上,Amazon RDS 不向主机提供对数据库实例的文件系统上的数据库日志的访问权限。出于此原因,可按照将数据库日志发布到 Amazon CloudWatch Logs 将数据库日志导出到 Amazon CloudWatch Logs 并进行查看。

        对于数据库内部日志,由客户自行负责管理,建议客户可按照将数据库日志发布到 Amazon CloudWatch Logs 按需将数据库内部日志导出到 Amazon CloudWatch Logs 中,实现日志的场外保存,避免删除,并且 Amazon CloudWatch Logs 支持数据保留期设置,可按需设置数据库日志的保留期限,默认情况下,日志数据无限期地存储在 CloudWatch 日志中。

入侵防范

在创建RDS时根据实际需求配置RDS是否可公开访问,默认应为不公开访问:

查看数据库安全组,是否对MySQL的远程端口访问地址进行限制:

想对应根据远程的地址来源进行限制,可以通过如下方式进行:

        MySQL默认启用SSL协议加密传输中的数据,应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等,检查是否使用Amazon KMS密钥服务的密钥对MySQL进行加密,默认情况下RDS服务使用亚马逊云科技托管式密钥对创建的数据库实例进行了加密,如需检查数据库实例是否配置了加密可参考加密RDS资源中确定是否为数据库实例启用加密部分进行检查。样例内容如下:

        需要注意的是,客户只能在创建RDS数据库实例时而不是创建该数据库实例之后加密该数据库实例。如需对已创建完成的数据库实例进行加密,需要借用数据库快照来实现,拍摄数据库快照,具体参考步骤如下:

        未加密的MySQL实例拍摄的快照也是未加密的,我们需要再对拍摄出来的快照进行复制,如下图所示:

复制快照时配置KMS加密,默认选择托管的RDS密钥,用户也可以选择在KMS中自建的Key,然后复制快照:

        最后再从加密的快照中还原快照恢复数据库实例,恢复后的数据库实例就变成用 KMS 加密的了,而且RDS还支持且默认对数据库启用自动备份功能,对数据库进行备份,如下图所示:

写在最后

        基于Amazon RDS的深入分析,我们可以看到它在数据库管理和维护方面的强大优势。作为一项完全托管的关系数据库服务,Amazon RDS简化了数据库的配置、操作和扩展,使得开发者能够专注于应用程序的开发,而不必担心基础设施的复杂性。尤其是亚马逊云科技新推出的 Free Tier 2.0,为开发者和企业用户提供了一个极具吸引力的入门选项,让大家以更低的成本体验到 ECS 的强大功能。这一次的版本升级不仅带来了更简便的上手体验,也进一步优化了资源利用,帮助你在云端快速启动、开发和扩展应用,从 链接 可以看到新套餐的优势所在:

        Amazon RDS的自动化备份、补丁管理和故障恢复功能大大提高了系统的可用性和可靠性,同时提供高可用性配置(例如Multi-AZ部署),确保数据的安全性和持久性。更重要的是,RDS能够根据业务负载自动进行扩展,不仅优化了成本效益,还提升了资源利用率。对于初创公司和开发者,Amazon RDS的免费层(Free Tier)提供了一个无风险的尝试机会,让用户在不承担额外费用的情况下,测试其强大功能并评估其适合度:

        对于开发者和团队来说,Amazon RDS提供了一个无风险、灵活的体验方式,特别是借助 Free Tier 2.0,你可以以零成本的方式尝试 亚马逊云科技的容器化服务。注册亚马逊云科技海外区账户后,新用户可以获得 $100 美元抵扣金,并通过完成一系列简单的任务(如启动 EC2 实例、配置 RDS、部署 Lambda 函数等)额外赚取 $20 每个任务,最多再拿 $100,总抵扣金可以高达 $200 美元。这些任务不仅能帮助你熟悉 ECS 的基本功能,还能让你零成本体验完整的云计算和容器化流程:

        综上所述,Amazon RDS不仅帮助企业大幅简化数据库管理流程,还提供了灵活的成本控制和高效的资源管理选项。无论是小型项目还是大规模企业应用,RDS都能提供强大支持,帮助企业实现更高效的数据存储和管理,从而促进业务增长和创新。

        以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~

更多推荐