You need to enable JavaScript to run this app.
导航
数据加密
最近更新时间:2025.11.26 17:23:58首次发布时间:2025.11.26 17:23:58
复制全文
我的收藏
有用
有用
无用
无用

日志服务支持对数据进行加密存储,以及使用火山引擎的密钥管理系统 KMS 对日志主题级别数据进行加密存储,本章节介绍使用用户密钥(SSE-KMS)方式对日志服务数据进行加密的操作步骤。

数据加密介绍

加密方式

说明

服务密钥(SSE-TLS)

日志服务自带的默认加密方式,用户无需额外进行配置,加密使用环节可实现无感知体验。

用户密钥(SSE-KMS)

使用火山引擎密钥管理服务(KMS),​生成、管理和保护加密密钥,提供安全的密钥存储、密钥生成、加密操作以及密钥轮换功能。具备如下特性:

  • 全生命周期控制性:
    用户对密钥拥有绝对控制权,可自主完成密钥从创建、定期轮转至最终删除的完整生命周期管理,无需依赖第三方,确保密钥管理的自主性与安全性。
  • 主动化管理属性:
    需用户主动参与密钥管理流程,例如在 KMS 控制台中完成主密钥的创建,并根据业务场景精准配置主密钥的使用权限(如授权指定角色、限制操作范围等),确保密钥使用合规可控。

使用限制

  • 当主密钥被删除或禁用后,用户密钥失效。主密钥失效后,对应日志主题的所有读写请求都会失败。
  • 配置数据加密时,选定加密机制后,不支持修改数据加密机制。只能通过在 API 接口中,配置EncryptConf参数的enable参数开启或者关闭加密功能,且后续更新日志主题时,需每次携带完整EncryptConf参数。
    例如第一次选择的是通过日志服务自带的服务密钥加密机制,后续无法修改为用户密钥加密方式。

计费说明

加密方式

说明

服务密钥(SSE-TLS)

不产生计费项。

用户密钥(SSE-KMS)

首次使用需要用户开通 KMS 服务。开通 KMS 服务免费,使用 KMS 服务会收费。
使用 KMS 进行服务端加密会产生 API 调用费用,创建 KMS 密钥会产生密钥托管费用,由 KMS 收取。详情请参考 KMS 计费说明

适用场景

加密方式

适用场景

服务密钥(SSE-TLS)

  • 快速部署数据加密。
  • 无需自管密钥(由服务商管理),且需密钥长期有效稳定场景。

用户密钥(SSE-KMS)

  • 需自主管理密钥,满足安全合规要求场景。
  • 需定期审计权限,降低密钥泄露风险场景。

配置加密步骤

使用日志服务的服务密钥(SSE-TLS)加密时,直接在调用 API 时,在请求中添加EncryptConf结构参数完成加密设置。
使用用户密钥(SSE-KMS)加密时,需参考如下步骤配置密钥管理系统。

1. 配置密钥管理系统

  1. 开通密钥管理系统 KMS,且与日志服务属于同一地域。
  2. 创建用户主密钥,并获取密钥 ID,详情请参考密钥管理快速入门自带密钥

2. 配置日志服务

  1. 配置日志服务跨服务访问 KMS,详情请参考跨服务访问授权

  2. 授权用户角色 KMS 加解密操作权限、KMS 只读权限,配置日志服务信任关系,并记录角色 TRN 。

    1. 登录访问控制 IAM 控制台

    2. 在左侧导航栏中,单击角色管理

    3. 搜索待授权的角色,在操作列单击添加权限

    4. 所属服务中搜索密钥管理系统,勾选KMSCryptoUserAccessKMSReadOnlyAccess策略,单击提交

    5. 单击待授权的角色名称,在信任关系页签,单击编辑信任策略,新增如下内容,单击保存

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Principal": {
                      "Service": [
                          "TLS"
                      ]
                  }
              }
          ]
      }
      
    6. 基本信息中记录角色 TRN。
      Image

  3. 配置数据加密。
    仅支持通过调用 API 实现。调用 API 时,在请求中添加EncryptConf结构参数完成加密设置。支持如下 API:

    API 名称

    API 说明

    CreateTopic

    创建日志主题,详情请参考 CreateTopic

    ModifyTopic

    修改日志主题信息,详情请参考 ModifyTopic

请求参数

参数

类型

是否必选

示例值

描述

EncryptConf

Object of EncryptConf

接口示例

数据加密结构体。
未配置时表示不使用数据加密功能。

EncryptConf

参数

类型

是否必选

示例值

描述

enable

Boolean

true

是否开启数据加密。

  • true:是。
  • false:否。

encrypt_type

String

default

加密算法,只支持default

user_cmk_info

Object of EncryptUserCmkConf

/

配置密钥信息,enabletrue时生效。

  • 不配置:使用服务密钥(SSE-TLS)加密。
  • 配置用户密钥:使用用户密钥(SSE-KMS)加密。

EncryptUserCmkConf

参数

类型

是否必选

示例值

描述

trn

string

trn:iam::123456789:role/service_role_for_tls

用户 IAM 角色的 TRN。
登录访问控制 IAM 控制台,在角色管理页签单击对应的角色名称,在基本信息中获取角色 TRN

region_id

string

ap-southeast-1

用户主密钥所在的 Region ID。
参考地域和访问域名,根据实际环境获取。

user_cmk_id

string

fc227edb-3682-4577-a3b5xxxxxxxxx

用户主密钥 ID。
通过密钥管理服务(KMS)创建的密钥的密钥 ID

接口示例

以使用用户密钥(SSE-KMS)加密为例。

EncryptConf = {
    "enable" : true,            
    "encrypt_type" : "default"  
    "user_cmk_info" :           
    {
          "trn" :  "trn:iam::123456789:role/service_role_for_tls"         
          "region_id" : "ap-southeast-1"      
          "user_cmk_id" : "fc227edb-3682-4577-a3b5xxxxxxxxx"     
    }
}