MaxCompute with Key Management Service (KMS) を使用してキーを管理できます。 このトピックでは、NEW_WRAPPED_KEYSET関数を使用してラップされたキーセットを作成する方法について説明します。
背景情報と前提条件
MaxComputeとKMSを使用してキーを管理できます。 KMSキーに基づいてキーセットを暗号化することで、ラップされたキーセットを生成できます。 ラップされたキーセットを生成した後、KMSキーに基づく後続のデータ暗号化および復号化のために、ラップされたキーセットを手動で記録および保存する必要があります。 暗号化または復号化プロセスでは、すべてのキーがシステムによって自動的に生成されます。 暗号化と復号化に使用される元のキーを表示することはできません。 このようにして、データをより安全な方法で暗号化または復号することができる。 NEW_WRAPPED_KEYSET関数は、KMSカスタマーマスターキー (CMK) ARNを使用してMaxComputeにラップされたキーセットを作成できるロールのAlibaba Cloud Resource Name (ARN) を想定します。 ロールARNは、role_arnによって指定される。 KMS CMK ARNは、kms_cmk_arnによって指定される。 この関数は、他のAlibaba Cloudアカウントに、role_chainに基づいてラップされたキーセットを使用する権限を付与するためにも使用されます。
NEW_WRAPPED_KEYSET関数を使用する前に、次の前提条件が満たされていることを確認してください。
KMSがアクティブ化され、KMSインスタンスが作成されます。
KMSキーが作成され、kms_cmk_arnで指定されたキーARNが取得されます。
RAMロールが作成され、MaxComputeがKMSへのアクセスを許可されます。 RAMロールのARNが取得されます。 ロールARNは、role_arnによって指定される。
構文
binary NEW_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <key_type>
[, string <description>, [string <role_chain>]])Parameters
kms_cmk_arn: 必須です。 このパラメーターには、キーセットの暗号化に使用されるKMS CMKのARNを指定します。 パラメーター値の形式は
'acs:kms:<RegionId >:< UserId>:key/<CmkId>'です。 RegionIdはリージョンIDを指定し、UserIdはユーザーIDを指定し、CmkIdはCMK IDを指定します。 ARNは、KMSコンソールの [キーの詳細] ページから取得できます。role_arn: 必須です。 このパラメーターには、KMSに対する権限を持つRAMロールのARNを指定します。 ロールはMaxComputeによって引き受けられる必要があります。 パラメーター値の形式は
'acs:ram :${< userAID >}: role/${< roleName>}'です。 userAIDはユーザーIDを指定し、roleNameはロール名を指定します。key_type: 必須です。 このパラメータは、新しく生成されたキーセット内のキーのアルゴリズムタイプを指定します。 有効な値: AES-GCM-256、AES-SIV-CMAC-128、およびAES-SIV-CMAC-256。
description: オプション。 このパラメーターは、キーの説明を提供します。
role_chain: オプションです。 このパラメーターには、ユーザー権限付与の役割チェーンを指定します。 パラメータ値は、
'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3 >},...'の形式である。 ロールチェーンを使用して、Alibaba Cloudアカウント全体でラップされたキーセットを呼び出すことができます。
戻り値
BINARY型のラップされたキーセットが返されます。 HEX関数を使用して、ビジネス要件に基づいて、BINARY型のラップされたキーセットをSTRING型のキーセットに変換できます。 HEX関数の詳細については、「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 | +-----+
関連ドキュメント
関連ドキュメント | 説明 |
キーセット関連の暗号化および復号化関数の使用方法について説明します。 | |
NEW_KEYSET関数について説明します。 この関数は、指定されたアルゴリズムタイプに基づいてキーセットを作成するために使用されます。 | |
ADD_KEY_TO_KEYSET関数について説明します。 この関数は、キーセットにキーを追加し、そのキーをマスターキーとして設定するために使用されます。 | |
KEYSET_TO_JSON関数について説明します。 この関数は、BINARY型のキーセットを読み取り可能なJSON文字列に変換するために使用されます。 変換後、キーセットの詳細を表示できます。 | |
KEYSET_FROM_JSON関数について説明します。 この関数は、JSON型のキーセットをBINARY型のキーセットに変換するために使用されます。 | |
ROTATE_KEYSET関数について説明します。 この機能により、システムは自動的に新しいキーを生成し、新しいキーをマスターキーとして構成することができます。 | |
ROTATE_WRAPPED_KEYSET関数について説明します。 この関数は、暗号化されたキーセットを復号し、キーローテーションを実装し、新しいキーを使用してデータを暗号化するために使用されます。 | |
USE_WRAPPED_KEYSET関数について説明します。 この関数は、ラップされたキーセットを、暗号化または復号化関数のパラメータとして使用される基本キーセットに変換するために使用されます。 USE_WRAPPED_KEYSET関数を使用して、ラップされたキーセットに関する情報を取得し、その後のキーセットのメンテナンスのために情報を保存することもできます。 | |
ENHANCED_SYM_ENCRYPT関数について説明します。 この関数は、指定されたキーセットを使用してデータを暗号化します。 | |
ENHANCED_SYM_DECRYPT関数について説明します。 この関数は、指定されたキーセットを使用してデータを復号します。 |