Amazon RDS 安全

了解 Amazon RDS 中的安全功能

Amazon RDS 是一项托管式关系数据库服务,为您提供八种熟悉的数据库引擎以供选择,包括 Amazon Aurora PostgreSQL 兼容版Amazon Aurora MySQL 兼容版RDS for PostgreSQLRDS for MySQLRDS for MariaDBRDS for SQL ServerRDS for OracleRDS for Db2

Amazon RDS 和 Amazon Aurora 提供了一组功能,以确保您的数据得到安全存储和访问。在 Amazon Virtual Private Cloud(VPC)中运行您的数据库以实现网络级隔离。使用安全组来控制哪些 IP 地址或 Amazon EC2 实例可以连接到您的数据库。这种内置的防火墙可防止任何数据库访问,除非通过您指定的规则。

使用 AWS Identity and Access Management(IAM)策略分配权限,以确定允许谁管理 Amazon RDS 资源。使用数据库引擎的安全功能来控制谁可以登录数据库,就像数据库位于本地网络上一样。您也可以将数据库用户映射到 IAM 角色,以实现联合访问。

使用安全套接字层/传输层安全(SSL/TLS)连接来加密传输中的数据。使用 Amazon Key Management Service(KMS)加密您的数据库存储和静态备份。监控数据库活动并使用数据库活动流与合作伙伴数据库安全应用程序集成。

静态数据加密

Amazon RDS 使用通过 AWS Key Management Service(KMS)管理的密钥来加密您的数据库。在通过 Amazon RDS 加密运行的数据库实例上,静态存储于底层存储的数据都将加密,自动备份、只读副本和快照也是如此。Amazon RDS 加密使用行业标准 AES-256 加密算法对托管 Amazon RDS 实例的服务器上的数据进行加密。

Amazon RDS 还支持适用于 SQL Server 的透明数据加密(TDE)(SQL Server 企业版和标准版)以及适用于 Oracle 的 TDE(Oracle 企业版中的 Oracle 高级安全选项)。使用 TDE,数据库服务器在将数据写入存储之前自动对其进行加密,并在从存储读取数据时自动解密数据。

对传输中的数据进行加密

使用 SSL/TLS 加密应用程序和数据库实例之间的通信。预调配实例时,Amazon RDS 会创建 SSL 证书并在数据库实例上安装该证书。对于 MySQL,您可以使用 --ssl_ca 参数启动 mysql 客户端,以引用公有密钥来加密连接。对于 SQL Server,请下载公有密钥并将证书导入您的 Windows 操作系统。RDS for Oracle 在数据库实例中使用 Oracle 本机网络加密。您只需将本机网络加密选项添加到选项组,然后将该选项组与数据库实例关联即可。建立加密连接后,在传输时将对数据库实例和应用程序之间传输的数据进行加密。您还可以要求您的数据库实例只接受加密的连接。

访问控制

Amazon RDS 可与 AWS Identity and Access Management(IAM)集成,并允许您控制您的 AWS IAM 用户和组可以对特定资源(例如,数据库实例、数据库快照、数据库参数组、数据库事件订阅和数据库选项组)执行的操作。另外,您还可以为资源添加标签,并控制您的 IAM 用户和组可以对一组具有相同标签(和标签值)的资源采取的操作。有关 IAM 集成的更多信息,请参阅 IAM 数据库身份验证文档

您还可以为 Amazon RDS 资源添加标签,并控制您的 IAM 用户和群组可以对一组具有相同标签和关联值的资源执行的操作。例如,您可以配置您的 IAM 规则以确保开发人员能够修改“开发”数据库实例,但只有数据库管理员可以更改“生产”数据库实例。

首次在 Amazon RDS 中创建数据库实例时,您将创建一个主用户账户,该账户仅在 Amazon RDS 环境中用于控制对数据库实例的访问权限。主用户账户是本地数据库用户账户,使您可以使用所有数据库权限登录数据库实例。在创建数据库实例时,您可以指定与每个数据库实例相关联的主用户账户和密码。创建数据库实例后,您可以使用主用户凭证连接到数据库。之后,您可以创建其他用户账户,以便限制谁能访问您的数据库实例。

网络隔离和数据库防火墙

使用 Amazon Virtual Private Cloud(VPC),您可以在自己的虚拟网络中隔离您的数据库实例,并使用经过行业标准加密的 IPSec VPN 连接到现有 IT 基础设施。

