加密 Amazon RDS 资源 - Amazon Relational Database Service

加密 Amazon RDS 资源

您可通过为 Amazon RDS 数据库实例启用加密选项来对静态 Amazon RDS 数据库实例和快照进行加密。静态加密的数据包括数据库实例的基础存储、其自动化备份、只读副本和快照。

Amazon RDS 加密的数据库实例使用行业标准 AES-256 加密算法来对托管 Amazon RDS 数据库实例的服务器上的数据进行加密。在加密数据后,Amazon RDS 将以透明方式处理访问的身份验证和数据的解密,并且对性能产生的影响最小。您无需修改数据库客户端应用程序来使用加密。

注意

对于加密和未加密数据库实例,将对在源与只读副本之间发送的数据进行加密,即使在 AWS 区域之间复制时也是如此。

Amazon RDS 资源加密概览

Amazon RDS 加密的数据库实例通过保护您的数据免受未经授权的访问来为基础存储提供额外一层数据保护。您可以使用 Amazon RDS 加密来增强云中部署的应用程序的数据保护,并满足静态数据加密的合规性要求。

Amazon RDS 还支持利用透明数据加密 (TDE) 对 Oracle 或 SQL Server 数据库实例进行加密。TDE 可以与静态加密一起使用,但同时使用 TDE 和静态加密可能会稍微影响数据库的性能。您必须为每种加密方法管理不同的密钥。有关 TDE 的更多信息,请参阅 Oracle 透明数据加密SQL Server 中的透明数据加密支持

要管理用于加密和解密 Amazon RDS 资源的客户主密钥 (CMK),您可以使用 AWS Key Management Service (AWS KMS)。AWS KMS 将安全、高度可用的硬件和软件结合起来,提供可扩展到云的密钥管理系统。利用 AWS KMS,您可创建 CMK 并定义控制这些 CMK 的使用方式的策略。AWS KMS 支持 CloudTrail,因此,您可审计 CMK 使用情况以验证 CMK 是否使用得当。您可以将 AWS KMS CMK 与 Amazon RDS 和支持的 AWS 服务(例如 Amazon S3、Amazon EBS 和 Amazon Redshift)结合使用。有关支持 AWS KMS 的服务的列表,请参阅 AWS Key Management Service 开发人员指南 中的支持的服务

可为 Amazon RDS 加密的数据库实例加密所有日志、备份和快照。Amazon RDS 加密实例的只读副本也可使用与主数据库实例相同的 CMK 进行加密,前提是两者在相同的 AWS 区域中。如果主数据库实例和只读副本位于不同的 AWS 区域中,则使用该 AWS 区域的 CMK 进行加密。

对数据库实例启用 Amazon RDS 加密

要为新数据库实例启用加密,请在 Amazon RDS 控制台上,选择启用加密。​想要了解有关创建数据库实例的信息,请参阅创建 Amazon RDS 数据库实例

如果使用 create-db-instance AWS CLI 命令创建加密的数据库实例,请将 --storage-encrypted 参数设置为 true。如果使用 CreateDBInstance API 操作,请将 StorageEncrypted 参数设置为 true。

创建加密的数据库实例时,您还可以为 CMK 提供 AWS KMS 客户主密钥 (CMK) 标识符。如果您没有指定 AWS KMS CMK 标识符,则 Amazon RDS 将对您的新数据库使用您的默认 CMK。AWS KMS 为您的 AWS 账户创建 Amazon RDS 的默认 CMK。您的 AWS 账户对每个 AWS 区域具有不同的默认 CMK。

创建加密的数据库实例后,您无法更改该数据库实例使用的 CMK 的类型。因此,请确保先确定您的 CMK 要求,然后再创建加密的数据库实例。

如果使用 AWS CLI create-db-instance 命令创建加密的数据库实例,请将 --kms-key-id 参数设置为该数据库实例的 AWS KMS CMK 的 Amazon 资源名称 (ARN)。如果使用 Amazon RDS API CreateDBInstance 操作,请将 KmsKeyId 参数设置为该数据库实例的 AWS KMS CMK 的 ARN。

可使用另一个账户中的 CMK 的 ARN 来加密数据库实例。您也可以使用拥有用于加密新数据库实例的 AWS KMS CMK 的同一 AWS 账户创建数据库实例。在这种情况下,您传递的 AWS KMS 密钥标识符可以是 AWS KMS CMK 别名而不是 CMK 的 ARN。

Amazon RDS 加密的可用性

Amazon RDS 加密当前可用于所有数据库引擎和存储类型。

Amazon RDS 加密适用于大多数数据库实例类。下表列出了不支持 Amazon RDS 加密的数据库实例类:

实例类型 实例类

通用型 (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

内存优化 (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

具有突增能力 (T2)

db.t2.micro

注意

静态加密不适用于运行 SQL Server 速成版的数据库实例。

Amazon RDS 加密的数据库实例的限制

Amazon RDS 加密的数据库实例存在以下限制:

  • 您只能在创建 Amazon RDS 数据库实例时而不是创建该数据库实例之后启用对该数据库实例的加密。

    不过,由于您可以加密未加密数据库快照的副本,因此,您可以高效地为未加密的数据库实例添加加密。也就是说,您可以创建数据库实例快照,然后创建该快照的加密副本。然后,您可以从加密快照还原数据库实例,从而获得原始数据库实例的加密副本。有关更多信息,请参阅 复制快照

  • 不能将已加密的数据库实例修改为禁用加密。

  • 您无法拥有未加密数据库实例的加密只读副本或加密数据库实例的未加密只读副本。

  • 如果加密的只读副本位于同一 AWS 区域,则它们的 CMK 必须与源数据库实例的相同。

  • 您不能将未加密的备份或快照还原到加密的数据库实例。

  • 要将已加密快照从一个 AWS 区域复制到另一个 AWS 区域,您必须指定目标 AWS 区域的 AWS KMS 密钥标识符。这是因为 AWS KMS CMK 特定于在其中创建它们的 AWS 区域。

    源快照在整个复制过程中保持加密状态。AWS KMS 在复制过程中使用信封加密来保护数据。有关信封加密的更多信息,请参阅信封加密