操作场景
云数据库 MongoDB 提供存储加密的功能(也称为透明数据加密 TDE - Transparent Data Encryption,或者静态数据加密),在数据写入磁盘前进行加密,从磁盘读入内存时自动进行解密,由数据库管理系统来实现,满足数据加密的合规性要求。
限制条件
实例类型版本须为 MongoDB 4.4、5.0。
操作账号已 开通密钥管理系统(Key Management Service,KMS) 服务。如未开通,可在开通数据加密过程中根据引导开通 KMS。
操作账号需具有
MongoDB_QCSLinkedRoleInKMS
角色权限。该角色及关联策略是 MongoDB 授予 KMS 创建密钥&管理密钥的权限。 如无权限,可在开通数据加密过程中根据引导进行授权。说明:
加密使用的密钥由 密钥管理服务 KMS 产生和管理,云数据库 MongoDB 不提供加密所需的密钥和证书。
存储加密功能不会额外收费,但密钥管理服务 KMS 有可能产生额外费用,请参考 计费概述。
当账号处于欠费状态时,无法从 KMS 获取密钥,可能导致迁移、升级等任务无法正常进行,请参见 欠费说明。
注意事项
撤销 KMS 授权关系后,重启会造成 MongoDB 数据库不可用。
开通存储加密前,自动备份的方式不能为物理备份;开通后,不能修改自动备份的方式为物理备份,不能手动物理备份。
存储加密功能开通后无法关闭,且不支持修改密钥。
存储加密功能后,密钥被禁用或删除后加密数据无法访问。
开启存储加密功能后,可提高数据的安全性,但同时会影响访问加密数据库的读写性能,请结合实际情况选择开启存储加密功能。
开启存储加密功能后,当账号处于欠费状态时,无法从 KMS 获取密钥,可能导致迁移、升级等任务无法正常进行。
开启存储加密功能后,会增加 CPU 资源的消耗,对性能有一定影响。
开启存储加密功能后,经过数据库身份验证的应用和用户可以透明地访问应用数据。
开启存储加密功能后,已存在库表会保持非加密状态;如果想对已有库表进行存储加密,建议先创建一个新的加密实例,再将已有数据迁移到新实例。
操作步骤
1. 登录 MongoDB 控制台。
2. 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集实例与分片实例操作类似。
3. 在右侧实例列表页面上方,选择地域。
4. 在实例列表中,找到目标实例。
您可以通过实例列表右上角的搜索框,输入实例 ID、实例名称、内网 IP 或标签键来查找目标实例。
如果实例在实例列表未找到,请在左侧导航栏选择任务管理,
5. 在目标实例的实例 ID / 名称列,单击实例 ID,进入实例详情页面。
6. 切换到数据安全页面,选择存储加密页签,在存储加密设置下面的加密状态,单击点击开通。
7. 在设置数据加密的窗口,开通 KMS 服务和授予 KMS 管理密钥权限,在选择密钥选项中选择密钥的生成方式。
使用腾讯云自动生成密钥:由腾讯云自动生成密钥。
使用已有自定义密钥:选择已在 KMS 密钥管理页面创建的密钥,在下方下拉框中分别选择实例所在地域与密钥的名称。
8. 单击加密,完成配置。在左侧导航栏单击任务管理,等待任务执行完成。
9. 切换到存储加密页面,可看到加密状态更新为已开通,并在密钥列表,可看到已创建的密钥。