使用 Amazon VPC,您可通过指定要使用的 IP 地址范围来隔离您的数据库实例,并通过经过行业标准加密的 IPsec VPN 连接到现有 IT 基础设施。在 VPC 中运行 Amazon RDS 使您能够在私有子网中拥有数据库实例。您也可以设置一个虚拟私有网关,将公司网络扩展到 VPC,然后允许访问该 VPC 中的 Amazon RDS 数据库实例。有关更多详细信息,请参阅 Amazon VPC 用户指南。对于 Amazon VPC 内部署的数据库实例,可通过 VPN 或您在公有子网中可以启动的堡垒主机从 VPC 外部的 Amazon EC2 实例进行访问。要使用堡垒主机,您需要设置一个包含用作 SSH 堡垒的 EC2 实例的公开子网。该公有子网的互联网网关和路由规则必须允许通过 SSH 主机引导流量,然后必须将请求转发到 Amazon RDS 数据库实例的私有 IP 地址。数据库安全组可用来帮助确保 Amazon VPC 内数据库实例的安全。此外,通过网络 ACL 可以允许或拒绝进入和退出各个子网的网络流量。本地安全基础设施(包括网络防火墙和入侵检测系统)可以检测通过 IPsec VPN 连接进入或退出 Amazon VPC 的所有网络流量。

数据库活动流

除了外部安全威胁外,托管数据库还需要提供保护,防范来自数据库管理员(DBA)的内部风险。数据库活动流目前支持 Amazon Aurora 和 Amazon RDS for Oracle,可在您的关系数据库中提供数据库活动的实时数据流。与第三方数据库活动监控工具集成后,您可以监控和审核数据库活动,为您的数据库提供安全保护,并满足合规性和监管要求。

数据库活动流通过实施控制数据库管理员对数据库活动流的访问的保护模型来保护您的数据库免受内部威胁。因此,数据库活动流的收集、传输、存储和后续处理超出了管理数据库的数据库管理员的访问权限。

该数据流被推送到代表您的数据库创建的 Amazon Kinesis 数据流。然后,来自 Kinesis Data Firehose 的数据库活动流可以由 Amazon CloudWatch 或用于合规性管理的合作伙伴应用程序(例如 IBM Security Guardium)使用。这些合作伙伴应用程序可以使用数据库活动流信息生成警报,并提供有关 Amazon Aurora 数据库上所有活动的审核。

您可以在文档页面中详细了解如何使用适用于兼容 PostgreSQL 和 MySQL 的 Aurora 版本的数据库活动流,并在文档页面中详细了解如何使用适用于 Amazon RDS for Oracle 的数据库活动流。

合规性

Amazon RDS 致力于为客户提供强大的合规性框架以及一些高级工具和安全措施,客户可以使用它们来评估、满足和展示对适用法律和法规要求的合规性。客户应查看 AWS 责任共担模式,并将 Amazon RDS 的责任与客户责任对应起来。客户还可以使用 AWS Artifact 来访问 RDS 的审计报告并对控制责任进行评估。

有关更多信息,请访问 AWS 合规性页面

常见问题

Amazon RDS 可以分析数据库实例中的配置和使用率指标,从而提供最佳实践指导。建议涵盖安全、加密、IAM 和 VPC 等领域。您可以浏览提供的建议并立即执行建议的操作,也可以将其安排在下个维护时段执行或者完全忽略。

Amazon VPC 允许您在 AWS 云中私有、隔离的部分创建虚拟网络环境,从中可以对私有 IP 地址范围、子网、路由表和网络网关等方面进行全面控制。借助 Amazon VPC,您可以定义虚拟网络拓扑和自定义网络配置,使其非常类似于您在自己的数据中心所操作的传统 IP 网络。

使用 VPC 的一个好处在于:您可以运行面向公众的 Web 应用程序,同时仍旧在私有子网中保持非公开访问的后端服务器。您可以为 Web 服务器创建一个可以访问 Internet 的公有子网,并将后端 Amazon RDS 数据库实例置于不能访问 Internet 的私有子网中。有关 Amazon VPC 的更多信息,请参阅 Amazon Virtual Private Cloud 用户指南

如果您的 AWS 账户是在 2013 年 12 月 4 日之前创建的,那么您或许可以在 Amazon Elastic Compute Cloud(EC2)-Classic 环境中运行 Amazon RDS。无论使用 EC2-Classic 还是 EC2-VPC,Amazon RDS 的基本功能完全相同。无论数据库实例部署在 VPC 内部还是外部,Amazon RDS 都能管理备份、软件补丁、自动故障检测、只读副本和恢复。要详细了解 EC2-Classic 与 EC2-VPC 之间的区别,请参阅 EC2 文档

数据库子网组是您希望为 VPC 中的 Amazon RDS 数据库实例委派的子网集合。每个数据库子网组都应在指定区域中的每个可用区内拥有至少一个子网。在 VPC 中创建数据库实例时,您需要选择一个数据库子网组。然后,Amazon RDS 使用该数据库子网组和您首选的可用区来选择子网以及该子网内的 IP 地址。Amazon RDS 创建弹性网络接口,并通过该 IP 地址将其关联到您的数据库实例。

