すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:USE_WRAPPED_KEYSET

最終更新日:Jan 17, 2025

MaxCompute with Key Management Service (KMS) を使用してキーを管理できます。 このトピックでは、USE_WRAPPED_KEYSET関数について説明します。 この関数を使用すると、ラップされたキーセットを、データを暗号化または復号化するための暗号化または復号化関数のパラメーターとして使用される基本キーセットに変換できます。

背景情報と前提条件

MaxComputeとKMSを使用してキーを管理できます。 KMSキーに基づいて既存のキーセットを暗号化することで、ラップされたキーセットを生成できます。 USE_WRAPPED_KEYSET関数は、NEW_WRAPPED_KEYSET関数を使用して生成されたラップされたキーセットを基本キーセットに変換します。 基本キーセットは、データを暗号化または復号化するための暗号化または復号化関数のパラメータとして使用される。 USE_WRAPPED_KEYSET関数を使用して、ラップされたキーセットに関する情報を取得し、その後のメンテナンスのために情報を保存することもできます。

USE_WRAPPED_KEYSET関数を使用する前に、次の前提条件が満たされていることを確認してください。

  • ラップされたキーセットは、NEW_WRAPPED_keyset関数を使用して生成されます。 詳細については、「NEW_WRAPPED_KEYSET」をご参照ください。

  • KMSキーが作成され、キーのAlibaba Cloud Resource Name (ARN) が取得されます。 キーARNは、kms_cmk_arnによって指定される。 RAMロールには、新しいキーを使用する権限が付与されます。

構文

binary USE_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset> [,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はロール名を指定します。

  • wrapp_keyset: 必須です。 このパラメーターは、既存のラップされたキーセットを指定します。

  • role_chain: オプションです。 このパラメーターには、ユーザー権限付与の役割チェーンを指定します。 パラメータ値は、'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3 >},...' の形式である。 ロールチェーンを使用して、Alibaba Cloudアカウント全体でラップされたキーセットを呼び出すことができます。

戻り値

STRUCTタイプの感度が低下したキーセットが返されます。 get_json_object関数を使用して、ビジネス要件に基づいてキーセット関連のフィールドを取得できます。

説明

次のサンプルコードには変数が含まれています。 スクリプトモードでコードを実行するか、SQL文の変数を実際の値に置き換える必要があります。

ラップされたキーセットのキーアルゴリズム情報を取得します。

@kms_resource_keyId := 'acs:kms:${<RegionId>}:${<UserId>}:key/${<CmkId>}';
@role_arn := 'acs:ram:${<UserId>}:role/${<roleName>}';
@origin_key := unhex('<wrapped_keyset>');
@role_chain := 'acs:ram:${<UserAId>}:role/${<roleName2>},acs:ram:${<UserBId>}:role/${<roleName3>}';
@use_keyset_new := USE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, @role_chain);

select get_json_object(get_json_object(use_keyset_new.wrapped_keyset_info,'$.masked_keyset'), '$.key[0].key_meta_data.type');

次の応答が返されます。

+-----+
| _c0 |
+-----+
| AES-GCM-256 |
+-----+