キーマテリアルを管理および制御するために、Key Management Service (KMS) インスタンスで外部オリジンを持つキーを作成できます。その後、独自のキーマテリアルをインポートできます。このトピックでは、対称キーにキーマテリアルをインポートする方法について説明します。
ソフトウェアキー管理インスタンスまたはハードウェアキー管理インスタンスがキーマテリアルのインポートをサポートしていない場合、またはインポート中にエラーが発生した場合は、Alibaba Cloud テクニカルサポートに連絡してインスタンスをスペックアップしてください。
機能紹介
キーは KMS の基本的なリソースです。キーは、キー ID、キーステータスなどの基本的なメタデータ、およびキーマテリアルで構成されます。キーを作成するときに、KMS にキーマテリアルを生成させるか、外部ソースのキーマテリアルを使用するかを選択できます。外部ソースを選択した場合は、外部キーマテリアルをキーにインポートする必要があります。この機能は、Bring Your Own Key (BYOK) と呼ばれることがよくあります。
次の表に、キーマテリアルのインポートをサポートする KMS キー管理タイプを示します。キー管理タイプの詳細については、「キー管理タイプとキー仕様」をご参照ください。
: 対応するキーマテリアルのインポートがサポートされていることを示します。
: 対応するキーマテリアルのインポートがサポートされていないことを示します。
キー管理タイプ | 対称キーマテリアルのインポート | 非対称キーマテリアルのインポート |
デフォルトキー |
|
|
ソフトウェア保護キー | √ | √ |
ハードウェア保護キー | √ | × |
使用上の注意
準拠した乱数ジェネレータを使用してキーマテリアルが生成されていることを確認してください。
キーにキーマテリアルをインポートすると、キーはそのキーマテリアルに永続的にバインドされます。異なるキーマテリアルをキーにインポートすることはできません。
同じキーマテリアルを KMS キーに複数回インポートできますが、同じ KMS キーに異なるキーマテリアルをインポートすることはできません。
キーのキーマテリアルが有効期限切れまたは削除された場合、同じキーマテリアルを再インポートしてキーを再び利用可能にすることができます。インポートされたキーマテリアルをエクスポートすることはできません。したがって、キーマテリアルは安全に保管してください。
前提条件
KMS インスタンスを購入して有効化する必要があります。詳細については、「KMS インスタンスの購入と有効化」をご参照ください。
デフォルトのカスタマーマスターキーのキーマテリアルをインポートするために KMS インスタンスを購入する必要はありません。
ステップ 1: 外部キーマテリアルオリジンを持つ対称キーの作成
キーマテリアルをインポートする前に、外部キーマテリアルオリジンを持つ対称キーを作成する必要があります。
デフォルトキー (カスタマーマスターキー)
KMS コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
デフォルトキー タブで、カスタマーマスターキーの 操作 列にある 有効化 をクリックします。次に、キーを作成 タブでパラメーターを設定し、[OK] をクリックします。
設定項目
説明
キーのエイリアス
キーの識別子。文字、数字、アンダースコア (_)、ハイフン (-)、およびフォワードスラッシュ (/) を含めることができます。
Description
キーの説明。
Advanced Settings
キーマテリアルのオリジン。外部 (キーマテリアルのインポート) を選択します。
説明[外部キーマテリアルを使用する方法と影響を理解しています] を読んで選択します。
ソフトウェア保護キー
KMS コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
キー タブで、インスタンス管理 リストからソフトウェアキー管理インスタンスを選択し、キーを作成 をクリックします。
キーを作成 パネルでパラメーターを設定し、[OK] をクリックします。
設定項目
説明
キータイプ
[対称キー] を選択します。
重要シークレット値を暗号化するためのキーを作成する場合は、[対称キー] を選択します。
キー仕様
キー使用
ENCRYPT/DECRYPT: キーはデータの暗号化と復号に使用されます。
キーのエイリアス
キーのエイリアス。文字、数字、アンダースコア (_)、ハイフン (-)、およびフォワードスラッシュ (/) を含めることができます。
タグ
キーを分類および管理するためのキーのタグ。各タグは、タグキーとタグ値を含むキーと値のペアで構成されます。
説明タグキーまたはタグ値は最大 128 文字で、文字、数字、フォワードスラッシュ (/)、バックスラッシュ (\)、アンダースコア (_)、ハイフン (-)、ピリオド (.)、プラス記号 (+)、等号 (=)、コロン (:)、アットマーク (@)、およびスペースを含めることができます。
タグキーは
aliyunまたはacs:で始めることはできません。各キーに最大 20 個のキーと値のペアを設定できます。
Description
キーの説明。
Advanced Settings
ポリシー設定: 詳細については、「キーポリシーの概要」をご参照ください。
キーマテリアルソース: 外部 (キーマテリアルのインポート) を選択します。
説明[外部キーマテリアルを使用する方法と影響を理解しています] を読んで選択します。
ハードウェア保護キー
KMS コンソールにログインします。上部のナビゲーションバーでリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
キー タブで、インスタンス管理 にハードウェアキー管理インスタンスを選択し、キーを作成 をクリックします。
キーを作成 パネルでパラメーターを設定し、[OK] をクリックします。
設定項目
説明
キータイプ
[対称キー] を選択します。
重要シークレット値を暗号化するためのキーを作成する場合は、[対称キー] を選択します。
キー仕様
キー使用
キーの目的。有効な値:
Encrypt/Decrypt: データの暗号化と復号。
Sign/Verify: デジタル署名の生成と検証。
キーのエイリアス
キーのエイリアス。文字、数字、アンダースコア (_)、ハイフン (-)、およびフォワードスラッシュ (/) を含めることができます。
タグ
キーを分類および管理するためのキーのタグ。各タグは、タグキーとタグ値を含むキーと値のペアで構成されます。
説明タグキーまたはタグ値は最大 128 文字で、文字、数字、フォワードスラッシュ (/)、バックスラッシュ (\)、アンダースコア (_)、ハイフン (-)、ピリオド (.)、プラス記号 (+)、等号 (=)、コロン (:)、アットマーク (@)、およびスペースを含めることができます。
タグキーは
aliyunまたはacs:で始めることはできません。各キーに最大 20 個のキーと値のペアを設定できます。
Description
キーの説明。
Advanced Settings
ポリシー設定: 詳細については、「キーポリシーの概要」をご参照ください。
キーマテリアルソース: 外部 (キーマテリアルのインポート) を選択します。
説明[外部キーマテリアルを使用する方法と影響を理解しています] を読んで選択します。
キーは インポート待ち のステータスで作成されます。
ステップ 2: ラッピング公開鍵とインポートトークンのダウンロード
キーマテリアルのインポートに必要なパラメーターは、ラッピング公開鍵とインポートトークンで構成されます。ラッピング公開鍵は、インポートプロセス中にキーマテリアルを保護するために暗号化するために使用されます。インポート操作を実行するには、インポートトークンが必要です。
ターゲットキーを見つけ、操作 列の 詳細 をクリックします。次に、キーマテリアル セクションで、インポートのパラメーターを取得 をクリックします。
キー暗号化マテリアル ダイアログボックスで、パブリックキータイプ と 暗号化アルゴリズム を選択し、次へ をクリックします。
キー管理タイプ
ラッピング公開鍵タイプ
暗号化アルゴリズム
デフォルトキー (カスタマーマスターキー)
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: 米国国立標準技術研究所 (NIST) は、そのガイドライン 暗号アルゴリズムとキー長の移行 で、この暗号化アルゴリズムは 2023 年 12 月 31 日以降、トランスポートキーの暗号化に使用すべきではないと述べています。
RSAES_OAEP_SHA_1: RFC 3447/PKCS#1 で定義されている RSAES-OAEP スキームを使用する RSA 暗号化で、MGF1 と SHA-1 を使用します。
ラッピング公開鍵とインポートトークンをダウンロードし、安全に保管します。
パブリックキー形式:
PEM形式: ダウンロードされたファイルのデフォルト名は publickey_******.pem です。
DER形式: ダウンロードされたファイルのデフォルト名は publickey_******.bin です。
トークンのインポート: ダウンロードされたファイルのデフォルト名は token_******.txt です。
重要インポートトークンは 24 時間有効で、有効期間内に複数回使用できます。有効期限が切れた後は、新しいインポートトークンと公開鍵を取得する必要があります。
ラッピング公開鍵とインポートトークンは一緒に使用する必要があります。あるダウンロードのラッピング公開鍵を別のダウンロードのインポートトークンと組み合わせて使用することはできません。
ステップ 3: ラッピング公開鍵を使用してキーマテリアルを暗号化する
ステップ 2: ラッピング公開鍵とインポートトークンのダウンロード でダウンロードしたラッピング公開鍵と指定された暗号化アルゴリズムを使用して、キーマテリアルを暗号化します。
次の例は、OpenSSL を使用してキーマテリアルを生成し、RSA 公開鍵と 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 ファイルには、KMS にインポートするキーマテリアルが含まれています。
ステップ 4: キーマテリアルのインポート
キーの詳細ページで、キーマテリアルのインポート をクリックします。ラップされたキーマテリアルのインポート ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。
設定項目 | 説明 |
包まれたキーマテリアル | ステップ 3: ラッピング公開鍵を使用してキーマテリアルを暗号化する で生成されたキーマテリアルファイルをアップロードします。 |
トークンのインポート | ステップ 2: ラッピング公開鍵とインポートトークンのダウンロード でダウンロードしたトークンファイルをアップロードします。 |
有効期限が切れたキーマテリアル | 有効期限はありません を選択するか、カスタムの有効期限を指定できます。 重要 キーマテリアルに有効期限を設定すると、KMS は指定された時間に期限切れのキーマテリアルを削除します。キーマテリアルを使用できなくなります。使用を再開するには、同じキーマテリアルをキーに再インポートできます。 |
キーマテリアルがインポートされると、キーステータスが インポート待ち から 有効化 に変わります。
よくある質問
キーマテリアルを削除できますか?
削除はサポートされています。
インポートされたキーマテリアルが有効期限切れまたは削除されると、そのキーは使用できなくなります。キーを再度使用するには、同じキーマテリアルを再インポートする必要があります。
キーマテリアルの手動削除
コンソールで、キーの詳細ページの キーマテリアル セクションにある キーマテリアルを削除 をクリックします。
API 操作: DeleteKeyMaterial 操作を呼び出してキーマテリアルを削除します。この操作ではキーは削除されません。
有効期限切れ時にキーマテリアルが自動的に削除されるように設定する
キーマテリアルをインポートするときに、有効期限を設定できます。KMS は指定された時間の経過後にキーマテリアルを削除します。
同じキーマテリアルを再インポートするにはどうすればよいですか?
キーマテリアルが有効期限切れまたは削除された後、同じキーマテリアルを再インポートしてキーの使用を継続できます。
有効期限切れのキーマテリアルを削除します。
キーの詳細ページで、キーマテリアル タブをクリックし、次に キーマテリアルを削除 をクリックします。
新しいラッピング公開鍵とインポートトークンをダウンロードします。詳細については、「ステップ 2: ラッピング公開鍵とインポートトークンのダウンロード」をご参照ください。
説明キーラッピングプロセスはキーマテリアルの内容に影響しません。したがって、異なるラッピング公開鍵と異なる暗号化アルゴリズムを使用して、同じキーマテリアルをインポートできます。
ラッピング公開鍵を使用してキーマテリアルを暗号化します。詳細については、「ステップ 3: ラッピング公開鍵を使用してキーマテリアルを暗号化する」をご参照ください。
説明キーマテリアルは、以前にインポートしたものと同じである必要があります。
インポートトークンを使用して暗号化されたキーマテリアルをインポートします。詳細については、「ステップ 4: キーマテリアルのインポート」をご参照ください。
キーマテリアルが KMS によってインポートされたか生成されたかを判断するにはどうすればよいですか?
方法 1: Key Management Service コンソールで確認します。
デフォルトキー: キー管理 ページで、デフォルトキー タブをクリックします。目的のキーを見つけ、操作 列の 詳細 をクリックします。詳細ページに キーマテリアルソース が表示されます。
ソフトウェア保護キーとハードウェア保護キー: キー管理 ページで、キー タブをクリックします。インスタンス管理 を選択し、ターゲットキーを見つけます。次に、操作 列の 詳細 をクリックします。詳細ページで キーマテリアルソース を表示できます。
方法 2: DescribeKey 操作を呼び出します。
Originの値がEXTERNALの場合、キーマテリアルはインポートされました。Originの値がAliyun_KMSの場合、キーマテリアルは KMS によって生成されました。
外部キーマテリアルを使用するキーをローテーションするにはどうすればよいですか?
インポートされたキーマテリアルを使用する ソフトウェア保護された対称キー の場合、即時の手動ローテーションのみがサポートされ、自動定期ローテーションはサポートされていません。詳細については、「Bring-Your-Own-Key (BYOK) キーのローテーション」をご参照ください。
インポートされたキーマテリアルを使用する ソフトウェア保護された非対称キー のローテーションはサポートされていません。
インポートされたキーマテリアルを使用する ハードウェア保護キー (対称および非対称の両方) のローテーションはサポートされていません。