透明数据加密

最近更新时间:2023-11-23 17:40:41

我的收藏
本文为您介绍云数据库 SQL Server 透明数据加密功能。

功能概述

透明数据加密(Transparent Data Encryption,以下简称 TDE)功能,指数据的加解密操作对用户透明,TDE 提供文件级别的加密,支持对数据文件进行实时 I/O 加密和解密,可以做到对数据库上层的应用透明,用户不需要修改业务代码,在数据写入磁盘前进行加密,存储在磁盘上的数据是加密的,从磁盘读取内存时进行解密,即对磁盘数据读取和写入时透明地进行加解密,TDE 不会增加数据文件的大小,可满足静态数据加密的合规性要求。

应用场景

TDE 常用于解决一些安全合规问题,如符合 PCI DSS、等级安全保护等标准对静态数据保护的要求。

功能限制

仅支持腾讯云自动生成的密钥证书,不支持使用用户自身的密钥证书。
密钥和证书不支持下载。
实例级别的 TDE 只能开通,无法关闭。即开通 TDE 后,实例上的证书和密钥无法删除。
数据库级别的 TDE 可以开通或关闭。
同一个账号(UIN)下所有实例的加密证书相同,用于不同实例间的备份恢复及回档。
不同账号(UIN)下的实例,如需进行备份恢复及回档,需要引用相同账号下的加密证书。
商业智能服务实例不支持开通 TDE 功能。

功能说明

TDE 的加密证书为账号级证书,且每个账号仅能有一个证书,即同一个账号下不同实例的加密证书一致,无需关闭 TDE,即可进行不同实例间的备份恢复及回档。
引用相同加密证书的实例,在备份恢复和数据迁移中,如果源数据库使用了 TDE 加密,而目标实例未开通实例级 TDE 功能,由于同一账号下的加密证书相同,所以目标实例会自动开通实例级 TDE 功能,此操作不影响业务。
若云数据库 SQL Server 实例分布在腾讯云不同账号下,且后续需要进行跨账号备份恢复,开通 TDE 时,证书来源请选择引用其他账号的证书,即需要保证不同账号下的实例开启 TDE 的证书一致。即一个主账号(UIN)仅能有一个证书,一个证书可能会被多个主账号(UIN)所使用。
如果实例关联只读实例,只需主动开通主实例的 TDE 功能即可,其只读实例的透明数据加密会一并开通。
要对实例开启/关闭数据库维度的 TDE 功能,则此实例不能关联有只读实例或发布订阅,需先解除只读实例或发布订阅后,再开启/关闭数据库维度的 TDE 功能,然后再重新添加只读实例和发布订阅。
开通 TDE 功能后,不支持使用备份文件在线下恢复数据,若想恢复数据到本地,需要先关闭 TDE 功能,然后创建手动备份后,再通过备份文件恢复数据。
线下加密的数据库无法直接迁移上云数据库 SQL Server 实例,需要先关闭线下数据库级别的 TDE 功能,再进行迁移。
开通 TDE 功能后,可提高数据安全性,但同时会影响访问加密数据库的读写性能,也会明显增加实例 CPU 使用率,请谨慎选择开启 TDE 功能。此外,CPU 小于4核的实例不建议开启 TDE 功能。
开启/关闭数据库维度的 TDE 功能的持续时间可能会比较久,过程中请不要对实例进行以下任务操作,否则数据库 TDE 可能会开启/关闭失败,建议在业务低峰期进行。包括但不限于以下操作:
修改、删除数据库,使数据库脱机、分离数据库。
将数据库或文件组转换为 READ ONLY 状态。
数据库备份。
数据库回档/还原。
变更数据捕获 CDC。
更改跟踪 CT。
收缩数据库。
数据库克隆。
修改数据库权限。
注意:
若用户有多个主账号(UIN),且全部需要开启 TDE 功能,且不同主账号(UIN)之间后续需要进行跨账号备份恢复/迁移/回档等操作,请务必保证所有主账号引用相同的证书。即在账号1中的实例开启 TDE 功能后,账号2、账号3、账号4……中的实例在开启 TDE 功能时,需务必引用账号1的加密证书,否则后续将无法进行跨账号操作(包括但不限于:跨账号回档、跨账号备份恢复、跨账号迁移等)。


开启实例透明数据加密

说明:
开启透明数据加密后,加密证书由腾讯云生成,不能使用其他非腾讯云提供的加密证书。
2. 选择地域,在实例列表单击需要开启 TDE 的实例 ID操作列的管理
3. 实例管理页选择数据安全 > 数据加密,然后在 TDE 加密状态后单击按钮开启功能。
注意:
实例级 TDE 功能开启后不可关闭。

4. 在弹出的 TDE 加密开通窗口下,有三种场景,您可根据实际场景进行操作。
场景一:该账号下不存在加密证书