请注意,我们强烈建议您使用 DNS 名称来连接数据库实例,因为基础 IP 地址可能会变化(例如,在失效转移时)。

对于多可用区部署,为一个区域内的所有可用区定义子网可允许 Amazon RDS 在需要时在其他可用区中创建新的备用实例。即使是单一可用区域部署,您也需要这样做,以防以后需要将它们转换为多可用区域部署。

有关引导您完成此流程的程序,请参阅 Amazon RDS 用户指南中的在 VPC 中创建数据库实例

请访问 Amazon RDS 用户指南的安全组部分,了解各种不同的数据库实例访问权限管理方法。

通过 VPC 内部署的 EC2 实例可以访问同一 VPC 内部署的数据库实例。如果这些 EC2 实例部署在具有关联弹性 IP 的公共子网中,您可以通过 Internet 访问 EC2 实例。对于 VPC 内部署的数据库实例,可通过 VPN 或您在公有子网中可以启动的堡垒主机,或使用 Amazon RDS 可公开访问选项通过 Internet 或从 VPC 外部的 EC2 实例进行访问:

  • 要使用堡垒主机,您需要使用充当 SSH 堡垒的 EC2 实例来设置公有子网。该公有子网的互联网网关和路由规则必须允许通过 SSH 主机引导流量,然后必须将请求转发到 Amazon RDS 数据库实例的私有 IP 地址。
  • 简单创建数据库实例,并将“可公开访问”选项设定为“是”,即可使用公共连接。默认情况下,当“可公开访问”选项可用时,从您的 VPC 外部可实现对 VPC 内数据库实例的完全访问。这表示您无需配置 VPN 或堡垒主机来允许访问您的实例。 

您也可以设置一个 VPN 网关,将公司网络扩展到 VPC,然后允许访问该 VPC 中的 Amazon RDS 数据库实例。有关更多详细信息,请参阅《Amazon VPC 用户指南》。

我们强烈建议您使用 DNS 名称来连接数据库实例,因为基础 IP 地址可能会发生变化 (例如,在故障转移时)。

如果数据库实例未在 VPC 中,您可以使用 AWS 管理控制台轻松将数据库实例移至 VPC 中。有关更多详细信息,请参阅 Amazon RDS 用户指南。您还可以对 VPC 外部的数据库实例拍摄快照,然后通过指定您要使用的数据库子网组,将其还原到 VPC。此外,您也可以执行“还原到时间点”操作。

不支持将数据库实例从 VPC 内部迁移到外部。出于安全考虑,无法将 VPC 内数据库实例的数据库快照还原到 VPC 外部。同样,也无法执行“还原到时间点”功能。 

您需要负责修改 VPC 中的路由表网络 ACL,以确保能够从 VPC 中的客户端实例访问您的数据库实例。 对于多可用区部署,在失效转移后,您的客户端 EC2 实例和 Amazon RDS 数据库实例可能位于不同的可用区。您需要配置网络 ACL,以确保能够跨可用区进行通信。

现有的数据库子网组可以进行更新,以便为现有的可用区或为创建数据库实例时添加的新可用区添加更多子网。 如果实例在特定可用区中运行,而该可用区已经从子网组中删除,则从现有数据库子网组中删除子网可能导致实例不可用。有关更多信息,请参阅 Amazon RDS 用户指南

开始使用 Amazon RDS 时,您需要有 AWS 开发人员账户。如果在注册 Amazon RDS 前没有 AWS 开发人员账户,系统将会提示您创建一个,再开始注册过程。主用户账户与 AWS 开发人员账户不同,它仅在 Amazon RDS 环境内使用,用来控制对您的数据库实例的访问。主用户账户是本机数据库用户账户,可用来连接数据库实例。 

在创建数据库实例时,您可以指定与每个数据库实例相关联的主用户账户和密码。创建数据库实例后,您可以使用主用户证书连接到数据库。之后,您也可以创建其他用户账户,以便限制谁能访问您的数据库实例。

对于 MySQL,主用户的默认特权包括:创建、退出、引用、事件、更改、删除、索引、插入、选择、更新、创建临时表、锁定表、触发、创建视图、显示视图、更改例程、创建例程、执行、触发、创建用户、处理、显示数据库、授予选项。

对于 Oracle,主用户将被授予“dba”角色。主用户将继承与该角色相关联的大部分特权。有关限制的特权以及执行需要这些特权的管理任务时相应的替代项列表,请参阅 Amazon RDS 用户指南

对于 SQL Server,创建数据库的用户将被授予“db_owner”角色。要获得限制的特权以及执行可能需要这些特权的管理任务时的相应替代项的列表,请参阅《Amazon RDS 用户指南》。

没有。一切都与您自己管理关系数据库时使用的熟悉方式相同。

符合。您必须通过配置安全组专门打开通过 Internet 访问数据库的功能。您只能对特定 IP、IP 范围或自己数据中心服务器所对应的子网授予访问权限。

