写点什么

用这三种方法,保护你的 Amazon RDS 实例安全

  • 2019-10-14
  • 本文字数:1993 字

    阅读完需:约 7 分钟

用这三种方法,保护你的Amazon RDS实例安全

导读:Amazon RDS(Amazon Relational Database Service)是让能够在云端中轻松设置、操作和扩展的关系数据库。它在自动执行耗时的管理任务(如硬件预置、数据库设置、修补和备份)的同时,可提供经济实用的可调容量。这使你能腾出时间专注于应用程序,为它们提供所需的快速性能、高可用性、安全性和兼容性。本文作者 Riley Smith 介绍了保护 RDS 实例安全的三种方法,很有实用性,InfoQ 中文站将其翻译并分享。



你已经先行一步,完成了成千上万家其他公司正在做的事情,并将数据库操作迁移到云端中。这可能是非常有利的,因为此举可以节省开发人员的时间,并简化修补和数据库维护的工作。


另一方面,它也带来了另一组问题:AWS 产品的复杂性可能会让你很难知道你是否遵循了最佳实践,并保持了数据库的安全。 为了保护数据和数据库操作,你应该确保执行以下三项事情:

1. 检查 RDS 实例是否无法公开访问

如果你在这份清单只做一件事的话,那么就应该是这件事了。公共互联网可能是一个可怕的地方,若无必要,不要让数据库实例向外界开放,因为那是没有意义的。有很多机器人会自动扫描数据库端口,以期找到安全漏洞来破坏你的数据。


解决方案是什么呢?那就是实施多层安全系统。保证数据库安全的任何多层安全系统的基础是,确保数据库不可公开访问。


那么,如何限制对 RDS 实例的访问呢?这要取决于你的具体用例,但保护 RDS 的一些最常见的方法如下:



在创建 RDS 实例期间限制对特定 VPC 安全组的访问


A. 删除其公网 IP 地址。你可以通过 IAM roles 直接设置与实例的通信,这比开放的 IP 地址和数据库端口更安全。


B. 使用安全组限制访问。 这将定义可以与 RDS 实例通信的入站和出站端口。确保将 IP 限制为需要一组访问数据库的已知 IP。


C. 使用私有子网。通过利用私有 VPC(Virtual Private Cloud,虚拟私有云),可以使数据库远离公共互联网。如果仍然需要访问数据库的话,那么你就需要使用 VPN 来接入你的实例。

2. 检查是否为 RDS 实例启用了加密

那么,下一步如何设置保护 RDS 实例的多层安全系统呢?确保在可行的情况下对数据进行加密。安全加密的数据确保了数据不会被恶意代理程序读取,除非这些代理程序也有加密密钥。


有几种不同的加密类型:对传输中的数据进行加密,以及对静态数据进行加密。在这种情况下,我们将讨论静态加密,因为这是通过 AWS 控制台最容易配置的,不过,在整个基础设施中利用加密显然是一个好主意。


你可以在创建 RDS 实例时为其启用加密,或加密已创建的 RDS 实例:



在创建 RDS 实例时启用加密


现在,这个级别的加密,会不会是可以防止任何人访问你的数据的灵丹妙药呢?非也。但是,它在某些情况下还是无价的。例如,如果有人找到了在 EC2 服务之外访问你数据的方法(比如 AWS 的前提遭到破坏的情况下),只要你确保加密密钥的安全,那么你的数据也将会保持安全。


RDS 在保持加密的隐蔽性方面做得很好:加密和解密将在虚拟机管理程序层中进行,因此你可以像以前一样使用 RDS 端点和 AWS API。


此外,据 AWS 的说法,在 RDS 实例中启用加密对性能的影响几乎为零。由于没有额外的开发成本,性能成本也可以忽略不计,因此,只要在可能的情况下,使用这种类型的加密方式是有意义的。

3. 检查是否正在自动备份 RDS 实例

最后,保护数据安全,也意味着保护数据的完整性。你不希望出现这样的一种情况:你不得不对客户道一声抱歉:你丢失了他们委托给你的几个月以来的数据。这意味着备份数据是有必要的,并确保备份本身不会暴露于其他安全漏洞。


