仓库加密
SelectDB Cloud 通过存储层加密保护静态数据,也可以在仓库服务层启用透明数据加密(Transparent Data Encryption,TDE)。TDE 和客户自管理密钥需要符合当前套餐、云厂商和仓库部署方式的支持条件。
不同部署方式的加密
| 加密对象 | 保护范围 | SaaS | BYOC |
|---|---|---|---|
| 仓库数据(TDE) | 数据写入存储前的仓库服务数据。 | 可选。默认使用 SelectDB Cloud 管理的密钥,也可以轮换为 AWS KMS 客户自管理密钥。 | 仅支持客户自管理的 AWS KMS 密钥;密钥必须位于你的云账号中。 |
| 对象存储 | 存储在对象存储中的仓库数据。 | 由 SelectDB Cloud 创建存储桶,并使用云厂商管理的密钥加密。 | 由你在云账号中创建存储桶并配置加密策略。 |
| 云盘 | 集群节点使用的云盘,包括缓存相关的块存储。 | 由 SelectDB Cloud 创建并默认启用云厂商管理的加密密钥。 | 由 SelectDB Cloud 在你的云账号中创建,默认使用云厂商管理的密钥;支持自定义基础设施的 AWS BYOC 可在创建时配置客户自管理密钥。 |
透明数据加密(TDE)
当前 TDE 仅支持 AWS 仓库。创建 AWS 仓库时可以启用 TDE:
- SaaS 仓库默认使用 SelectDB Cloud 管理的密钥,也可以在启用后轮换为客户自管理的 AWS KMS 密钥。
- BYOC 仓库必须使用客户自管理的 AWS KMS 密钥。若同时配置云盘加密密钥,必须在创建仓库时选择,创建后不能修改。
密钥管理方式
| 方式 | 说明 | 适用场景 |
|---|---|---|
| SelectDB Cloud 管理的密钥 | 启用 TDE 后由 SelectDB Cloud 管理密钥,无需额外配置。 | 默认方式,不需要自行管理密钥生命周期时使用。 |
| 客户自管理密钥 | 提供对称 AWS KMS 密钥,并授予 SelectDB Cloud 使用权限;SelectDB Cloud 不保存或导出该密钥。 | 需要由客户控制密钥生命周期,或需要满足合规要求时使用。 |
两种方式都能提供仓库层静态数据加密,区别在于密钥生命周期由谁管理。
配置客户自管理的 KMS 密钥
启用 TDE 后,可以将 SelectDB Cloud 管理的密钥轮换为自己的 AWS KMS 密钥。
-
登录 SelectDB Cloud 控制台,在顶部导航栏选择目标 AWS 仓库。
-
在左侧导航栏单击 更多 > 仓库设置。
-
在透明数据加密区域单击轮换 KMS 密钥,复制加密角色 ID。
-
打开 AWS KMS 控制台,创建一个对称加密密钥,并复制其 Key ARN。
-
更新 KMS 密钥策略,将以下语句添加到策略中,并将
<Encryption Role ID>替换为上一步复制的加密角色 ID。{
"Sid": "Allow SelectDB Access",
"Effect": "Allow",
"Principal": {
"AWS": [ "<Encryption Role ID>" ]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:DescribeKey"
],
"Resource": "*"
} -
返回 SelectDB Cloud,在透明数据加密区域粘贴 Key ARN,单击轮换。
警告: 应持续启用并保留已应用的 KMS 密钥。SelectDB Cloud 需要持续访问该密钥才能运行仓库;失去访问权限会导致仓库不可用,且数据无法读取。
轮换客户自管理的 TDE 密钥
创建或选择另一个 KMS 密钥,按上述步骤配置。SelectDB Cloud 会自动重新加密数据加密密钥。
审计密钥使用情况
使用 AWS CloudTrail 审计该密钥的 AWS KMS API 活动。
云盘加密
云盘加密保护仓库节点使用的块存储,包括缓存相关存储,避免直接读取底层云盘中的数据。
- SaaS 仓库的云盘加密由 SelectDB Cloud 管理,默认启用。
- AWS BYOC 仓库只有在使用自定义基础设施时,才能使用客户自管理的云盘密钥。该密钥必须在创建仓库时配置,创建后不能修改。
对象存储加密
对象存储加密保护存储在云对象存储中的仓库数据。
- SaaS 仓库的存储桶由 SelectDB Cloud 创建,并使用云厂商管理的密钥进行服务端加密。
- BYOC 仓库的存储桶由你在云账号中创建,并由你配置加密策略。
相关文档
- 仓库设置:管理 TDE、维护窗口和安全配置。
- 创建私有仓库(BYOC):了解 BYOC 创建时的加密配置。
- 静态数据加密:了解 SelectDB Cloud 的静态数据加密。
- 传输中加密:了解客户端与仓库之间的 TLS 加密。