可以,所有 Amazon RDS 引擎都支持此选项。 Amazon RDS 会为每个数据库实例生成一个 SSL/TLS 证书。建立加密连接后,在传输时将对数据库实例和应用程序之间传输的数据进行加密。虽然 SSL 有安全优势,但应注意 SSL/TLS 加密操作需使用大量计算操作,可能会加大数据库连接延迟。Amazon RDS 中的 SSL/TLS 支持用来对应用程序和数据库实例之间的连接加密;不应依赖于数据库实例本身的身份验证。

有关如何与 Amazon RDS 建立加密连接的详细信息,请访问《Amazon RDS MySQL 用户指南》、《MariaDB 用户指南》、《PostgreSQL 用户指南》或《Oracle 用户指南》。

Amazon RDS 使用您通过 AWS Key Management Service (KMS) 管理的密钥来支持所有数据库引擎的静态加密。在通过 Amazon RDS 加密运行的数据库实例上,静态存储于底层存储的数据都将加密,自动备份、只读副本和快照也是如此。加密和解密操作的处理都是透明的。有关如何将 KMS 与 Amazon RDS 结合使用的更多信息,请参阅《Amazon RDS 用户指南》。

您还可以对之前未加密的数据库实例或数据库集群进行加密,具体方法是创建数据库快照,然后创建此快照的副本并指定 KMS 加密密钥。之后,您就可从加密的快照还原加密的数据库实例或数据库集群。

Amazon RDS for Oracle 和 Amazon RDS for SQL Server 支持这些引擎的透明数据加密(TDE)技术。有关更多信息,请参阅《Amazon RDS 用户指南》中有关 OracleSQL Server 的部分。

否,Amazon RDS 上的 Oracle 实例无法与 AWS CloudHSM 集成。要在 AWS CloudHSM 中使用透明数据加密(TDE),需要将 Oracle 数据库安装在 Amazon EC2 上。

您可以控制您的 AWS IAM 用户和组在 Amazon RDS 资源上可执行的操作。您可以通过以下方法实现此目的:在您应用到用户和组的 AWS IAM 策略中引用 Amazon RDS 资源。可在 AWS IAM policy 中引用的 Amazon RDS 资源包括:数据库实例、数据库快照、只读副本、数据库安全组、数据库选项组、数据库参数组、事件订阅以及数据库子网组。 

此外,您还可以为这些资源添加标签,以便在资源中添加额外的元数据。通过添加标记,您可以对资源进行分类(例如,“开发”数据库实例、“生产”数据库实例、“测试”数据库实例,等等),然后编写 AWS IAM 策略,规定对于具有相同标记的资源可以执行哪些权限(即操作)。有关更多信息,请参阅标记 Amazon RDS 资源

符合。 AWS CloudTrail 是一项 Web 服务,为您的账户记录 AWS API 调用并为您提供日志文件。由 CloudTrail 生成的 AWS API 调用历史记录可用于安全分析、资源变更追踪以及合规性审计。 

可以,所有 Amazon RDS 数据库引擎均符合 HIPAA 要求,因此您可以基于与 AWS 签署的《业务合作协议》(BAA),使用它们构建 HIPAA 合规应用程序并存储医疗保健相关信息(包括受保护的健康信息 [PHI])。

如果您已经有履行的 BAA,可以即刻开始在 BAA 涵盖的账户内使用这些服务。如果您尚未与 AWS 签署有效的 BAA,或者对于 AWS 上符合 HIPAA 要求的应用程序还有其他疑问,请联系
您的客户经理。

  • Imperva

    Imperva 数据保护从 AWS 数据库活动流(DAS)事件(以及其他各种 AWS 来源)获取反馈,通过强大、专门构建的分析来增加安全背景。Imperva 可检测恶意活动、规避行为和权限滥用,这些行为可能是账户被盗和存在内部威胁元素的标志。其他益处包括交互式数据探索、丰富的开箱即用自动化以及通过手册提供的内置响应功能,从而可以降低总拥有成本并弥合大多数公司在迁移到云端时面临的技能差距。” – Imperva 数据安全部门高级副总裁兼总经理 Dan Neault。

    要了解更多信息,请访问 Imperva 数据安全性页面。 »
  • IBM

    IBM Security® Guardium® 数据保护有助于确保从数据库到大数据、混合/云、文件系统等各种环境中关键数据的安全性、隐私和完整性。我们很高兴能与 AWS 数据库活动流(DAS)集成。这种集成将使我们的共同客户能够近乎实时地了解数据库活动,使他们能够快速识别威胁,并采取一致的战略方法来保护本地和云环境中的数据。” – IBM Security 数据保护产品组合产品经理 Benazeer Daruwalla。

    要了解更多信息,请访问 IBM 安全性页面。 »