Log Service支援通過Key Management Service(Key Management Service)對資料進行加密儲存,提供資料靜態保護能力。本文主要介紹Log Service的資料加密機制以及使用KMS進行資料加密的操作步驟。
前提條件
已開通Key Management Service。更多資訊,請參見購買專屬KMS執行個體。
資料加密機制
Log Service支援如下兩種加密類型機制。
通過Log Service內建的服務祕密金鑰加密
特點:
-
簡便性:使用者無需額外操作,加密和密鑰管理完全由Log Service負責,可以減輕使用者的管理負擔。
-
密鑰獨立性:為每個LogStore產生獨立的資料加密金鑰,從而增強了資料安全性。
-
持久性:這種資料加密金鑰永不到期,確保了資料加密的穩定性和持久性。
-
支援的資料加密演算法:AES演算法(預設)、國密演算法SM4。
使用情境:
-
當使用者希望快速部署資料加密而無需自行管理密鑰時。
-
使用者對密鑰管理沒有特定要求,更傾向於讓服務提供者管理密鑰。
-
需要確保資料加密金鑰的長期有效性和穩定性。
適用群體:
小型企業或個人使用者,不希望處理複雜的密鑰管理工作,只希望使用安全、簡單的日誌加密方式。
通過使用者內建密鑰(BYOK)加密
特點:
-
控制性:使用者完全控制密鑰的生命週期,包括建立、輪轉和刪除等。
-
靈活性:使用者可以根據需要輕鬆更新或更換密鑰,增強了安全性和靈活性。
-
主動性:使用者需要主動管理密鑰,包括在KMS控制台上建立和授權主要金鑰(CMK)使用許可權。
使用情境:
-
當組織有嚴格的安全合規要求,需要自主控制加密金鑰時。
-
使用者希望能主動管理和輪轉加密金鑰,以滿足更高安全標準的情境。
-
使用者希望在密鑰被泄露或有其他安全風險時,可以迅速更換或刪除密鑰,以保護資料安全。
適用群體:
大型企業或金融機構,對資料保護和合規性有嚴格要求,需要使用自己的密鑰管理原則,並且有專門的團隊來管理相關密鑰。
當您的主要金鑰被刪除或禁用後,BYOK密鑰失效。
由KMS BYOK產生的主要金鑰失效後,LogStore上的所有讀寫請求都會失敗。
使用限制
配置資料加密時,您第一次選定加密機制後,後續您無法修改資料加密機制。也不支援修改密碼編譯演算法和加密類型,您只能通過enable參數開啟或者關閉加密功能,且後續更新LogStore時,需每次攜帶完整encrypt_conf參數。
例如,您第一次選擇的是通過Log Service內建的服務祕密金鑰加密機制,後續您無法修改為通過使用者內建密鑰(BYOK)加密方式。
通過Log Service內建的服務祕密金鑰加密
在調用CreateLogStore API建立LogStore或UpdateLogStore API修改LogStore時,添加如下encrypt_conf(配置資料加密欄位)參數完成加密設定。
encrypt_conf欄位的資料結構如下表所示。其中,user_cmk_info欄位不填。
|
名稱 |
類型 |
描述 |
樣本值 |
|---|---|---|---|
|
object |
加密配置資料結構。 |
||
| enable |
boolean |
是否啟用資料加密。
|
true |
| encrypt_type |
string |
密碼編譯演算法類型,支援 default、m4、sm4_ecb、sm4_cbc、sm4_gcm、aes_ecb、aes_cbc、aes_cfb、aes_ofb、aes_gcm。當 enable 為 true 時,此項必選。 |
default |
| user_cmk_info | EncryptUserCmkConf |
可選欄位。如果設定該欄位,則表示使用內建密鑰(BYOK),否則使用Log Service的服務密鑰。 |
{ "cmk_key_id" : "f5136b95-2420-ab31-xxxxxxxxx" "arn" : "acs:ram::13234:role/logsource" "region_id" : "cn-hangzhou" } |
通過密鑰管理的使用者內建密鑰(BYOK)加密
前提條件
已開通Key Management Service。更多資訊,請參見購買專屬KMS執行個體。
步驟一:BYOK授權
如果使用BYOK加密,則需先完成RAM授權。
-
登入RAM控制台。
-
建立可信實體為阿里雲服務的RAM角色,按如下說明配置。
角色類型選擇普通服務角色,角色名稱填寫
KMS-TEST,選擇受信服務為Log Service。 -
為RAM角色授權AliyunKMSReadOnlyAccess、AliyunKMSCryptoUserAccess許可權。更多資訊,請參見為RAM角色授權。
-
授予PassRole許可權。當使用主帳號操作BYOK加密配置時,可省略相關步驟。若使用RAM使用者操作BYOK加密配置,則需建立自訂權限原則,並管理RAM使用者的許可權。
下述策略中的Resource值,需要替換為步驟二建立的RAM角色的ARN。關於如何查看角色ARN,請參見如何查看RAM角色的ARN?。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::<account-id>:role/<role-name>" } ] }
步驟二:配置資料加密
配置後,不支援修改密碼編譯演算法和加密類型,您只能通過enable參數開啟或者關閉加密功能,且後續UpdateLogStore時,需每次攜帶完整encrypt_conf參數。
對於已建立的LogStore,您需要調用UpdateLogStore進行資料加密,添加encrypt_conf(配置資料加密欄位)參數完成加密設定。
調用UpdateLogStore前需要先使用GetLogStore擷取LogStore的原配置,在此基礎上修改後,作為參數傳入到UpdateLogStore中。
encrypt_conf欄位的資料結構如下表所示。其中,user_cmk_info欄位必須填寫。
|
名稱 |
類型 |
描述 |
樣本值 |
|---|---|---|---|
|
object |
加密配置資料結構。 |
||
| enable |
boolean |
是否啟用資料加密。
|
true |
| encrypt_type |
string |
密碼編譯演算法類型,支援 default、m4、sm4_ecb、sm4_cbc、sm4_gcm、aes_ecb、aes_cbc、aes_cfb、aes_ofb、aes_gcm。當 enable 為 true 時,此項必選。 |
default |
| user_cmk_info | EncryptUserCmkConf |
可選欄位。如果設定該欄位,則表示使用內建密鑰(BYOK),否則使用Log Service的服務密鑰。 |
{ "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),否則使用Log Service的服務密鑰。
{
"cmk_key_id" : "" # BYOK的主要金鑰ID,例如f5136b95-2420-ab31-xxxxxxxxx。
"arn" : "" # 步驟一建立RAM角色的ARN。
"region_id" : "" # 主要金鑰所在的地區ID。
}
}
相關文檔
涉及Log Service的API如下: