写点什么

用这三种方法,保护你的 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:181788
用户头像

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

关注

评论

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

消费医疗门诊的数字化运营

boshi

随笔杂谈

大湾区的“科创土壤学”

脑极体

浅谈MySQL中的游标

麦洛

MySQL 游标

基于云的技术架构设计实践-第4篇

hackstoic

运维 云原生 签约计划第二季 业务运维

架构训练营-模块一作业

伊静西蒙

库存管理系统到底有什么作用?

低代码小观

CRM 企业管理系统 ERP 库存 CRM系统

MySQL性能测试之insert&delete【FunTester框架】

FunTester

MySQL 性能测试 测试框架 FunTester delete

手把手教你实现网页端社交应用中的@人功能:技术原理、代码示例等

JackJiang

即时通讯 IM web socket

如何避免产品Backlog的这七个常见错误

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 需求管理 内容合集

和12岁小同志搞创客开发:手撕代码,做一款密室自动门

不脱发的程序猿

少儿编程 传感器 智能硬件 创客开发 Arduino

新思科技推动DevSecOps落地,帮助企业走出“安全孤岛”

InfoQ_434670063458

DevSecOps 新思科技 软件安全

Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

不脱发的程序猿

Python PyQt GUI设计 上位机 调整组件布局比例

你知道敏捷团队的迭代目标达成率该是多少吗?

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 内容合集 迭代管理

国产分布式数据库StarDB核心技术大揭秘 一:内核分解之数据分片

京东科技开发者

数据库

以容器的方式运行极狐GitLab Runner

极狐GitLab

Docker runner 极狐GitLab

WAVE SUMMIT+2021为开发者准备的“小心思”,你get到了吗

科技热闻

和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器

不脱发的程序猿

少儿编程 智能硬件 温度传感器 创客开发 Arduino

华为云联合HarmonyOS重磅发布智联生活行业加速器

华为云开发者联盟

华为云 智联生活

五分钟,让你明白MySQL是怎么选择索引《死磕MySQL系列 六》

咔咔

MySQL MySQL高级 索引选择而

国产分布式数据库StarDB核心技术大揭秘二:智能运维管控

京东科技开发者

数据库

作业1

施正威

WePack —— 助力企业渐进式 DevOps 转型

CODING DevOps

统一管理 WePack 制品管理 研发构建产物 安全管控

2022年,RPA的5大发展趋势

金小K

区块链 AI RPA 机器人流程自动化 人工智能「

ReactiveNetwork库时如何实现网络状态监听的

Changing Lin

12月日更

开源demo| 智慧协同让企业更便利

anyRTC开发者

音视频 智慧协同 开源demo 远程协助 远程勘查

Android C++系列:Linux网络(一)网络模型

轻口味

android 28天写作 12月日更

年后跑路第一战,从Java泛型学起!

麦洛

Java Java泛型

低代码实现探索(七)赋能产品架构如何做定制化

零道云-混合式低代码平台

说说个人影响力

张老蔫

28天写作

Camtasia混音教程

淋雨

Camtasia

MySQL锁的分析实战

卢卡多多

28天写作 MySQL 数据库 锁分析 签约计划第二季 12月日更

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