在过去,备份数据库实例有些复杂,通常涉及一些 Cron 和外部数据备份系统。但是,如果你使用的是 RDS 的话,只需确保为实例打开了自动备份即可。


译注:Cron,即 crontab 命令,常见于 Unix 和类 Unix 的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文档中,以供之后读取和执行。该词来源于希腊语 chronos(χρόνος),原意是时间。通常,crontab 储存的指令被守护进程激活, crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为 cron jobs。


你可以在创建实例时打开自动备份,也可以编辑现有实例的备份配置。



在创建 RDS 实例时启用自动备份


一旦启用了自动备份,就可以将数据库实例还原到保留窗口内的任何时间点,甚至到第二个时间点。最多保留 35 天的时间窗口,这应该会让你的开发团队感到安心。


最后,你还可以手动创建数据库快照。这些基本上是快照拍摄时数据库外观的时间点图像。你应该确保为了快照启用了加密,并且如果可以或者打算共享快照的话,那么就要控制对快照的访问(有关共享快照的更多信息,请查看 AWS 文档)。


作者介绍:


Riley Smith,Cloud Security Review(云安全评论)编辑。Cloud Security Review 专注于当今云安全的最佳内容,包括 AWS 等。由 Beacon Cloud Security 策划。


原文链接:


3 Ways to Keep Your RDS Instances Secure


2019-10-14 17:181708
用户头像

发布了 375 篇内容, 共 189.1 次阅读, 收获喜欢 945 次。

关注

评论

发布
暂无评论
发现更多内容

工具词典:PARA方法论

lidaobing

PKM Tiago Forte PARA 28天写作

WLAN网络规划和优化的必备知识点

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

秦怀杂货店

mybatis

JVM笔记【1】-- 运行时数据区

秦怀杂货店

JVM JVM笔记

架构师训练营第十周作业二

韩儿

模块分解总结

Mars

讨论话题 进程通信方式和锁关系

程序员老王

高并发

Mybatis【11】-- Mybatis Mapper动态代理怎么写?

秦怀杂货店

mybatis mybatis源码

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之彩蛋2前言

数列科技杨德华

全链路压测 七日更

架构师训练营第十周作业一

韩儿

MGR集群相关简介

Simon

MySQL 七日更

第五周总结

胡益

JDK、JRE、JVM,是什么关系?

小傅哥

jdk JVM 小傅哥 七日更 jre

架构师训练营第 10 周学习总结

菜青虫

极客大学架构师训练营

架构2期 - 第十周作业(1)

浮生一梦

极客大学架构师训练营 第十周 2组

Hadoop编程实战:HDFS API编程

罗小龙

Java 大数据 hdfs 编程 实践

设计模式【1.1】-- 你想如何破坏单例模式?

秦怀杂货店

设计模式 单例 23种设计模式

设计模式【1.3】-- 为什么饿汉式单例是线程安全的?

秦怀杂货店

单例模式

10张图带你入门分布式链路追踪系统原理

爱笑的架构师

七日更

dubbo服务框架图&时序图

Mars

设计模式【1】-- 单例模式到底几种写法?

秦怀杂货店

设计模式

设计模式【1.2】-- 枚举式单例有那么好用么?

秦怀杂货店

设计模式

作业-第10周

arcyao

架构师训练营:通达同城快递架构设计文档

9527

北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!

小傅哥

小傅哥 技术人 打工人 七日更 落户

LeetCode题解:42. 接雨水,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构师训练营第十周作业

李日盛

花火交易所软件开发|花火交易所系统APP开发

系统开发

shark defi鲨鱼智能合约系统软件APP开发

系统开发

架构师训练营第 10 周课后练习

菜青虫

极客大学架构师训练营

设计模式【2】-- 简单工厂模式了解一下?

秦怀杂货店

设计模式 工厂模式 工厂方法模式

用这三种方法,保护你的Amazon RDS实例安全_安全_Riley Smith_InfoQ精选文章