Oracle 透明数据加密 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Oracle 透明数据加密

Amazon RDS 支持 Oracle 透明数据加密 (TDE),这是 Oracle 企业版中提供的 Oracle 高级安全选项中的功能。该功能在将数据写入到存储之前自动对数据进行加密,并在从存储读取数据时自动对数据进行解密。

TDE 在需要加密敏感数据以防第三方获取数据文件和备份的情况下非常有用。当您需要遵守安全相关法规时,TDE 也非常有用。

TDE 选项是持久和永久的。如果您将 RDS for Oracle 数据库实例与启用了 TDE 选项的选项组关联,则无法将其禁用。您可以更改选项组,但新的选项组必须包含 TDE 选项。有关持久和永久选项的更多信息,请参阅持久性和永久性选项

注意

您不能共享使用 TDE 选项的数据库快照。有关共享数据库快照的更多信息,请参阅 共享数据库快照

有关 Oracle 数据库中 TDE 的详细说明超出了本指南的范围。有关信息,请参阅以下 Oracle 数据库资源:

有关将 TDE 和 RDS for Oracle 结合使用的更多信息,请参阅以下博客:

TDE 加密模式

Oracle 透明数据加密支持两种加密方式,即 TDE 表空间加密和 TDE 列加密。TDE 表空间加密用于加密整个应用程序表。TDE 列加密用于加密单个包含敏感数据的数据元素。此外,您还可以应用同时使用 TDE 表空间和列加密的混合加密解决方案。

注意

Amazon RDS 为数据库实例管理 Oracle Wallet 和 TDE 主密钥。您无需使用命令 ALTER SYSTEM set encryption key 设置加密密钥。

启用 TDE 选项之后,可以使用以下命令检查 Oracle Wallet 的状态:

SELECT * FROM v$encryption_wallet;

要创建加密的表空间,请使用以下命令:

CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE (ENCRYPT);

要指定加密算法,请使用以下命令:

CREATE TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);

前面用于加密表空间的语句与您在本地 Oracle 数据库上使用的语句相同。

确定您的数据库实例是否使用 TDE

您可能需要确定您的数据库实例是否与启用了 TDE 选项的选项组相关联。要查看与数据库实例关联的选项组,请使用 RDS 控制台、Amazon CLI 命令 describe-db-instance 或 API 操作 DescribeDBInstances

添加 TDE 选项

将 Oracle 透明数据加密 (TDE) 与 Amazon RDS 一起使用的过程如下:

  1. 如果数据库实例未与已启用 TDE 选项的选项组关联,您必须创建选项组并添加 TDE 选项,或者修改关联的选项组以便添加 TDE 选项。有关创建或者修改选项组的信息,请参阅 使用选项组。有关向选项组添加选项的信息,请参阅 将选项添加到选项组

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

将您的数据复制到不包含 TDE 选项的数据库实例

您无法从数据库实例中删除 TDE 选项或将其与不包括 TDE 选项的选项组关联。要将数据迁移到不包含 TDE 选项的实例,请执行以下操作:

  1. 解密数据库实例上的数据。

  2. 将数据复制到未与已启用 TDE 的选项组关联的新数据库实例。

  3. 删除原始数据库实例。

您可以将新的实例重命名为前面的数据库实例名称。

将 TDE 与 Oracle 数据转储结合使用

可以使用 Oracle Data Pump 导入或导出加密转储文件。Amazon RDS 支持 Oracle Data Pump 的密码加密模式 (ENCRYPTION_MODE=PASSWORD)。Amazon RDS 不支持 Oracle Data Pump 的透明加密模式 (ENCRYPTION_MODE=TRANSPARENT)。有关更多信息,请参阅使用 Oracle Data Pump 导入