SQL Server 中的透明数据加密支持 - Amazon Relational Database Service

SQL Server 中的透明数据加密支持

Amazon RDS 支持使用透明数据加密 (TDE) 来加密运行 Microsoft SQL Server 的数据库实例中存储的数据。TDE 会在数据写入存储前自动加密这些数据,并在从存储中读取时自动解密这些数据。

Amazon RDS 支持在以下 SQL Server 版本中使用 TDE:

  • SQL Server 2022 标准版和企业版

  • SQL Server 2019 标准版和企业版

  • SQL Server 2017 企业版

  • SQL Server 2016 企业版

适用于 SQL Server 的透明数据加密使用双层密钥体系结构提供加密密钥管理。系统会从数据库主密钥中生成证书,用于保护数据加密密钥。数据库加密密钥对用户数据库上的数据执行实际的加密与解密操作。Amazon RDS 备份和管理数据库主密钥和 TDE 证书。

透明数据加密在您需要加密敏感数据的场景中使用。例如,您可能想要将数据文件和备份提供给第三方,或者想要解决有关安全的合规性问题。您不能加密 SQL Server 的系统数据库,例如 model 数据库或 master 数据库。

详细讨论透明数据加密超出了本指南的范围,但确保您了解每个加密算法和密钥的安全优缺点。有关适用于 SQL Server 的透明数据加密的信息,请参阅 Microsoft 文档中的透明数据加密 (TDE)

为 RDS for SQL Server 开启 TDE

要为 RDS for SQL Server 数据库实例开启透明数据加密,请在与该数据库实例关联的 RDS 选项组中指定 TDE 选项。

  1. 确定您的数据库实例是否已与具有 TDE 选项的选项组关联。要查看与数据库实例关联的选项组,请使用 RDS 控制台、AWS CLI 命令 describe-db-instance 或 API 操作 DescribeDBInstances

  2. 如果数据库实例未与已开启 TDE 的选项组关联,则您有两个选择。您可以创建选项组并添加 TDE 选项,或您可以修改关联选项组以添加它。

    注意

    在 RDS 控制台中,该选项名为 TRANSPARENT_DATA_ENCRYPTION。在 AWS CLI 和 RDS API 中,它名为 TDE

    有关创建或者修改选项组的信息,请参阅 使用选项组。有关向选项组添加选项的信息,请参阅 将选项添加到选项组

  3. 将数据库实例与具有 TDE 选项的选项组相关联。有关将数据库实例与选项组关联的信息,请参阅 修改 Amazon RDS 数据库实例

选项组注意事项

TDE 选项是一种持久性选项。除非所有数据库实例和备份都不再与选项组关联,否则无法将此选项从选项组中删除。将 TDE 选项添加到选项组之后,该选项组只能与使用 TDE 的数据库实例关联。有关选项组中持久性选项的详细信息,请参阅选项组概述

由于 TDE 选项是一个持久性选项,因此在选项组与关联的数据库实例之间可能发生冲突。在以下情况下,可能会发生冲突:

  • 当前选项组具有 TDE 选项,而您将它替换为没有 TDE 选项的选项组。

  • 从数据库快照还原到新的数据库实例,但该实例不具有包含 TDE 选项的选项组。有关此方案的更多信息,请参阅选项组的注意事项

SQL Server 性能注意事项

使用透明数据加密可能会影响 SQL Server 数据库实例的性能。

如果数据库实例上的数据库拥有至少一个加密的数据库,那么,也可能会降低未加密数据库的性能。因此,我们建议您将加密数据库和未加密数据库保存在不同的数据库实例上。