如果您希望對云防火墻的日志分析服務進行加密存儲,可以通過日志服務自帶的服務密鑰或者通過用戶自帶密鑰(BYOK)對數據進行加密存儲。本文介紹對日志數據進行加密。
數據加密機制
日志服務支持如下兩種加密類型機制:
通過日志服務自帶的服務密鑰加密
日志服務為每個Logstore生成獨立的數據加密密鑰,用于數據加密。該加密密鑰永不過期。
支持的數據加密算法為AES算法(默認)和國密算法SM4。
通過用戶自帶密鑰(BYOK)加密
您可以在KMS控制臺上創建主密鑰CMK,并授權日志服務相應的權限。日志服務調用KMS接口時,使用該CMK創建用于數據加密的密鑰。當您的主密鑰CMK被刪除或禁用后,BYOK密鑰失效。
重要由KMS BYOK生成的主密鑰(CMK)失效后,Logstore上的所有讀寫請求都會失敗。
使用限制
配置數據加密時,您第一次選定加密機制后,后續您無法修改數據加密機制。也不支持修改加密算法和加密類型,您只能通過enable參數開啟或者關閉加密功能,且后續更新Logstore時,需每次攜帶完整encrypt_conf參數。
例如,您第一次選擇的是通過日志服務自帶的服務密鑰加密機制,后續您無法修改為通過用戶自帶密鑰(BYOK)加密方式。
通過日志服務自帶的服務密鑰加密
在調用CreateLogStore API創建Logstore或更新Logstore API修改Logstore時,添加如下encrypt_conf(配置數據加密字段)參數完成加密設置。
encrypt_conf字段的數據結構如下表所示。其中,user_cmk_info字段不填。
名稱 | 類型 | 描述 | 示例值 |
---|---|---|---|
object | 加密配置數據結構。 | ||
enable | boolean | 是否啟用數據加密。
| true |
encrypt_type | string | 加密算法,只支持 default 和 sm4。當 enable 為 true 時,此項必選。 | default |
user_cmk_info | EncryptUserCmkConf | 可選字段。如果設置該字段,則表示使用自帶密鑰(BYOK),否則使用日志服務的服務密鑰。 | { "cmk_key_id" : "f5136b95-2420-ab31-xxxxxxxxx" "arn" : "acs:ram::13234:role/logsource" "region_id" : "cn-hangzhou" } |
通過密鑰管理的用戶自帶密鑰(BYOK)加密
前提條件
已開通密鑰管理服務。更多信息,請參見開通密鑰管理服務。
步驟一:BYOK授權
如果使用BYOK加密,則需先完成RAM授權。
登錄RAM控制臺。
創建RAM角色。更多信息,請參見步驟一:創建RAM角色。
修改RAM角色的信任策略。更多信息,請參見修改RAM角色的信任策略。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
為RAM角色授權AliyunKMSReadOnlyAccess、AliyunKMSCryptoUserAccess權限。更多信息,請參見為RAM角色授權。
如果是使用RAM用戶操作BYOK加密,還需對RAM用戶授予PassRole權限,即創建自定義授權策略,并完成授權。更多信息,請參見創建自定義權限策略、為RAM用戶授權。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::*" #RAM角色的ARN。更多信息,請參見如何獲取RAM角色標識。 } ] }
步驟二:配置數據加密
您在云防火墻控制臺上開通日志服務后,云防火墻將自動創建一個專屬Project和一個專屬Logstore。您需要調用更新Logstore進行數據加密,添加encrypt_conf(配置數據加密字段)參數完成加密設置。
調用更新Logstore前需要先使用查看Logstore獲取Logstore的原配置,在此基礎上修改后,作為參數傳入到更新Logstore中。
encrypt_conf字段的數據結構如下表所示。其中,user_cmk_info字段必須填寫。
名稱 | 類型 | 描述 | 示例值 |
---|---|---|---|
object | 加密配置數據結構。 | ||
enable | boolean | 是否啟用數據加密。
| true |
encrypt_type | string | 加密算法,只支持 default 和 sm4。當 enable 為 true 時,此項必選。 | default |
user_cmk_info | EncryptUserCmkConf | 可選字段。如果設置該字段,則表示使用自帶密鑰(BYOK),否則使用日志服務的服務密鑰。 | { "cmk_key_id" : "f5136b95-2420-ab31-xxxxxxxxx" "arn" : "acs:ram::13234:role/logsource" "region_id" : "cn-hangzhou" } |
EncryptUserCmkConf數據結構
名稱 | 類型 | 描述 | 示例值 |
---|---|---|---|
object | 用戶加密配置數據結構。 | ||
cmk_key_id | string | BYOK 的主密鑰 ID。 | f5136b95-2420-ab31-xxxxxxxxx |
arn | string | RAM 角色的 ARN。 | acs:ram::13234:role/logsource |
region_id | string | 主密鑰所在的地域 ID。 | cn-hangzhou |
encrypt_conf = {
"enable" : True, # 是否啟用加密。
"encrypt_type" : "default" # 加密算法,只支持default和m4。
"user_cmk_info" : # 可選字段。如果設置該字段,則表示使用自帶密鑰(BYOK),否則使用日志服務的服務密鑰。
{
"cmk_key_id" : "" # BYOK的主密鑰ID,例如f5136b95-2420-ab31-xxxxxxxxx。
"arn" : "" # RAM角色的ARN。更多信息,請參見如何獲取RAM角色標識。
"region_id" : "" # 主密鑰所在的地域ID。
}
}
相關文檔
涉及日志服務的API如下: