MaxCompute支援結合Key Management Service(KMS)做密鑰管理,本文為您介紹如何使用封裝密鑰集合函式NEW_WRAPPED_KEYSET
建立封裝密鑰集。
背景與前提
MaxCompute支援結合Key Management Service做密鑰管理,通過KMS金鑰組產生的密鑰集(KEYSET)再次進行加密,產生封裝密鑰集。封裝密鑰集需要您在產生後自行記錄儲存,使用封裝密鑰集對資料加解密,需要結合KMS密鑰進行,此過程所有密鑰由系統自動產生,不可查看原始用於資料加解密的密鑰,可以更加安全地實現資料加解密。NEW_WRAPPED_KEYSET
函數將有權使用KMS使用者主要金鑰資源名稱(kms_cmk_arn)角色的role_arn授權給MaxCompute,用來建立一個封裝密鑰集,也支援通過角色鏈(role_chain)方式授權給其他阿里雲帳號的角色使用封裝密鑰集的許可權。
使用NEW_WRAPPED_KEYSET
函數前需要完成以下操作:
開通KMS建立密鑰執行個體。
建立KMS密鑰並擷取密鑰ARN資訊(kms_cmk_arn)。
建立RAM角色並授權MaxCompute訪問KMS,擷取建立角色的ARN資訊(role_arn)。
操作詳情請參見開通KMS並完成配置。
命令格式
binary NEW_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <key_type>
[, string <description>, [string <role_chain>]])
參數說明
kms_cmk_arn: 必填,加密KEYSET的KMS使用者主要金鑰資源名稱,格式為
'acs:kms:<RegionId>:<UserId>:key/<CmkId>'
,包含地區資訊、使用者ID、使用者主要金鑰ID,您可以在Key Management Service控制台的密鑰詳情頁面擷取ARN,操作詳情請參見開通KMS並完成配置。role_arn:必填,擁有KMS許可權的RAM角色的ARN資訊,該角色需授權給MaxCompute,格式為
'acs:ram:${<userAID>}:role/${<roleName>}'
,包含使用者ID、角色名稱,擷取請參見開通KMS並完成配置。key_type:必填,新產生的KEYSET密鑰演算法類型。目前支援:AES-GCM-256、AES-SIV-CMAC-128和AES-SIV-CMAC-256。
description: 可選,密鑰的描述資訊。
role_chain:可選,使用者授權角色鏈,格式為
'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'
。通過角色鏈的方式,支援跨阿里雲帳號的封裝密鑰集調用。
傳回值說明
返回BINARY類型的加密KEYSET,若有需要您可以通過HEX函數將BINARY類型轉換為STRING類型,詳情請參見HEX。
使用樣本
建立封裝密鑰集:
select hex(NEW_WRAPPED_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz****************1t','acs:ram::1**************7:role/kms', 'AES-GCM-256', 'hello'));
返回結果樣本如下:
+-----+ | _c0 | +-----+ | 613256354C576836656A59314D6D59344E7A6B7A624452754D6D3434627A49786443317A655859786358426F4E6A4D78434A373434582F54756C5A547A4E69337562786F4B3543412F616655573262786D345A41306B464C674A2F5758324F4E514E346746306F303236376D35335A6471797237366E57565A6836387A52687A4A673945784B6E677568794A376E6F4A68573677684B5A555A42786E4A383742536C4D46326A374F71474F4C414A6B665779694557394D58664876576E306C6D49777052746A77325643707A4259517277327944354343396C50586F31346A4351506253612F3044394C4C6E6E622F747A6B57316E4F564A6C5359354B35526130537565584F33507856773D | +-----+
建立封裝密鑰集,並允許其他角色調用:
select hex(NEW_WRAPPED_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz****************1t','acs:ram::1**************7:role/kms', 'AES-GCM-256', 'hello','acs:ram::1**************7:role/kms1'));
返回結果樣本如下:
+-----+ | _c0 | +-----+ | 613256354C576836656A59314D6D59344E7A6B7A624452754D6D3434627A49786443317A655859786358426F4E6A4D784D59716D4C767954716B3562444779574C7A387965774966432F516B4A59616F57623648364A546A62434F7A7A42634F517A687A6E526F36543866714E4E63555546566874696C4A3947713556667A2F7851757A55686467504C517A2B6C433337485A535449744B53714E396B6639587666487A4D7957643842334D3179392F67423774726835437A556F786A74614571612F5A3543447668524A7731426566525647796A77574974476243475A4E594550714E767963532B333432743347396B714777626C54336F57706939706E437A667A4E4D6F4C63714F453D | +-----+