选择证书来源,支持选择使用账号自身的证书引用其他账号的证书
使用账号自身的证书 由于 TDE 的加密证书为账号级证书,则表示该账号此前并未对账号下的任一实例开启过 TDE,选择使用账号自身的证书,单击确认
引用其他账号的证书 表示将引用其他账号的加密证书,选择引用其他账号的证书,然后选择引用账号,单击确认
说明:
引用其他账号的证书,即保证不同账号下开启 TDE 功能的数据库实例的证书一致,后续可以平滑进行跨账号备份恢复,即可以使用备份文件将数据恢复至腾讯云其他账号的数据库实例中。
场景二:该账号下存在证书,且证书为自身账号证书

此场景表示该账号此前对账号下的某实例开启过 TDE,且选择证书来源为账号自身的证书。 这种情况下,证书来源将默认为使用该账号自身的证书,直接单击确认即可开启 TDE。
场景三:该账号下存在证书,且证书为引用其他账号的证书 此场景表示该账号此前对账号下的某实例开启过 TDE,且选择证书来源为引用其他账号的证书。 这种情况下,证书来源默认为引用其他账号的证书,选择引用账号后,单击确认即可开启 TDE。



开启或关闭加密数据库

说明:
要对实例开启/关闭数据库维度的 TDE 功能,则此实例不能关联有只读实例或发布订阅,需先解除只读实例或发布订阅后,再开启/关闭数据库维度的 TDE 功能,然后再重新添加只读实例和发布订阅。
设置加密数据库前提是已开启实例透明数据加密功能,步骤可参见 开启实例透明数据加密
2. 选择地域,在实例列表单击需要开启 TDE 的实例 ID操作列的管理
3. 实例管理页选择数据安全 > 数据加密,然后在加密数据库后单击设置


4. 在弹窗下,在左侧未加密数据库里勾选需要的数据库,表示对该数据库开启加密,在右侧已加密数据库里删除数据库,表示对该数据库关闭加密,根据需要操作后单击确认


5. 开启数据库维度的 TDE 功能指定数据库后,在数据库管理下可根据字段 TDE 加密状态查看开启或关闭加密功能的数据库。



查看任务

在您开启/关闭实例级 TDE 功能或数据库级 TDE 功能时,可通过控制台右上角的任务图标了解当前任务进度。



开启 TDE 功能的云上数据库在回档、备份恢复、迁移、克隆数据库时的限制说明

功能项
具体功能
说明
回档
回档至源实例
同实例证书一致,可进行回档。
回档至同账号下其他已有实例
同账号下不同实例证书初始化一致。回档时系统会判定,具备源数据库关闭加密或目标实例开启加密的条件,才可以进行回档。
跨地域回档
开启跨地域备份的实例,跨地域备份文件同步加密,使用加密的跨地域备份在异地进行回档,需要同账号下不同地域实例的证书也初始化一致。回档时系统会判定,具备源数据库关闭加密或目标实例开启加密的条件,才可以进行回档。
克隆数据库
克隆至源实例
同实例证书一致,可进行克隆。
备份恢复(冷迁移)
备份恢复至源实例
同实例证书一致,可进行备份恢复。
备份恢复至同账号下其他已有实例
已加密文件在做备份恢复时,需要具备源备份文件已关闭加密或目标实例开启加密的条件,才可以进行备份恢复,因此若源数据库开启了 TDE 加密,而目标实例未开通实例级 TDE 加密,由于同一账号下的加密证书相同,则系统会自动给目标实例开通实例级 TDE 功能。
备份恢复至跨账号实例
已加密文件在做备份恢复时,需要具备源备份文件已关闭加密或目标实例开启加密的条件,才可以进行备份恢复。因此当源数据库开启了 TDE 加密,而目标实例未开通实例级 TDE 加密时,若源数据库和目标实例所在账号引用证书相同,则系统会自动给目标实例开通实例级 TDE 功能;若源数据库和目标实例所在账号引用证书不同,则需要将源数据库关闭加密或者将目标实例开启加密并引用相同证书后再进行备份恢复。
DTS(热迁移)
DTS 迁移至源实例
同实例证书一致,可进行迁移。
DTS 迁移至同账号下其他已有实例
已加密文件在做数据迁移时,需要具备源备份文件已关闭加密或目标实例开启加密的条件,才可以进行数据迁移,因此若源数据库开启了 TDE 加密,而目标实例未开通实例级 TDE 加密,由于同一账号下的加密证书相同,则系统会自动给目标实例开通实例级 TDE 功能。
DTS 迁移至跨账号实例
已加密文件在做数据迁移时,需要具备源备份文件已关闭加密或目标实例开启加密的条件,才可以进行数据迁移。因此当源数据库开启了 TDE 加密,而目标实例未开通实例级 TDE 加密时,若源数据库和目标实例所在账号引用证书相同,则系统会自动给目标实例开通实例级 TDE 功能;若源数据库和目标实例所在账号引用证书不同,则需要将源数据库关闭加密或者将目标实例开启加密并引用相同证书后再进行数据迁移。
发布订阅
从源实例链路到同地域下其他已有实例
发布订阅时系统会判定,具备源数据库关闭加密或目标实例开启加密的条件,才可以进行发布订阅。

相关 API

API
描述
接口(ModifyInstanceEncryptAttributes)用于开通实例的 TDE 加密功能。
接口(ModifyDBEncryptAttributes)用于开启、关闭数据库的 TDE 加密功能。