跳到主要内容
版本:26.x

仓库加密

SelectDB Cloud 通过存储层加密保护静态数据,也可以在仓库服务层启用透明数据加密(Transparent Data Encryption,TDE)。TDE 和客户自管理密钥需要符合当前套餐、云厂商和仓库部署方式的支持条件。

不同部署方式的加密​

加密对象保护范围SaaSBYOC
仓库数据(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 密钥。

  1. 登录 SelectDB Cloud 控制台,在顶部导航栏选择目标 AWS 仓库。

  2. 在左侧导航栏单击 更多 > 仓库设置。

  3. 在透明数据加密区域单击轮换 KMS 密钥,复制加密角色 ID。

  4. 打开 AWS KMS 控制台,创建一个对称加密密钥,并复制其 Key ARN。

  5. 更新 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": "*"
    }
  6. 返回 SelectDB Cloud,在透明数据加密区域粘贴 Key ARN,单击轮换。

参见 AWS 文档中的创建 KMS 密钥和密钥策略。

警告: 应持续启用并保留已应用的 KMS 密钥。SelectDB Cloud 需要持续访问该密钥才能运行仓库;失去访问权限会导致仓库不可用,且数据无法读取。

轮换客户自管理的 TDE 密钥​

创建或选择另一个 KMS 密钥,按上述步骤配置。SelectDB Cloud 会自动重新加密数据加密密钥。

审计密钥使用情况​

使用 AWS CloudTrail 审计该密钥的 AWS KMS API 活动。

云盘加密​

云盘加密保护仓库节点使用的块存储,包括缓存相关存储,避免直接读取底层云盘中的数据。

  • SaaS 仓库的云盘加密由 SelectDB Cloud 管理,默认启用。
  • AWS BYOC 仓库只有在使用自定义基础设施时,才能使用客户自管理的云盘密钥。该密钥必须在创建仓库时配置,创建后不能修改。

对象存储加密​

对象存储加密保护存储在云对象存储中的仓库数据。

  • SaaS 仓库的存储桶由 SelectDB Cloud 创建,并使用云厂商管理的密钥进行服务端加密。
  • BYOC 仓库的存储桶由你在云账号中创建,并由你配置加密策略。

相关文档​