用戶主密鑰包含密鑰元數據(密鑰ID、密鑰別名、描述、密鑰狀態與創建日期)和用于加解密數據的密鑰材料。
當用戶使用KMS管理控制臺創建用戶主密鑰時,KMS系統會自動為該用戶主密鑰生成密鑰材料。
當用戶希望使用自己的密鑰材料時,可通過KMS管理控制臺的導入密鑰功能創建密鑰材料為空的用戶主密鑰,并將自己的密鑰材料導入該用戶主密鑰中。
注意事項
當您選擇密鑰材料來源為外部,使用您自己導入的密鑰材料時,需要注意以下幾點:
請確保您使用了符合安全要求的隨機源生成密鑰材料。
在使用導入密鑰時,需要對自己密鑰材料的可靠性負責。
請保存密鑰材料的原始備份,以便在意外刪除密鑰材料時,能及時將備份的密鑰材料重新導入KMS。
功能特性
可用性與持久性
在將密鑰材料導入KMS之前,用戶需要確保密鑰材料的可用性和持久性。
導入的密鑰材料與通過KMS創建密鑰時自動生成的密鑰材料的區別,如下表所示。
密鑰材料來源 說明 外部導入 支持手動刪除密鑰材料,但該主密鑰及其元數據仍然保留。
導入密鑰材料時,可以設置密鑰材料過期時間,密鑰材料過期后,KMS將自動刪除密鑰材料,但該主密鑰及其元數據仍然保留。
導入的密鑰材料被刪除后,可以再次導入相同的密鑰材料使得CMK再次可用。用戶需自行備份密鑰材料,以便密鑰材料失效或誤刪除時重新導入該密鑰材料。KMS創建 不能手動刪除密鑰材料,不能設置密鑰材料過期時間。
密鑰材料只能通過設置CMK計劃刪除時間后,到期后隨CMK一并刪除。關聯性
當您將密鑰材料導入CMK時,該CMK與該密鑰材料永久關聯,不能將其他密鑰材料導入該CMK中,即便密鑰材料已經過期或者被刪除。
獨立性
CMK具有唯一性,即您使用CMK加密的數據,無法使用其他CMK進行解密,即便這些CMK都使用相同的密鑰材料。
限制條件
AES_256類型的CMK需導入256位對稱密鑰作為密鑰材料。
從KMS獲取到的導入令牌與加密密鑰材料的公鑰具有綁定關系,一個令牌只能為其生成時指定的主密鑰導入密鑰材料。導入令牌的有效期為24小時,在有效期內可以重復使用,失效以后需要獲取新的導入令牌和加密公鑰。
操作步驟-導入密鑰材料
創建用戶主密鑰,其中密鑰材料來源選擇“外部”并勾選“我了解使用外部密鑰材料的方法和意義”。
獲取導入密鑰材料參數。
在密鑰列表,單擊“密鑰ID”,進入“密鑰詳情”,在密鑰材料區域,單擊獲取導入密鑰材料參數。
在獲取導入密鑰材料參數對話框,選擇“公鑰類型”、“加密算法”,單擊“確定”。
配置項說明:
配置項 說明 公鑰類型 取值:RSA_2048(默認) 加密算法 取值:
RSAES_PKCS1_V1_5
RSAES_OAEP_SHA_1
RSAES_OAEP_SHA_256
在獲取導入密鑰材料參數對話框,下載“加密公鑰”和“導入令牌”,然后單擊“確定”。
注意
導入令牌存在過期時間,請關注過期時間,及時進行導入。
使用OPENSSL加密密鑰材料。
加密公鑰是一個2048比特的RSA公鑰,使用的加密算法需要與獲取導入密鑰材料參數時指定的一致。由于加密公鑰經過Base64編碼,因此在使用時需要先進行Base64解碼。
您可以通過OPENSSL加密公鑰,您可通過以下步驟獲取加密的密鑰材料。
創建一個密鑰材料,使用OPENSSL產生一個32字節的隨機數。
將加密公鑰進行Base64解碼。
根據指定的加密算法(以RSAES_OAEP_SHA_1為例)加密密鑰材料。
將加密后的密鑰材料進行Base64編碼,保存為文本文件。
代碼示例:
openssl rand -out KeyMaterial.bin 32 openssl enc -d -base64 -A -in PublicKey_base64.txt -out PublicKey.bin openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt采用OpenSSL加密密鑰材料,支持RSAES_OAEP_SH A_256、RSAES_PKCS1_V1 _5 和RSAES_OAEP_SH A_1 三種密鑰算法。
命令代碼示例如下表所示:
密鑰算法 OpenSSL加密生成密鑰材料命令代碼示例 RSAES_OAEP_SHA_256 openssl pkeyutl -in PlaintextKeyMaterial.bin -inkey PublicKey.bin -out EncryptedKeyMaterial.bin -keyform der -pubin –encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256RSAES_PKCS1_V1_5 openssl rsautl –encrypt -in PlaintextKeyMaterial.bin –pkcs -inkey PublicKey.bin -keyform der –pubin -out EncryptedKeyMaterial.binRSAES_OAEP_SHA_1 openssl rsautl -encrypt -in KeyMaterial.bin -oaep -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin導入密鑰材料。
在密鑰列表,在密鑰列表,單擊“密鑰ID” ,進入“密鑰詳情”,在“密鑰管理材料區域”,單擊導入密鑰材料。
在導入密鑰材料對話框,上傳加密密鑰材料和導入令牌, 單擊確定 。
設置密鑰材料過期時間,單擊“確定”。導入密鑰材料成功后,密鑰狀態從待導入更新為“啟用中”。
操作步驟-刪除密鑰材料
登錄密鑰管理服務控制臺。
在頁面左上角的地域下拉列表,選擇密鑰所在的地域。
在密鑰列表,點擊密鑰ID ,進入密鑰詳情 ,在密鑰材料區域,單擊刪除密鑰材料 。
在刪除密鑰材料對話框,單擊“確定”。密鑰材料刪除成功后,密鑰狀態從啟用中更新為“待導入”。