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

MaxCompute:REWRAP_KEYSET

最終更新日:Jan 17, 2025

MaxCompute with Key Management Service (KMS) を使用してキーを管理できます。 このトピックでは、REWRAP_KEYSET関数を使用して、指定されたKMSキーを使用してラップされたキーセットを再暗号化する方法について説明します。

背景情報と前提条件

MaxComputeとKMSを使用してキーを管理できます。 KMSキーに基づいてキーセットを暗号化することで、ラップされたキーセットを生成できます。 REWRAP_KEYSET関数は、新しいKMSキーを使用して、NEW_WRAPPED_keyset関数を使用して生成されたラップされたキーセットを再暗号化します。

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

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

  • KMSキーが作成され、kms_cmk_arnで指定されたキーARNが取得されます。 RAMロールには、新しいキーを使用する権限が付与されます。

構文

binary REWRAP_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キーと新しいKMSキーの両方に対する権限を持つRAMロールのARNを指定します。 RAMロールは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アカウント全体でラップされたキーセットを呼び出すことができます。

戻り値

BINARY型のラップされたキーセットが返されます。 HEX関数を使用して、ビジネス要件に基づいて、BINARY型のラップされたキーセットをSTRING型のキーセットに変換できます。 HEX関数の詳細については、「HEX」をご参照ください。

説明

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

  • ラップされたキーセットを再暗号化します。

    @origin_key := unhex('<wrapped_keyset>'); 
    select hex(REWRAP_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz******************', 'acs:ram::1**************7:role/kms', @origin_key));
  • ラップされたキーセットを再暗号化し、他のAlibaba Cloudアカウントがラップされたキーセットを呼び出すことを許可します。

    @origin_key := unhex('<wrapped_keyset>');
    @role_chain := 'acs:ram:${<UserAId>}:role/${<roleName2>},acs:ram:${<UserBId>}:role/${<roleName3>}';
    select hex(REWRAP_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz******************', 'acs:ram:${<UserId>}:role/${<roleName>}', @origin_key, @role_chain));