キーマテリアルを管理する必要がある場合は、key Management Service (KMS) インスタンスに外部キーマテリアルのオリジンを持つキーを作成し、独自のキーマテリアルをインポートできます。 このトピックでは、キーマテリアルを対称キーにインポートする方法について説明します。
ハードウェアキー管理またはソフトウェアキー管理タイプのKMSインスタンスでキーマテリアルのインポートが許可されていない場合、またはキーマテリアルのインポート時にエラーが返された場合は、テクニカルサポートにお問い合わせください。
特徴
キーはKMSの基本リソースです。 キーは、キーID、キーステータスなどのメタデータ、およびキーマテリアルで構成されます。 キーを作成するには、KMSによって生成されたキーマテリアルを使用するか、外部キーマテリアルを使用します。 外部キーマテリアルを使用してキーを作成する場合は、キーマテリアルをキーにインポートする必要があります。 この機能は、通常、自分のキーを持ってくる (BYOK) 機能として知られています。
次の表では、さまざまなタイプのキーが外部キーマテリアルをサポートするかどうかを示します。 キータイプの詳細については、「キータイプと仕様」をご参照ください。
: 外部キー素材をサポートします。
: 外部キーマテリアルをサポートしていません。
キータイプ | 外部キーマテリアルを対称キーにインポート | 外部キーマテリアルを非対称キーにインポート |
デフォルトキー |
|
|
ソフトウェア保護されたキー | √ | √ |
ハードウェア保護キー | √ | × |
使用上の注意
準拠した乱数ジェネレータを使用してキーマテリアルを生成するようにしてください。
最初にキーマテリアルをキーにインポートすると、キーはキーマテリアルに関連付けられます。 異なるキーマテリアルをキーにインポートすることはできません。
ビジネス要件に基づいて、同じキーマテリアルを複数回キーにインポートできます。
キーのキーマテリアルが期限切れまたは削除された場合は、キーの同じキーマテリアルを再インポートできます。 キーマテリアルをインポートした後は、キーマテリアルをエクスポートできません。 キーマテリアルを安全な場所に保存することを推奨します。
前提条件
KMSインスタンスが購入され、有効化されています。 詳細については、「KMSインスタンスの購入と有効化」をご参照ください。
キーマテリアルをCMKタイプのデフォルトキーにインポートする場合、KMSインスタンスを購入する必要はありません。
ステップ1: 外部キーマテリアル起源を持つ対称キーを作成する
キーマテリアルをインポートする前に、外部キーマテリアル起源を持つ対称キーを作成します。
CMKタイプのデフォルトキー
KMS コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。
デフォルトキー タブをクリックし、有効にするCMKタイプのデフォルトキーを見つけて、操作 列の 有効化 をクリックします。 キーを作成 パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
キーのエイリアス
キーのエイリアスを設定します。 エイリアスには、英数字、アンダースコア (_) 、ハイフン (-) 、およびスラッシュ (/) を使用できます。
説明
キーの説明を入力します。
詳細設定
重要な素材の起源。 外部 (キーマテリアルのインポート) を選択します。
説明読んで私は外部キーマテリアルを使用することの意味を理解していますを選択してください。
ソフトウェア保護されたキー
KMS コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。
キー タブで、インスタンス管理 ドロップダウンリストからソフトウェアキー管理タイプのKMSインスタンスのIDを選択し、キーを作成 をクリックします。
キーを作成 パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
キータイプ
キーのタイプ。 [対称キー] を選択します。
重要シークレットを暗号化するキーを作成する場合は、[対称キー] を選択します。
キー仕様
対称キー仕様: Aliyun_AES_256
キー使用
キーの使用法。 Encrypt/Decrypt: データを暗号化または復号します。
キーのエイリアス
キーのエイリアスを設定します。 エイリアスには、英数字、アンダースコア (_) 、ハイフン (-) 、およびスラッシュ (/) を使用できます。
タグ
キーに追加するタグ。 タグを使用してキーを分類および管理できます。 タグはキーと値のペアで構成されます。
説明タグキーまたはタグ値の長さは最大128文字で、英数字、スラッシュ (/) 、バックスラッシュ (\) 、アンダースコア (_) 、ハイフン (-) 、ピリオド (.) 、プラス記号 (+) 、等号 (=) 、コロン (:) 、アット記号 (@) 、およびスペースを使用できます。
タグキーをaliyunまたはacs: で始めることはできません。
キーごとに最大20個のキーと値のペアを設定できます。
説明
キーの説明を入力します。
詳細設定
ポリシー設定: 詳細については、「Overview」をご参照ください。
キーマテリアルソース: 外部 (キーマテリアルのインポート) を選択します。
説明読んで私は外部キーマテリアルを使用することの意味を理解していますを選択してください。
ハードウェア保護キー
KMS コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。
キー タブで、インスタンス管理 ドロップダウンリストからハードウェアキー管理タイプのKMSインスタンスのIDを選択し、キーを作成 をクリックします。
キーを作成 パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
キータイプ
キーのタイプ。 [対称キー] を選択します。
重要シークレットを暗号化するキーを作成する場合は、[対称キー] を選択します。
キー仕様
対称キー仕様: Aliyun_AES_256、Aliyun_AES_192、およびAliyun_AES_128
キー使用
キーの使用法。 有効な値:
Encrypt/Decrypt: データを暗号化または復号します。
署名 /検証: データに署名するか、デジタル署名を検証します。
キーのエイリアス
キーのエイリアスを設定します。 エイリアスには、英数字、アンダースコア (_) 、ハイフン (-) 、およびスラッシュ (/) を使用できます。
タグ
キーに追加するタグ。 タグを使用してキーを分類および管理できます。 タグはキーと値のペアで構成されます。
説明タグキーまたはタグ値の長さは最大128文字で、英数字、スラッシュ (/) 、バックスラッシュ (\) 、アンダースコア (_) 、ハイフン (-) 、ピリオド (.) 、プラス記号 (+) 、等号 (=) 、コロン (:) 、アット記号 (@) 、およびスペースを使用できます。
タグキーをaliyunまたはacs: で始めることはできません。
キーごとに最大20個のキーと値のペアを設定できます。
説明
キーの説明を入力します。
詳細設定
ポリシー設定: 詳細については、「Overview」をご参照ください。
キーマテリアルソース: 外部 (キーマテリアルのインポート) を選択します。
説明読んで私は外部キーマテリアルを使用することの意味を理解していますを選択してください。
キーを作成すると、キーは インポート待ち ステータスになります。
手順2: ラッピング公開鍵とインポートトークンをダウンロードする
キーマテリアルをキーにインポートするには、ラッピング公開キーとインポートトークンを取得する必要があります。 ラッピング公開鍵は、鍵材料を暗号化するために使用される。 インポートトークンを使用すると、キーマテリアルをインポートできます。
キーマテリアルをインポートするキーを見つけて、操作 列の 詳細 をクリックします。 キーマテリアル タブで、インポートのパラメーターを取得 をクリックします。
キー暗号化マテリアル ダイアログボックスで、パブリックキータイプ と 暗号化アルゴリズム を設定し、次へ をクリックします。
キータイプ
ラッピング公開キータイプ
暗号化アルゴリズム
CMKタイプのデフォルトキー
RSA_2048
RSAES_OAEP_SHA_1
RSAES_OAEP_SHA_256
RSAES_PKCS1_V1_5 (推奨なし)
ソフトウェア保護されたキー
RSA_2048
RSAES_OAEP_SHA_256
RSAES_PKCS1_V1_5 (推奨なし)
ハードウェア保護キー
RSA_2048
RSAES_OAEP_SHA_256
RSAES_PKCS1_V1_5 (推奨なし)
重要RSAES_PKCS1_V1_5: National Institute of Standards and Technology (NIST) によって開発されたTransitioning the Use of Cryptographic Algorithms and Key Lengthに従って、暗号化アルゴリズムは、2023年12月31日以降の鍵輸送に使用できない。
RSAES_OAEP_SHA_1: RFC 3447のPKCS #1で定義されているように、RSAES-OAEPのパディングモードでMGF1とSHA − 1を使用するRivest-Shamir-Adleman (RSA) 暗号化アルゴリズム。
RSAES_OAEP_SHA_256: RFC 3447のPKCS #1で定義されているRSAES-OAEPパディングモードでMGF1およびSHA-256を使用するRSA暗号化アルゴリズム。
ラッピング公開鍵とインポートトークンをダウンロードし、安全な場所に保存します。
パブリックキー形式
PEM形式 を選択した場合、公開鍵ファイルの名前はpublickey_******.pem形式になります。
DER形式 を選択した場合、公開鍵ファイルの名前はpublickey_******.bin形式になります。
トークンのインポート: インポートトークンファイルの名前は、Token_******.txt形式です。
重要インポートトークンは24時間有効で、有効期間内に繰り返し使用できます。 24時間後、新しいインポートトークンと新しい公開キーをダウンロードする必要があります。
ラッピング公開キーをインポートトークンと一緒に使用する必要があります。 異なるダウンロードからのラッピング公開鍵とインポートトークンを混在させることはできません。
ステップ3: ラッピング公開鍵を使用してキーマテリアルを暗号化する
Step 2: Download a wrapping public key and an import tokenでダウンロードされたラッピング公開キーと指定されたラッピングアルゴリズムを使用してキーマテリアルを暗号化します。
この例では、OpenSSLを使用してキーマテリアルを生成し、RSA (Rivest-Shamir-Adleman) 公開キーとRSAES_OAEP_SHA_256暗号化アルゴリズムを使用してキーマテリアルを暗号化します。
OpenSSLを使用して、キーマテリアルとしてランダムな32バイトの数値を生成します。 すでにキーマテリアルがある場合は、この手順をスキップしてください。
openssl rand -out KeyMaterial.bin 32
指定された暗号化アルゴリズムを使用してキーマテリアルを暗号化します。
openssl pkeyutl -encrypt -in KeyMaterial.bin -inkey PublicKey.bin -keyform DER -pubin -out EncryptedKeyMaterial.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256
説明サンプルコードでは、RSAES_OAEP_SHA_256暗号化アルゴリズムが使用されています。
サンプルコードでは、公開鍵ファイルはDER形式です。 公開鍵ファイルをダウンロードするときにPEM形式を選択した場合、サンプルコードの
-keyform DER
を-keyform PEM
に置き換える必要があります。PublicKey.binを、手順2: ラッピング公開鍵とインポートトークンのダウンロードでダウンロードされる公開鍵ファイルの名前に置き換えます。
暗号化されたキーマテリアルをBase64でエンコードし、エンコードされたキーマテリアルをテキストファイルに保存します。
openssl enc -e -base64 -A -in EncryptedKeyMaterial.bin -out EncryptedKeyMaterial_base64.txt
説明サンプルコードでは、EncryptedKeyMaterial_base64.txtファイルにキーマテリアルが含まれています。
ステップ4: キー素材のインポート
キーの詳細ページで、[キーマテリアル] タブの キーマテリアルのインポート をクリックします。 ラップされたキーマテリアルのインポート ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。
パラメーター | 説明 |
包まれたキーマテリアル | 手順3: ラッピング公開鍵を使用してキーマテリアルを暗号化するで生成されたキーマテリアルファイルをアップロードします。 |
トークンのインポート | 「手順2: ラッピング公開鍵とインポートトークンのダウンロード」でダウンロードされたインポートトークンファイルをアップロードします。 |
有効期限が切れたキーマテリアル | 有効期限はありません を選択するか、有効期限を指定できます。 重要 キーマテリアルに有効期限を指定した場合、有効期限に達するとKMSはキーマテリアルを削除し、キーマテリアルを使用できなくなります。 キーマテリアルを再利用する場合は、同じキーマテリアルをキーに再インポートできます。 |
キーマテリアルをインポートすると、キーのステータスが インポート待ち から 有効化 に変わります。
よくある質問
キー素材を削除できますか?
はい、キーマテリアルを削除できます。
インポートしたキーマテリアルが期限切れまたは削除された後、同じキーマテリアルを再インポートするまで、キーマテリアルを使用するキーは使用できなくなります。
キー素材を直接削除
KMSコンソール: キーの詳細ページで、キーマテリアル タブの キーマテリアルを削除 をクリックします。
KMS API: DeleteKeyMaterial操作を呼び出して、キーマテリアルを削除します。 この操作ではキーは削除されません。
KMSがキーマテリアルを削除
キーマテリアルをインポートするときに、キーマテリアルの有効期限を指定します。 有効期限に達すると、KMSはキーマテリアルを削除します。
同じキーマテリアルを再インポートするにはどうすればよいですか?
キーのキーマテリアルが期限切れまたは削除された後、同じキーマテリアルを再インポートして、キーの使用を続行できます。
期限切れのキーマテリアルを削除します。
キーの詳細ページで、キーマテリアル タブをクリックし、キーマテリアルを削除 をクリックします。
ラッピング公開キーとインポートトークンを再ダウンロードします。 詳細については、「手順2: ラッピング公開鍵とインポートトークンのダウンロード」をご参照ください。
説明キーラッピングプロセスは、キーマテリアルの内容には影響しません。 異なるラッピング公開キーと異なるラッピングアルゴリズムを使用して、同じキーマテリアルを再インポートできます。
ラッピング公開キーを使用して、キーマテリアルを暗号化します。 詳細については、「手順3: ラッピング公開キーを使用してキーマテリアルを暗号化する」をご参照ください。
説明キーマテリアルは、期限切れのキーマテリアルと同じでなければなりません。
インポートトークンを使用して、暗号化されたキーマテリアルをインポートします。 詳細については、「手順4: キーマテリアルのインポート」をご参照ください。
キーのキー素材の起源を表示するにはどうすればよいですか?
方法1: KMSコンソールを使用する
デフォルトキー: キー管理 ページで、デフォルトキー タブをクリックし、管理するキーを見つけて、操作 列の 詳細 をクリックします。 詳細ページで、キーマテリアルソースの値を表示します。
ソフトウェア保護されたキーとハードウェア保護されたキー: キー管理 ページで、キー タブをクリックし、インスタンス管理 ドロップダウンリストからKMSインスタンスのIDを選択し、管理するキーを見つけて、操作 列の 詳細 をクリックします。 詳細ページで、キーマテリアルソースの値を表示します。
方法2: DescribeKey操作を呼び出す
Origin
の値がEXTERNAL
の場合、キーマテリアルがインポートされます。Origin
の値がAliyun_KMS
の場合、KMSはキーマテリアルを生成しました。
外部キーマテリアルを使用するキーを回転させるにはどうすればよいですか?
KMSは、外部キーマテリアルを使用するキーの自動ローテーションをサポートしていません。 外部キーマテリアルを使用するキーを回転させる場合は、別のキーを作成し、そのキーに別のキーマテリアルをインポートする必要があります。