日志服务支持对数据进行加密存储,以及使用火山引擎的密钥管理系统 KMS 对日志主题级别数据进行加密存储,本章节介绍使用用户密钥(SSE-KMS)方式对日志服务数据进行加密的操作步骤。
加密方式 | 说明 |
|---|---|
服务密钥(SSE-TLS) | 日志服务自带的默认加密方式,用户无需额外进行配置,加密使用环节可实现无感知体验。 |
用户密钥(SSE-KMS) | 使用火山引擎密钥管理服务(KMS),生成、管理和保护加密密钥,提供安全的密钥存储、密钥生成、加密操作以及密钥轮换功能。具备如下特性:
|
EncryptConf参数的enable参数开启或者关闭加密功能,且后续更新日志主题时,需每次携带完整EncryptConf参数。加密方式 | 说明 |
|---|---|
服务密钥(SSE-TLS) | 不产生计费项。 |
用户密钥(SSE-KMS) | 首次使用需要用户开通 KMS 服务。开通 KMS 服务免费,使用 KMS 服务会收费。 |
加密方式 | 适用场景 |
|---|---|
服务密钥(SSE-TLS) |
|
用户密钥(SSE-KMS) |
|
使用日志服务的服务密钥(SSE-TLS)加密时,直接在调用 API 时,在请求中添加EncryptConf结构参数完成加密设置。
使用用户密钥(SSE-KMS)加密时,需参考如下步骤配置密钥管理系统。
配置日志服务跨服务访问 KMS,详情请参考跨服务访问授权。
授权用户角色 KMS 加解密操作权限、KMS 只读权限,配置日志服务信任关系,并记录角色 TRN 。
登录访问控制 IAM 控制台。
在左侧导航栏中,单击角色管理。
搜索待授权的角色,在操作列单击添加权限。
在所属服务中搜索密钥管理系统,勾选KMSCryptoUserAccess、KMSReadOnlyAccess策略,单击提交。
单击待授权的角色名称,在信任关系页签,单击编辑信任策略,新增如下内容,单击保存。
{ "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "TLS" ] } } ] }
在基本信息中记录角色 TRN。
配置数据加密。
仅支持通过调用 API 实现。调用 API 时,在请求中添加EncryptConf结构参数完成加密设置。支持如下 API:
API 名称 | API 说明 |
|---|---|
CreateTopic | 创建日志主题,详情请参考 CreateTopic。 |
ModifyTopic | 修改日志主题信息,详情请参考 ModifyTopic。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
EncryptConf | Object of EncryptConf | 否 | 数据加密结构体。 |
参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
enable | Boolean | 否 | true | 是否开启数据加密。
|
encrypt_type | String | 否 | default | 加密算法,只支持 |
user_cmk_info | Object of EncryptUserCmkConf | 否 | / | 配置密钥信息,
|
参数 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
trn | string | 否 | trn:iam::123456789:role/service_role_for_tls | 用户 IAM 角色的 TRN。 |
region_id | string | 否 | ap-southeast-1 | 用户主密钥所在的 Region ID。 |
user_cmk_id | string | 否 | fc227edb-3682-4577-a3b5xxxxxxxxx | 用户主密钥 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" } }