

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# KMS キーを作成する
<a name="create-keys"></a>

は、 AWS KMS keys で作成することも AWS マネジメントコンソール、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションまたは [AWS::KMS::Key AWS CloudFormation リソース](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)を使用して作成することもできます。このプロセスでは、KMS キーのキーポリシーも設定します。これはいつでも変更できます。また、作成する KMS キーのタイプを定義する以下の値も選択します。KMS キー作成後にこれらのプロパティを変更することはできません。

**KMS キータイプ**  
*キータイプ*は、作成される暗号化キーのタイプを決定するプロパティです。 は、データを保護するために 3 つのキータイプ AWS KMS を提供します。  
+ Advanced Encryption Standard (AES) 対称キー

  AES の Galois Counter Mode (GCM) モードで使用される 256 ビットキーで、4KB 未満のサイズのデータの認証付き暗号化/復号化を提供します。これは最も一般的なタイプのキーであり、ユーザーに代わってデータを暗号化 AWS のサービス するアプリケーションおよび で使用される他のデータ暗号化キーを保護するために使用されます。
+ RSA、楕円曲線、または SM2 (中国リージョンのみ) の非対称キー

  これらのキーはさまざまなサイズで利用可能で、多くのアルゴリズムをサポートしています。選択したアルゴリズムに応じて、暗号化と復号化、署名と検証、もしくは共有シークレットの取得のいずれかのオペレーションに使用できます。
+ Hash-based Message Authentication Code (HMAC) オペレーションを実行するための対称キー

  これらのキーは、署名および検証オペレーションに使用される 256 ビットのキーです。

  KMS キーは、サービスからプレーンテキストでエクスポートすることはできません。これらはサービスに使用されるハードウェアセキュリティモジュール (HSM) により生成され、そのモジュール内でのみ使用できます。これは、キーが侵害されないように AWS KMS するための の基本的なセキュリティプロパティです。

** キーの用途**  
「キーの使用」は、キーがサポートする暗号化オペレーションを決定するプロパティです。KMS キーには、`ENCRYPT_DECRYPT`、`SIGN_VERIFY`、`GENERATE_VERIFY_MAC`、`KEY_AGREEMENT` のいずれかのキー用途を指定できます。各 KMS キーに指定できるキー用途は 1 つだけです。これは、[米国国立標準技術研究所 (NIST) の「Special Publication 800-57 Recommendations for Key Management](https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final)」のセクション 5.2 の「Key usage」に従った主要な使用のベストプラクティスに従います。KMS キーを複数タイプのオペレーションに使用すると、両方のオペレーションの成果が攻撃に対してより脆弱になります。

** キー仕様**  
*キー仕様*は、キーの暗号化設定を表すプロパティです。キー仕様の意味は、キータイプによって異なります。  
KMS キーにおいて、*キー仕様*はその KMS キーが対称か非対称かを決定します。また、そのキーマテリアルのタイプとサポートするアルゴリズムも決定します。  
デフォルトのキースペックである [SYMMETRIC\$1DEFAULT](symm-asymm-choose-key-spec.md#symmetric-cmks) は、256 ビット対称暗号化キーを表します。サポートされているすべてのキー仕様の詳細については、「[キー仕様のリファレンス](symm-asymm-choose-key-spec.md)」を参照してください。

** キーマテリアルのオリジン**  
*キーマテリアルのオリジン*は、KMS キーのキーマテリアルのソースを識別する KMS キープロパティです。KMS キーの作成時にキーマテリアルのオリジンを選択し、それを変更することはできません。キーマテリアルのソースは、KMS キーのセキュリティ、耐久性、可用性、レイテンシー、スループット特性に影響します。  
各 KMS キーには、メタデータにキーマテリアルへの参照が含まれています。対称暗号化 KMS キーのキーマテリアルのオリジンは、異なる可能性があります。 AWS KMS が生成するキーマテリアル、または[カスタムキーストア](key-store-overview.md#custom-key-store-overview)内で生成されるキーマテリアルを使用するか、もしくは[独自のキーマテリアルをインポートすることができます](importing-keys.md)。  
デフォルトでは、各 KMS キーに一意のキーマテリアルがあります。ただし、同じキーマテリアルで[マルチリージョンキー](multi-region-keys-overview.md)のセットを作成することができます。  
KMS キーには、、 `EXTERNAL` ([インポートされたキーマテリアル](importing-keys.md))`AWS_KMS`、 `AWS_CLOUDHSM` (キー[ストアの KMS キー）、または (外部 AWS CloudHSM](keystore-cloudhsm.md)キーストアの KMS キー) のいずれかのキーマテリアルオリジン値を指定できます。 `EXTERNAL_KEY_STORE` [外部キーストア](keystore-external.md)

**Topics**
+ [KMS キーを作成するためのアクセス許可](#create-key-permissions)
+ [作成する KMS キーのタイプの選択](#symm-asymm-choose)
+ [対称暗号化 KMS キーを作成する](create-symmetric-cmk.md)
+ [非対称 KMS キーを作成する](asymm-create-key.md)
+ [HMAC KMS キーを作成する](hmac-create-key.md)
+ [マルチリージョンのプライマリキーを作成する](create-primary-keys.md)
+ [マルチリージョンのレプリカキーを作成する](multi-region-keys-replicate.md)
+ [インポートされたキーマテリアルを持つ KMS キーの作成](importing-keys-conceptual.md)
+ [キーストアに KMS AWS CloudHSM キーを作成する](create-cmk-keystore.md)
+ [外部キーストアで KMS キーを作成する](create-xks-keys.md)

## KMS キーを作成するためのアクセス許可
<a name="create-key-permissions"></a>

コンソールで、または API を使用して KMS キーを作成するには、IAM ポリシーで次のアクセス許可を持っている必要があります。可能な限り、[条件キー](policy-conditions.md)を使用してアクセス許可を制限します。例えば、IAM ポリシーで [kms:KeySpec](conditions-kms.md#conditions-kms-key-spec) 条件キーを使用して、プリンシパルが対称暗号化キーのみを作成できるようにすることが可能です。

キーを作成するプリンシパルの IAM ポリシーの例については、「[KMS キーの作成をユーザーに許可する](customer-managed-policies.md#iam-policy-example-create-key)」を参照してください。

**注記**  
タグとエイリアスを管理する許可をプリンシパルに付与する場合は注意が必要です。タグまたはエイリアスを変更すると、カスタマーマネージドキーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。
+ [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) は必須です。
+ [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)は、新しい KMS キーごとにエイリアスが必要なコンソールで、KMS キーを作成するために必要です。
+ [kms:TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) は、KMS キーの作成中にタグを追加するために必要です。
+ [iam:CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) は、マルチリージョンのプライマリキーを作成するために必要です。詳細については、「[マルチリージョンキーへのアクセスを制御する](multi-region-keys-auth.md)」を参照してください。

[kms:PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) アクセス許可は、KMS キーの作成には必要ありません。`kms:CreateKey` アクセス許可には、初期キーポリシーを設定する許可が含まれています。ただし、KMS キーの作成時にこのアクセス許可をキーポリシーに追加して、KMS キーへのアクセスを制御できるようにする必要があります。代替方法として、[BypassLockoutSafetyCheck](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-BypassPolicyLockoutSafetyCheck) パラメータを使用します。これは推奨されていません。

KMS キーは、それらが作成された AWS アカウントに属します。KMS キーを作成する IAM ユーザーはキー所有者とはみなされないため、作成した KMS キーを使用または管理するためのアクセス許可が自動的に付与されません。他のプリンシパルと同様に、キー作成者は、キーポリシー、IAM ポリシー、またはグラントを使用してアクセス許可を取得する必要があります。ただし、`kms:CreateKey` アクセス許可を持つプリンシパルは、初期キーポリシーを設定し、キーを使用または管理するためのアクセス許可を自分自身に付与できます。

## 作成する KMS キーのタイプの選択
<a name="symm-asymm-choose"></a>

作成する KMS キーのタイプは、予定される KMS キーの*用途*、セキュリティ要件、および認可要件に大きく依存します。KMS キーのキータイプとキー用途によって、そのキーで実行できる暗号化オペレーションが決まります。キーの用途は、各 KMS キーに 1 つしかありません。KMS キーを複数タイプのオペレーションに使用すると、すべてのオペレーションの成果が攻撃に対してより脆弱になります。

プリンシパルが特定のキーの用途だけに KMS キーを作成できるようにするには、[kms:KeyUsage](conditions-kms.md#conditions-kms-key-usage) 条件キーを使用します。`kms:KeyUsage` 条件キーを使用して、プリンシパルがキーの用途に基づいて KMS キーの API オペレーションを呼び出せるようにすることもできます。例えば、キーの用途が SIGN\$1VERIFY である場合にのみ、KMS キーを無効にするアクセス許可を許可できます。

以下のガイダンスを使用し、ユースケースに基づいて必要なタイプの KMS キーを決定します。

**データの暗号化と復号**  
データの暗号化と復号を必要とするほとんどのユースケースには、[対称 KMS キー](symm-asymm-choose-key-spec.md#symmetric-cmks)を使用します。 AWS KMS が使用する対称暗号化アルゴリズムは、高速かつ効率的で、データの機密性と信頼性を保証します。これは、[暗号化コンテキスト](encrypt_context.md)として定義された追加認証データ (AAD) による認証された暗号化をサポートします。このタイプの KMS キーでは、暗号化されたデータの送信者と受信者の両方が呼び出す有効な AWS 認証情報を持っている必要があります AWS KMS。  
を呼び出すことができないユーザーが の外部 AWS で暗号化を必要とするユースケースでは AWS KMS、[非対称 KMS キー](symmetric-asymmetric.md)が適しています。非対称 KMS キーのパブリックキーを配信して、これらのユーザーがデータを暗号化できるようにします。また、そのデータを復号する必要があるアプリケーションは、 AWS KMS内で非対称 KMS キーのプライベートキーを使用できます。

**メッセージの署名および署名の検証**  
メッセージに署名して、署名を検証するには、[非対称 KMS キー](symmetric-asymmetric.md)を使用する必要があります。RSA キーペア、楕円曲線 (ECC) キーペア、ML-DSA キーペア、または SM2 キーペア (中国リージョンのみ) を表す[キー仕様](symm-asymm-choose-key-spec.md)で KMS キーを使用できます。選択するキー仕様は、使用する署名アルゴリズムによって決まります。ECC キーペアがサポートする ECDSA 署名アルゴリズムは、RSA 署名アルゴリズムよりも推奨されます。RSA キーまたは ECC キーからポスト量子キーに移行するときは、ML-DSA キーペアを使用します。ただし、 AWS外部で署名を検証するユーザーをサポートするには、特定のキー仕様と署名アルゴリズムを使用することが必要になる場合があります。

**非対称キーペアを用いた暗号化**  
非対称キーペアを用いてデータを暗号化するには、[RSA キー仕様](symm-asymm-choose-key-spec.md#key-spec-rsa-encryption)または [SM2 キー仕様](symm-asymm-choose-key-spec.md#key-spec-sm) (中国リージョンのみ) の[非対称 KMS キー](symmetric-asymmetric.md)を使用する必要があります。KMS キーペアのパブリックキーを使用して、 AWS KMS でデータを暗号化するには、[Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) オペレーションを使用します。[パブリックキーをダウンロード](download-public-key.md)して、外部でデータを暗号化する必要がある当事者と共有することもできます AWS KMS。  
非対称 KMS キーのパブリックキーをダウンロードする場合、 AWS KMSの外部で使用できます。ただし、KMS キーを保護するセキュリティコントロールの対象ではなくなりました AWS KMS。たとえば、パブリック AWS KMS キーの使用を制御するためにキーポリシーや許可を使用することはできません。また、 AWS KMS がサポートする暗号化アルゴリズムを使用して、キーが暗号化と復号にのみ使用されるかどうかを制御することもできません。詳細については、「[パブリックキーのダウンロードに関する特別な考慮事項](offline-public-key.md#download-public-key-considerations)」を参照してください。  
外部でパブリックキーで暗号化されたデータを復号するには AWS KMS、[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出します。キー用途を `SIGN_VERIFY` に設定して KMS キーからのパブリックキーでデータを暗号化した場合、`Decrypt` オペレーションは失敗します。また、選択したキー仕様で をサポート AWS KMS していないアルゴリズムを使用して暗号化された場合も失敗します。主なキー仕様とサポートされているアルゴリズムの詳細については、「[キー仕様のリファレンス](symm-asymm-choose-key-spec.md)」を参照してください。  
これらのエラーを回避するには、 の外部でパブリックキーを使用するすべてのユーザーがキー設定を保存 AWS KMS する必要があります。 AWS KMS コンソールと [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) レスポンスは、パブリックキーを共有するときに含める必要がある情報を提供します。

**共有シークレットを取得する**  
共有シークレットを取得するには、[NIST 標準の楕円曲線](symm-asymm-choose-key-spec.md#key-spec-ecc)または [SM2](symm-asymm-choose-key-spec.md#key-spec-sm) (中国リージョンのみ) キーマテリアルを持つ KMS キーを使用します。 は[、楕円曲線のパブリック/プライベートキーペアから共有シークレットを取得することで、楕円曲線暗号コファクタ Diffie-Hellman Primitive](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf#page=60) (ECDH) AWS KMS を使用して 2 つのピア間でキーアグリーメントを確立します。[ DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html) オペレーションが返す raw 共有シークレットを使用して、2 つの当事者間で送信されるデータを暗号化および復号できる対称キーを導き出すか、HMACs を生成して検証できます。raw 共有シークレットを使用して対称キーを導き出す場合は、[キー導き出しに関する NIST の推奨事項](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf)に従う AWS KMS ことをお勧めします。

**HMAC コードを生成して検証する**  
Hash-based Message Authentication Code を生成して検証するには、HMAC KMS キーを使用します。で HMAC キーを作成すると AWS KMS、 はキーマテリアル AWS KMS を作成および保護し、キーに正しい MAC アルゴリズムを使用するようにします。HMAC コードは、擬似乱数としての使用、および対称署名とトークン化のための特定のシナリオでの使用も可能です。  
HMAC KMS キーは対称キーです。 AWS KMS コンソールで HMAC KMS キーを作成するときは、`Symmetric` キータイプを選択します。

** AWS サービスで を使用する**  <a name="cmks-aws-service"></a>
[AWS と統合された サービス AWS KMS](service-integration.md)で使用する KMS キーを作成するには、データを暗号化する service. AWS services のドキュメントで[対称暗号化 KMS キー](symm-asymm-choose-key-spec.md#symmetric-cmks)が必要です。

これらの考慮事項に加えて、キー仕様が異なる KMS キーの暗号化オペレーションでは、料金とリクエストクォータも異なります。 AWS KMS の料金については、[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)を参照してください。リクエストクォータの詳細については、「[クォータのリクエスト](requests-per-second.md)」を参照してください 。

# 対称暗号化 KMS キーを作成する
<a name="create-symmetric-cmk"></a>

このトピックでは、基本的な KMS キーを作成する方法について説明します。これは、キーマテリアルを含む 1 つのリージョンの[対称暗号化 KMS キー](symm-asymm-choose-key-spec.md#symmetric-cmks)です AWS KMS。この KMS キーを使用して、 AWS のサービス内のリソースを保護することができます。

対称暗号化 KMS キーは、 AWS KMS コンソール、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API、または [AWS::KMS::Key CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)を使用して作成できます。

デフォルトのキー仕様である [SYMMETRIC\$1DEFAULT](symm-asymm-choose-key-spec.md#symmetric-cmks) は、対称暗号化 KMS キー向けキー仕様です。 AWS KMS コンソールで**対称**キータイプと**暗号化および復号**キーの使用を選択すると、`SYMMETRIC_DEFAULT`キー仕様が選択されます。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションで、 `KeySpec` 値を指定しない場合、SYMMETRIC\$1DEFAULT が選択されます。別のキー仕様を使用する理由がない場合は、SYMMETRIC\$1DEFAULT を選択することをお勧めします。

KMS キーに適用されるクォータの詳細については、[クォータ](limits.md) を参照してください。

## AWS KMS コンソールの使用
<a name="create-keys-console"></a>

を使用して AWS KMS keys (KMS キー) AWS マネジメントコンソール を作成できます。

**重要**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. 対称暗号化 KMS キーを作成するには、**[Key type]**] (キーのタイプ) で **[Symmetric]** (対称) を選択します。

1. **[Key usage]** (キーの使用) では、**[Encrypt and decrypt]** (暗号化および復号) オプションがすでに選択されています。

1. [**次へ**] を選択します。

1. KMS キーのエイリアスを入力します。エイリアス名の先頭を **aws/** にすることはできません。**aws/** プレフィックスは、アカウント AWS マネージドキー で を表すために Amazon Web Services によって予約されています。
**注記**  
エイリアスを追加、削除、更新すると、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[エイリアスを使用して KMS キーへのアクセスを制御する](alias-authorization.md)」を参照してください。

    エイリアスは KMS キーを識別するために使用する表示名です。保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

    

    エイリアスは AWS マネジメントコンソールで KMS キーを作成するときに必要です。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用する場合、これらのオペレーションはオプションです。

1. (オプション) KMS キーの説明を入力します。

   今すぐ説明を追加するか、[キーの状態](key-state.md)が `Pending Deletion` または `Pending Replica Deletion` でない限り、後でいつでも更新できます。既存のカスタマーマネージドキーの説明を追加、変更、または削除するには、 の KMS キーの詳細ページの説明を編集する AWS マネジメントコンソール か、[UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) オペレーションを使用します。

1. (オプション) タグキーとオプションのタグ値を入力します。KMS キーに複数のタグを追加するには、[**Add tag**] (タグを追加) を選択します。
**注記**  
KMS キーのタグ付けまたはタグ解除により、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)」を参照してください。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. KMS キーを管理できる IAM ユーザーとロールを選択します。
**注意事項**  
このキーポリシーは、この KMS キー AWS アカウント を完全に制御します。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに KMS キーを管理する許可を付与できます。詳細については、「[デフォルトのキーポリシー](key-policy-default.md)」を参照してください。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [**Key deletion**] (キーの削除) セクションで、[**Allow key administrators to delete this key**] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

1. [**次へ**] を選択します。

1. [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)でキーを使用できる IAM ユーザーとロールを選択します。
**注意事項**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **Other AWS アカウント** セクションで、Add **another AWS アカウント**を選択し、外部アカウントの AWS アカウント 識別番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらのアクセス許可を付与する IAM ポリシーを作成する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. [**Finish**] (完了) を選択し、KMS キーを作成します。

## AWS KMS API の使用
<a name="create-keys-api"></a>

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して、すべてのタイプの AWS KMS keys を作成できます。これらの例では、[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用します。複数のプログラミング言語の例については、「[AWS SDK または CLI `CreateKey`で を使用する](example_kms_CreateKey_section.md)」を参照してください。

**重要**  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

次のオペレーションでは、 AWS KMSで生成されるキーマテリアルにバックアップされた、単一リージョン内の対称暗号化キーを作成します。このオペレーションには必須パラメータはありません。ただし、キーポリシーを指定するために `Policy` パラメータが必要になる場合もあります。キーポリシー ([PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)) を変更したり、 [説明](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) や [タグ](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) などのオプション要素をいつでも追加したりできます。また、[非対称キー](asymm-create-key.md#create-asymmetric-keys-api)、[マルチリージョンキー](create-primary-keys.md)、[インポートされたキーマテリアル](importing-keys-create-cmk.md#importing-keys-create-cmk-api)を含むキー、および[カスタムキーストア](create-cmk-keystore.md#create-cmk-keystore-api)内のキーも作成できます。クライアント側暗号化用のデータキーを作成するには、[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) オペレーションを使用します。

`CreateKey` オペレーションでは、エイリアスを指定することはできませんが、[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを実行して、新しい KMS キーのエイリアスを作成できます。

次の例では、パラメータを指定せずに `CreateKey` オペレーションを呼び出します。このコマンドでは、すべてのデフォルト値が使用されます。これは、 AWS KMSが生成したキーマテリアルで対称暗号化 KMS キーを作成します。

```
$ aws kms create-key
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1502910355.475,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "MultiRegion": false
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
    }
}
```

新規の KMS キーにキーポリシーを指定しない場合、`CreateKey` が適用する[デフォルトのキーポリシー](key-policy-default.md)は、新規の KMS キーを作成するときに使用され、コンソールが適用するデフォルトのキーポリシーとは異なります。

たとえば、 [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) オペレーションに対するこの呼び出しは、 `CreateKey` 適用されるキーポリシーを返します。これにより、KMS キー AWS アカウント へのアクセスが許可され、KMS キーの AWS Identity and Access Management (IAM) ポリシーを作成できます。IAM ポリシーおよび KMS キーのキーポリシーの詳細については、「[KMS キーのアクセスとアクセス許可](control-access.md)」を参照してください。

```
$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text
```

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "key-default-1",
  "Statement" : [ {
    "Sid" : "EnableIAMUserPermissions",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::111122223333:root"
    },
    "Action" : "kms:*",
    "Resource" : "*"
  } ]
}
```

------

# 非対称 KMS キーを作成する
<a name="asymm-create-key"></a>

 AWS KMS コンソール操作で、または [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API もしくは [AWS::KMS::Key CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)を使用して、[非対称 KMS キー](symmetric-asymmetric.md)を作成できます。非対称 KMS キーは、暗号化、署名、または共有シークレットの取得に使用する公開キーとプライベートキーのキーペアを表します。プライベートキーは 内に残ります AWS KMS。の外部で使用するパブリックキーをダウンロードするには AWS KMS、「」を参照してください[パブリックキーをダウンロードする](download-public-key.md)。

非対称 KMS キーを作成するときは、キー仕様を選択する必要があります。選択するキー仕様は、多くの場合、規制、セキュリティ、ビジネス要件によって決定されます。また、暗号化または署名する必要があるメッセージのサイズによっても影響を受ける可能性があります。一般に、長い暗号化キーは、ブルートフォース攻撃に対してより耐性があります。サポートされているすべてのキー仕様の詳細については、「[キー仕様のリファレンス](symm-asymm-choose-key-spec.md)」を参照してください。

AWS と統合する サービスは、非対称 KMS キーをサポート AWS KMS していません。 AWS サービスに保存または管理するデータを暗号化する KMS キーを作成する場合は、[対称暗号化 KMS キーを作成します](create-symmetric-cmk.md)。

KMS キーの作成に必要なアクセス許可については、[KMS キーを作成するためのアクセス許可](create-keys.md#create-key-permissions) を参照してください。

## AWS KMS コンソールの使用
<a name="create-asymmetric-keys-console"></a>

を使用して非対称 AWS KMS keys (KMS キー) AWS マネジメントコンソール を作成できます。各非対称 KMS キーは、公開キーとプライベートキーのキーペアを表します。

**重要**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. 非対称 KMS キーを作成するには、[**Key type**] (キータイプ) で [**Asymmetric**] (非対称) を選択します。

1. 公開キー暗号化用の非対称 KMS キーを作成するには、**[キーの使用]** (キーの使用方法) で [**Encrypt and decrypt**] (暗号化と復号) を選択します。

   メッセージに署名して署名を検証するための非対称 KMS キーを作成するには、**[キーの使用]** (キーの使用方法) で **[署名と検証]** を選択します。

   共有シークレットを取得するための非対称 KMS キーを作成するには、**[キーの使用]** で **[キーアグリーメント]** を選択します。

   キー使用法の値の選択については、を参照してください [作成する KMS キーのタイプの選択](create-keys.md#symm-asymm-choose)。

1. 非対称 KMS キーの仕様 ( [**Key spec**] (キー仕様)) を選択します。

1. [**次へ**] を選択します。

1. KMS キーの[エイリアス](kms-alias.md)を入力します。エイリアス名の先頭を **aws/** にすることはできません。この **aws/** プレフィックスは、アカウント内の AWS マネージドキー を表すために、Amazon Web Services によって予約されます。

   *エイリアス*は、コンソールと一部の AWS KMS APIs。保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを示すエイリアスを選択することをお勧めします。

   エイリアスは AWS マネジメントコンソールで KMS キーを作成するときに必要です。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションの使用時にエイリアスを指定することはできません。ただし、コンソールまたは [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを使用して、既存の KMS キーのエイリアスを作成できます。詳細については、「[のエイリアス AWS KMS](kms-alias.md)」を参照してください。

1. (オプション) KMS キーの説明を入力します。

   保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを表す説明を入力します。

   今すぐ説明を追加するか、[キーの状態](key-state.md)が `Pending Deletion` または `Pending Replica Deletion` でない限り、後でいつでも更新できます。既存のカスタマーマネージドキーの説明を追加、変更、または削除するには、 の KMS キーの詳細ページの説明を編集する AWS マネジメントコンソール か、[UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) オペレーションを使用します。

1. (オプション) タグキーとオプションのタグ値を入力します。KMS キーに複数のタグを追加するには、[**Add tag**] (タグを追加) を選択します。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. KMS キーを管理できる IAM ユーザーとロールを選択します。
**注意事項**  
このキーポリシーは、この KMS キー AWS アカウント を完全に制御します。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに KMS キーを管理する許可を付与できます。詳細については、「[デフォルトのキーポリシー](key-policy-default.md)」を参照してください。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [**Key deletion**] (キーの削除) セクションで、[**Allow key administrators to delete this key**] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

1. [**次へ**] を選択します。

1. [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用できる IAM ユーザーとロールを選択します。
**注意事項**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **[他の AWS アカウントアカウント]** セクションで、**[別の AWS アカウントアカウントを追加する]** を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらの許可を付与する IAM ポリシーを作成する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. [**Finish**] (完了) を選択し、KMS キーを作成します。

## AWS KMS API の使用
<a name="create-asymmetric-keys-api"></a>

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して、非対称 を作成できます AWS KMS key。以下の例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

非対称 KMS キーを作成する場合は、作成するキーのタイプを決定する `KeySpec` パラメータを指定する必要があります。また、ENCRYPT\$1DECRYPT、SIGN\$1VERIFY、KEY\$1AGREEMENT の `KeyUsage` 値も指定する必要があります。KMS キー作成後にこれらのプロパティを変更することはできません。

`CreateKey` オペレーションでは、エイリアスを指定することはできませんが、[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを実行して、新しい KMS キーのエイリアスを作成できます。

**重要**  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

**公開暗号化用の非対称 KMS キーペアを作成する**  
次の例では、`CreateKey` オペレーションを使用して、公開キーの暗号化用に設計された 4096 ビット RSA キーの非対称 KMS キーを作成します。

```
$ aws kms create-key --key-spec RSA_4096 --key-usage ENCRYPT_DECRYPT
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": 1569973196.214,
        "MultiRegion": false,
        "KeySpec": "RSA_4096",
        "CustomerMasterKeySpec": "RSA_4096",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "EncryptionAlgorithms": [
            "RSAES_OAEP_SHA_1",
            "RSAES_OAEP_SHA_256"
        ],
        "AWSAccountId": "111122223333",
        "Origin": "AWS_KMS",
        "Enabled": true
    }
}
```

**署名および検証用の非対称 KMS キーペアを作成する**  
次のコマンド例では、署名と検証に使用する ECC キーのペアを表す非対称 KMS キーを作成します。暗号化と復号のために楕円曲線キーペアを作成することはできません。

```
$ aws kms create-key --key-spec ECC_NIST_P521 --key-usage SIGN_VERIFY
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": 1570824817.837,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ECDSA_SHA_512"
        ],
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
        "AWSAccountId": "111122223333",
        "KeySpec": "ECC_NIST_P521",
        "CustomerMasterKeySpec": "ECC_NIST_P521",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Enabled": true,
        "MultiRegion": false,
        "KeyUsage": "SIGN_VERIFY"
    }
}
```

**共有シークレットを取得するための非対称 KMS キーペアを作成する**  
次のコマンド例では、共有シークレットの取得に使用する ECDH キーのペアを表す非対称 KMS キーを作成します。暗号化と復号のために楕円曲線キーペアを作成することはできません。

```
$ aws kms create-key --key-spec ECC_NIST_P256 --key-usage KEY_AGREEMENT
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": "2023-12-27T19:10:15.063000+00:00",
        "Enabled": true,
        "Description": "",
        "KeyUsage": "KEY_AGREEMENT",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "ECC_NIST_P256",
        "KeySpec": "ECC_NIST_P256",
        "KeyAgreementAlgorithms": [
            "ECDH"
        ],
        "MultiRegion": false
    }
}
```

# HMAC KMS キーを作成する
<a name="hmac-create-key"></a>

HMAC KMS キーは、 AWS KMS コンソール、 [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API、または [AWS::KMS::Key CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)を使用して作成できます。

HMAC KMS キーを作成するときは、キー仕様を選択する必要があります。 は[、HMAC KMS キーの複数のキー仕様](symm-asymm-choose-key-spec.md#hmac-key-specs) AWS KMS をサポートしています。ユーザーが選択するキー仕様は、規制、セキュリティ、またはビジネス要件に応じて決定される場合があります。一般に、長いキーはブルートフォース攻撃に対する耐性が高くなります。

KMS キーの作成に必要なアクセス許可については、[KMS キーを作成するためのアクセス許可](create-keys.md#create-key-permissions) を参照してください。

## AWS KMS コンソールの使用
<a name="create-hmac-key-console"></a>

を使用して HMAC KMS キー AWS マネジメントコンソール を作成できます。HMAC KMS キーは、キーの用途が **[Generate and verify MAC]** (MAC の生成と検証) である対称キーです。マルチリージョンの HMAC キーを作成することもできます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. [**キーの種類**] で、[**対称**] を選択します。

   HMAC KMS キーは対称です。同じキーを使用して、HMAC タグの生成と検証を行います。

1. **[Key usage]** （キーの使用) には、**[Generate and verify MAC]** (MAC の生成と検証) を選択します。

   MAC の生成と検証は、HMAC KMS キーに対して唯一有効なキーの用途です。
**注記**  
対称キーに対する **[Key usage]** (キーの使用) は、選択されたリージョンで HMAC KMS キーがサポートされている場合にのみ表示されます。

1. HMAC KMS キーの仕様 (**[Key spec]** (キーの仕様)) を選択します。

   選択するキーの仕様は、規制、セキュリティ、またはビジネス要件に応じて決定できます。一般に、キーが長いほど安全性が高くなります。

1. [マルチリージョン](multi-region-keys-overview.md)の*プライマリ* HMAC キーを作成するには、**アドバンストオプション**で**マルチリージョンキー**を選択します。この KMS キーに定義する[共有プロパティ](multi-region-keys-overview.md#mrk-sync-properties) (キーのタイプとキーの用途など) は、そのレプリカキーと共有されます。

   この手順を使用してレプリカキーを作成することはできません。マルチリージョンのレプリカ HMAC キーを作成するには、[レプリカキーを作成するための手順](multi-region-keys-replicate.md)に従ってください。

1. [**次へ**] を選択します。

1. KMS キーの[エイリアス](kms-alias.md)を入力します。エイリアス名の先頭を **aws/** にすることはできません。この **aws/** プレフィックスは、アカウント内の AWS マネージドキー を表すために、Amazon Web Services によって予約されます。

   KMS キーを HMAC キーとして識別するエイリアス (`HMAC/test-key` など) の使用をお勧めします。これにより、 AWS KMS タグやエイリアスでキーをソートおよびフィルタリングできるコンソールで HMAC キーを簡単に識別できますが、キー仕様やキーの使用法では識別できません。

   エイリアスは AWS マネジメントコンソールで KMS キーを作成するときに必要です。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションの使用時にエイリアスを指定することはできません。ただし、コンソールまたは [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを使用して、既存の KMS キーのエイリアスを作成できます。詳細については、「[のエイリアス AWS KMS](kms-alias.md)」を参照してください。

1. (オプション) KMS キーの説明を入力します。

   保護する予定のデータタイプ、または KMS キーで使用する予定のアプリケーションを表す説明を入力します。

   今すぐ説明を追加するか、[キーの状態](key-state.md)が `Pending Deletion` または `Pending Replica Deletion` でない限り、後でいつでも更新できます。既存のカスタマーマネージドキーの説明を追加、変更、または削除するには、 の で KMS キーの詳細ページの説明を編集する AWS マネジメントコンソール AWS マネジメントコンソール か、[UpdateKeyDescription](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) オペレーションを使用します。

1. (オプション) タグキーとオプションのタグ値を入力します。KMS キーに複数のタグを追加するには、[**Add tag**] (タグを追加) を選択します。

   `Type=HMAC` など、キーを HMAC キーとして識別するタグの追加を検討してください。これにより、 AWS KMS タグやエイリアスでキーをソートおよびフィルタリングできるコンソールで HMAC キーを簡単に識別できますが、キー仕様やキーの使用法では識別できません。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. KMS キーを管理できる IAM ユーザーとロールを選択します。
**注意事項**  
このキーポリシーは、この KMS キー AWS アカウント を完全に制御します。これにより、アカウント管理者は IAM ポリシーを使用して、他のプリンシパルに KMS キーを管理する許可を付与できます。詳細については、「[デフォルトのキーポリシー](key-policy-default.md)」を参照してください。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [**Key deletion**] (キーの削除) セクションで、[**Allow key administrators to delete this key**] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

1. [**次へ**] を選択します。

1. [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用できる IAM ユーザーとロールを選択します。
**注意事項**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **[他の AWS アカウントアカウント]** セクションで、**[別の AWS アカウントアカウントを追加する]** を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらのアクセス許可を付与する IAM ポリシーを作成する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. **[Finish]** (完了) を選択して HMAC KMS キーを作成します。

## AWS KMS API の使用
<a name="create-keys-api"></a>

[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して HMAC KMS キーを作成することができます。以下の例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

HMAC KMS キーを作成するときは、KMS キーのタイプを決定する `KeySpec` パラメータを指定する必要があります。また、GENERATE\$1VERIFY\$1MAC が HMAC キーに唯一有効なキーの用途であっても、GENERATE\$1VERIFY\$1MAC の `KeyUsage` 値を指定する必要があります。[マルチリージョン](multi-region-keys-overview.md)の HMAC KMS キーを作成するには、値が `true` の `MultiRegion` パラメータを追加します。KMS キー作成後にこれらのプロパティを変更することはできません。

`CreateKey` オペレーションでは、エイリアスを指定することはできませんが、[CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) オペレーションを実行して、新しい KMS キーのエイリアスを作成できます。KMS キーを HMAC キーとして識別するエイリアス (`HMAC/test-key` など) の使用をお勧めします。これにより、 AWS KMS エイリアスでキーをソートおよびフィルタリングできるコンソールで HMAC キーを簡単に識別できますが、キー仕様やキーの使用法では識別できません。

HMAC キーがサポートされていない で AWS リージョン HMAC KMS キーを作成しようとすると、`CreateKey`オペレーションは を返します。 `UnsupportedOperationException`

以下の例では、`CreateKey` オペレーションを使用して 512 ビットの HMAC KMS キーを作成します。

```
$ aws kms create-key --key-spec HMAC_512 --key-usage GENERATE_VERIFY_MAC
{
    "KeyMetadata": {
        "KeyState": "Enabled",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "Description": "",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": 1669973196.214,
        "MultiRegion": false,
        "KeySpec": "HMAC_512",
        "CustomerMasterKeySpec": "HMAC_512",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "MacAlgorithms": [
            "HMAC_SHA_512"
        ],
        "AWSAccountId": "111122223333",
        "Origin": "AWS_KMS",
        "Enabled": true
    }
}
```

# マルチリージョンのプライマリキーを作成する
<a name="create-primary-keys"></a>

[マルチリージョンのプライマリキー](multi-region-keys-overview.md#mrk-primary-key)は、 AWS KMS コンソールまたは AWS KMS API を使用して作成できます。プライマリキーは、 がマルチリージョンキー AWS KMS をサポートしている任意の AWS リージョン で作成できます。

マルチリージョンのプライマリキーを作成するには、プリンシパルに、任意の KMS キーを作成するのと[同じアクセス許可](create-keys.md#create-key-permissions) (IAM ポリシーの [kms:CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) など) が必要です。プリンシパルには [iam:CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) 許可も必要です。[kms:MultiRegionKeyType](conditions-kms.md#conditions-kms-multiregion-key-type) 条件キーを使用して、マルチリージョンのプライマリキーを作成するアクセス許可を許可または拒否できます。

**注記**  
マルチリージョンのプライマリキーを作成するときは、キーの管理と使用のために選択する IAM ユーザーとロールを慎重に検討してください。IAM ポリシーでは、他の IAM ユーザーおよびロールに、KMS キーを管理するアクセス許可を付与できます。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

## AWS KMS コンソールの使用
<a name="create-primary-console"></a>

 AWS KMS コンソールでマルチリージョンのプライマリキーを作成するには、KMS キーの作成に使用するのと同じプロセスを使用します。[**Advanced options (アドバンストオプション)**] でマルチリージョンキーを選択します。詳細な手順については、「[KMS キーを作成する](create-keys.md)」を参照してください。

**重要**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. [対称または非対称](symmetric-asymmetric.md)のキータイプを選択します。デフォルトは [Symmetric] (対称) キーです。

   マルチリージョンの対称キーと非対称キーを作成できます。これには、対称であるマルチリージョン HMAC KMS キーが含まれます。

1. キーの用途を選択します。デフォルトは **[Encrypt and decrypt]** (暗号化および復号化) です。

   ヘルプについては、「[KMS キーを作成する](create-keys.md)」、「[非対称 KMS キーを作成する](asymm-create-key.md)」、または「[HMAC KMS キーを作成する](hmac-create-key.md)」を参照してください。

1. **[詳細オプション]** を展開します。

1. **キーマテリアルオリジン**で、プライマリキーとレプリカキーが共有するキーマテリアルを で AWS KMS 生成するには、**KMS** を選択します。[キーマテリアルをプライマリキーとレプリカキーにインポートする](importing-keys-create-cmk.md)には、**[External (Import key material)]** (外部 (キーマテリアルのインポート) ) を選択します。

1. **[リージョナリティ]** 列で、**[マルチリージョンキー]** を選択します。

   KMS キーの作成後は、この設定を変更できません。

1. プライマリキーの[エイリアス](kms-alias.md)を入力します。

   エイリアスは、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに、同じエイリアスまたは異なるエイリアスを指定できます。 AWS KMS は、マルチリージョンキーのエイリアスを同期しません。
**注記**  
エイリアスを追加、削除、更新すると、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[エイリアスを使用して KMS キーへのアクセスを制御する](alias-authorization.md)」を参照してください。

1. (オプション) プライマリキーの説明を入力します。

   説明は、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに、同じ説明または異なる説明を与えることができます。 AWS KMS は、マルチリージョンキーのキー説明を同期しません。

1. (オプション) タグキーとオプションのタグ値を入力します。プライマリキーに複数のタグを割り当てるには、[**Add tag**] (タグを追加する) を選択します。

   タグは、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに同じタグまたは別のタグを割り当てることができます。 AWS KMS は、マルチリージョンキーのタグを同期しません。KMS キーのタグはいつでも変更できます。
**注記**  
KMS キーのタグ付けまたはタグ解除により、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)」を参照してください。

1. プライマリキーを管理できる IAM ユーザーとロールを選択します。
**注意事項**  
このステップでは、[キーポリシー](key-policies.md)をプライマリキー用に作成するプロセスをスタートします。キーポリシーは、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに、同じキーポリシーまたは異なるキーポリシーを付与できます。 AWS KMS は、マルチリージョンキーのキーポリシーを同期しません。KMS キーのキーポリシーは、いつでも変更できます。
マルチリージョンのプライマリキーを作成するときは、コンソールで生成された[デフォルトのキーポリシー](key-policy-default.md)を使用することを検討してください。このポリシーを変更した場合、コンソールでは、レプリカキーの作成時にキー管理者とユーザーを選択するステップは提供されず、対応するポリシーステートメントも追加されません。そのため、これらを手動で追加する必要があります。
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [**Key deletion**] (キーの削除) セクションで、[**Allow key administrators to delete this key**] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

1. [**次へ**] を選択します。

1. [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用できる IAM ユーザーとロールを選択します。
**注意事項**  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **[他の AWS アカウントアカウント]** セクションで、**[別の AWS アカウントアカウントを追加する]** を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらのアクセス許可を付与する IAM ポリシーを作成する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. **[完了]** を選択して、マルチリージョンのプライマリキーを作成します。

## AWS KMS API の使用
<a name="create-primary-api"></a>

マルチリージョンのプライマリキーを作成するには、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用します。値が `True` の `MultiRegion` パラメータを使用します。

たとえば、次のコマンドは、発信者の AWS リージョン (us-east-1) にマルチリージョンのプライマリキーを作成します。キーポリシーを含む、他のすべてのプロパティはデフォルト値を受け入れます。マルチリージョンのプライマリキーのデフォルト値は、他のすべての KMS キーのデフォルト値と同じです ([デフォルトのキーポリシー](key-policy-default.md)を含む)。この手順は、対称暗号化キー、デフォルト KMS キーを作成します。

レスポンスには、`MultiRegion` 要素と典型的なサブ要素を持つ `MultiRegionConfiguration` 要素、およびレプリカキーを持たないマルチリージョンのプライマリキーの値が含まれます。マルチリージョンキーの[キー ID](concepts.md#key-id-key-id) は、必ず `mrk-` で始まります。

**重要**  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

```
$ aws kms create-key --multi-region
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1606329032.475,
        "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "AWSAccountId": "111122223333",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": true,
        "MultiRegionConfiguration": { 
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": { 
                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-east-1"
            },
            "ReplicaKeys": [ ]
      }
    }
}
```

# マルチリージョンのレプリカキーを作成する
<a name="multi-region-keys-replicate"></a>

マルチ[リージョンレプリカキー](multi-region-keys-overview.md#mrk-primary-key)は、 AWS KMS コンソール、[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) オペレーション、または [AWS::KMS::ReplicaKey CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)を使用して作成できます。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用してレプリカキーを作成することはできません。

これらの手順を使用して、[対称暗号化 KMS キー](symm-asymm-choose-key-spec.md#symmetric-cmks)、[非対称 KMS キー](symmetric-asymmetric.md)、または [HMAC KMS キー](hmac.md)などの任意のマルチリージョンプライマリキーをレプリケートすることができます。

このオペレーションが完了すると、新しいレプリカキーは一時的に `Creating` の[キーステータス](key-state.md)を持ちます。このキー状態は、新しいレプリカキーの作成プロセスが完了すると、数秒後に `Enabled` に変わります (ただし、[インポートされたキーマテリアル](importing-keys.md)でマルチリージョンキーを作成する場合は `PendingImport` に変わります)。キーステータスが `Creating` の間、キーを管理することはできますが、暗号化オペレーションで使用することはできません。レプリカキーをプログラムで作成して使用している場合は `KMSInvalidStateException` で再試行するか、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) を呼び出して使用前にその `KeyState` 値をチェックします。

レプリカキーを誤って削除した場合は、この手順を使用してレプリカキーを再度作成できます。同じリージョンで同じプライマリキーをレプリケートする場合、作成する新しいレプリカキーは、元のレプリカキーと同じ[共有プロパティ](multi-region-keys-overview.md#mrk-sync-properties)を有します。

**重要**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

 AWS CloudFormation テンプレートを使用してレプリカキーを作成するには、 *AWS CloudFormation ユーザーガイド*の[AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)」を参照してください。

## ステップ 1: レプリカリージョンを選択する
<a name="replica-region"></a>

通常、ビジネスモデルと規制要件 AWS リージョン に基づいて、マルチリージョンキーを にレプリケートすることを選択します。例えば、リソースを保管するリージョンにキーをレプリケートできます。または、災害対策の要件に準拠するために、地理的に離れたリージョンにキーをレプリケートすることもできます。

レプリカリージョン AWS KMS の要件は次のとおりです。選択したリージョンがこれらの要件を満たしていない場合、キーレプリケーションの試行は失敗します。
+ **リージョンごとに 1 つの関連するマルチリージョンキー** — プライマリキーと同じリージョンにレプリカキーを作成したり、プライマリキーの別のレプリカと同じリージョンにレプリカキーを作成することはできません。

  すでにそのプライマリキーのレプリカがあるリージョンでプライマリキーをレプリケートしようとすると、試行は失敗します。リージョンの現在のレプリカキーが [`PendingDeletion` キーステータス](key-state.md)にある場合は、[レプリカキーの削除をキャンセルする](deleting-keys-scheduling-key-deletion.md)が、レプリカキーが削除されるまで待機します。
+ **同じリージョン内の複数の関連しないマルチリージョンキー** — 同じリージョン内に、複数の関連しないマルチリージョンキーを持つことができます。例えば、`us-east-1` リージョンで 2 つのマルチリージョンのプライマリキーを持つことができます。プライマリキーごとに、`us-west-2` リージョンでレプリカキーを持つことができます。
+ **同じパーティション内のリージョン** — レプリカキーリージョンは、プライマリキーリージョンと同じ [AWS パーティション](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)である必要があります。
+ **リージョンの有効化** — リージョンが[デフォルトで無効](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)に設定されている場合、 AWS アカウントで有効化されるまで、そのリージョンでリソースを作成することはできません。

## ステップ 2: レプリカキーを作成する
<a name="create-replica-keys"></a>

**注記**  
レプリカキーを作成するときは、レプリカキーの管理と使用のために選択する IAM ユーザーとロールを慎重に検討してください。IAM ポリシーでは、他の IAM ユーザーおよびロールに、KMS キーを管理するアクセス許可を付与できます。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

### AWS KMS コンソールの使用
<a name="replicate-console"></a>

 AWS KMS コンソールでは、同じオペレーションでマルチリージョンプライマリキーの 1 つ以上のレプリカを作成できます。

この手順は、コンソールでスタンダードの単一リージョン KMS キーを作成する場合と似ています。ただし、レプリカキーはプライマリキーに基づいているため、キー仕様 (対称または非対称)、キー使用法、キーオリジンなどの[共有プロパティ](multi-region-keys-overview.md#mrk-sync-properties)の値は選択しません。

エイリアス、タグ、説明、キーポリシーなど、共有されないプロパティを指定します。便宜上、コンソールにプライマリキーの現在のプロパティ値が表示されますが、変更することもできます。プライマリキー値を保持しても、これらの値は同期 AWS KMS されません。

**重要**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. [マルチリージョンのプライマリキー](multi-region-keys-overview.md#mrk-primary-key)のキー ID またはエイリアスを選択します。KMS キーのキーの詳細ページが開きます。

   マルチリージョンのプライマリキーを識別するには、右上隅にあるツールアイコンを使用して [**Regionality**] (リージョナリティー) 列をテーブルに追加します。

1. [**Regionality**] (リージョナリティー) タブを選択します。

1. [**Related multi-Region keys**] (関連するマルチリージョンキー) のセクションで、[**Create new replica keys**] (新しいレプリカキーの作成) を選択します。

   [**Related multi-Region keys**] (関連するマルチリージョンキー) のセクションには、プライマリキーとそのレプリカキーのリージョンが表示されます。この表示を使用して、新しいレプリカキーのリージョンを選択できます。

1. 1 つ以上の AWS リージョンを選択します。この手順では、選択したリージョンごとにレプリカキーが作成されます。

   メニューには、プライマリキーと同じ AWS パーティション内のリージョンのみが含まれます。関連するマルチリージョンキーがすでに存在するリージョンが表示されますが、選択することはできません。メニューのすべてのリージョンに対しては、キーをレプリケートする許可がない場合があります。

   リージョンの選択が完了したら、メニューを閉じます。選択したリージョンが表示されます。リージョンへのレプリケーションをキャンセルするには、リージョン名の横にある [**X**] を選択します。

1. レプリカキーの[エイリアス](kms-alias.md)を入力します。

   コンソールには、プライマリキーの現在のエイリアスの 1 つが表示されますが、変更することもできます。マルチリージョンのプライマリキーとそのレプリカに同じエイリアスまたは別のエイリアスを割り当てることができます。エイリアスはマルチリージョンキー[の共有プロパティ](multi-region-keys-overview.md#mrk-sync-properties)ではありません。 AWS KMS はマルチリージョンキーのエイリアスを同期しません。

   エイリアスを追加、削除、更新すると、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[エイリアスを使用して KMS キーへのアクセスを制御する](alias-authorization.md)」を参照してください。

1. (オプション) レプリカキーの説明を入力します。

   コンソールには、プライマリキーの現在の説明が表示されますが、変更することもできます。説明は、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに、同じ説明または異なる説明を与えることができます。 AWS KMS は、マルチリージョンキーのキー説明を同期しません。

1. (オプション) タグキーとオプションのタグ値を入力します。レプリカキーに複数のタグを割り当てるには、[**Add tag**] (タグを追加する) を選択します。

   コンソールには、プライマリキーに現在アタッチされているタグが表示されますが、変更することもできます。タグは、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに同じタグまたは異なるタグを与えることができます。 AWS KMS はマルチリージョンキーのタグを同期しません。

   KMS キーのタグ付けまたはタグ解除により、KMS キーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「[の ABAC AWS KMS](abac.md)」および「[タグを使用して KMS キーへのアクセスを制御する](tag-authorization.md)」を参照してください。

1. レプリカキーを管理できる IAM ユーザーとロールを選択します。
**注意事項**  
 マルチリージョンプライマリキーの作成時にデフォルトのキーポリシーを変更した場合、コンソールでは、レプリカキーの作成時にキー管理者またはキーユーザーを選択するように求めるメッセージ (ステップ 11～15) は表示されません。この場合、**キーポリシーの編集**ステップ (ステップ 17) で **[編集]** を選択して、キー管理者とユーザーに必要なアクセス許可をキーポリシーに手動で追加する必要があります。
このステップでは、[キーポリシー](key-policies.md)をレプリカキー用に作成するプロセスをスタートします。コンソールには、プライマリキーの現在のキーポリシーが表示されますが、変更することもできます。キーポリシーは、マルチリージョンキーの共有プロパティではありません。マルチリージョンのプライマリキーとそのレプリカに同じキーポリシーまたは別のキーポリシーを割り当てることができます。 AWS KMS は、キーポリシーを同期しません。KMS キーのキーポリシーは、いつでも変更できます。
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 選択した IAM ユーザーとロールがこの KMS キーを削除しないようにするには、ページの下部にある [**Key deletion**] (キーの削除) セクションで、[**Allow key administrators to delete this key**] (キー管理者にこのキーの削除を許可する) のチェックボックスをオフにします。

1. [**次へ**] を選択します。

1. [暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用できる IAM ユーザーとロールを選択します。
**メモ**  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **[他の AWS アカウントアカウント]** セクションで、**[別の AWS アカウントアカウントを追加する]** を選択し、外部アカウントの AWS アカウント ID 番号を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
外部アカウントでプリンシパルが KMS キーを使用できるようにするには、外部アカウントの管理者が、これらのアクセス許可を付与する IAM ポリシーを作成する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. **[完了]** を選択して、マルチリージョンレプリカキーを作成します。

### AWS KMS API の使用
<a name="replicate-api"></a>

マルチリージョンのレプリカキーを作成するには、[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) オペレーションを使用します。[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用してレプリカキーを作成することはできません。このオペレーションでは、一度に 1 つのレプリカキーが作成されます。指定するリージョンは、レプリカキーの[リージョンの要件](#replica-region)に準拠している必要があります。

`ReplicateKey` オペレーションを使用する際、マルチリージョンキーの任意の[共有プロパティ](multi-region-keys-overview.md#mrk-sync-properties)の値は指定しません。共有プロパティ値はプライマリキーからコピーされ、同期が維持されます。ただし、共有されないプロパティには値を指定できます。それ以外の場合、 はプライマリキーの値ではなく、KMS キーの標準デフォルト値 AWS KMS を適用します。

**注記**  
`Description`、`KeyPolicy`、または `Tags`パラメータの値を指定しない場合、 は空の文字列の説明、[デフォルトのキーポリシー](key-policy-default.md)、タグなしのレプリカキー AWS KMS を作成します。  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

例えば、次のコマンドでは、アジアパシフィック (シドニー) リージョン (ap-southeast-2) にマルチリージョンのレプリカキーを作成します。このレプリカキーは、米国東部 (バージニア北部) リージョン (us-east-1) のプライマリキーをモデルにしています。これは、`KeyId` パラメータの値で識別されます。この例では、キーポリシーを含む、他のすべてのプロパティのデフォルト値を受け入れます。

レスポンスは新しいレプリカキーを示します。これには、共有プロパティのフィールド (`KeyId`、`KeySpec`、`KeyUsage`、およびキーマテリアルのオリジン (`Origin`) など) が含まれます。また、プライマリキーとは独立したプロパティも含まれます (`Description`、キーポリシー (`ReplicaKeyPolicy`)、タグ (`ReplicaTags`) など)。

レスポンスには、プライマリキーのキー ARN とリージョン、およびそのすべてのレプリカキー (ap-southeast-2 リージョンで作成されたものを含む) も含まれます。この例では、このプライマリキーが既に欧州 (アイルランド) リージョン (eu-west-1) でレプリケートされていることを、`ReplicaKey` 要素が示しています。

```
$ aws kms replicate-key \
    --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \
    --replica-region ap-southeast-2
{
    "ReplicaKeyMetadata": {
        "MultiRegion": true,
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "REPLICA",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-east-1"
            },
            "ReplicaKeys": [
                {
                    "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "ap-southeast-2"
                },
                {
                    "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "eu-west-1"
                }
            ]
        },
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": 1607472987.918,
        "Description": "",
        "Enabled": true,
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    },
    "ReplicaKeyPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"key-default-1\",...,
    "ReplicaTags": []
}
```

# インポートされたキーマテリアルを持つ KMS キーの作成
<a name="importing-keys-conceptual"></a>

インポートされたキーマテリアルを使用すると、生成した暗号化キーで AWS リソースを保護できます。次に、 AWS KMSにキーマテリアルをインポートする手順の概要を説明します。この手順の各ステップの詳細については、該当するトピックを参照してください。

1. [キーマテリアルなしで KMS キーを作成](importing-keys-create-cmk.md) – オリジンは `EXTERNAL` である必要があります。のキーオリジンは、キーがインポートされたキーマテリアル用に設計されており、 が KMS キーのキーマテリアルを生成 AWS KMS できない`EXTERNAL`ことを示します。後のステップで、この KMS キーに独自のキーマテリアルをインポートします。

   インポートするキーマテリアルは、関連付けられた AWS KMS キーのキー仕様と互換性がある必要があります。互換性の詳細については、「[インポートされたキーマテリアルの要件](#importing-keys-material-requirements)」を参照してください。

1. [ラッピングパブリックキーとインポートトークンをダウンロード](importing-keys-get-public-key-and-token.md) – ステップ 1 を完了した後、ラッピングパブリックキーとインポートトークンをダウンロードします。これらの項目は、インポート中のキーマテリアルを保護します AWS KMS。

   このステップでは、RSA ラッピングキーのタイプ (「キー仕様」) と、 AWS KMSへの転送中のデータの暗号化に使用するラッピングアルゴリズムを選択します。同じキーマテリアルをインポートまたは再インポートするたびに、異なるラッピングキー仕様とラッピングキーアルゴリズムを選択できます。

1. [キーマテリアルを暗号化](importing-keys-encrypt-key-material.md) – ステップ 2 でダウンロードしたラッピングパブリックキーを使用して、独自のシステムで作成したキーマテリアルを暗号化します。

1. [キーマテリアルのインポート](importing-keys-import-key-material.md) — 手順 3 で作成した暗号化されたキーマテリアルと、手順 2 でダウンロードしたインポートトークンをアップロードします。

   この段階で、[オプションの有効期限を設定できます](importing-keys-import-key-material.md#importing-keys-expiration)。インポートされたキーマテリアルの有効期限が切れると、 はそれ AWS KMS を削除し、KMS キーは使用できなくなります。この KMS キーを再度使えるようにするには、**同じ**キーマテリアルを再インポートする必要があります。

   インポートオペレーションが正常に完了すると、KMS キーのキーステータスは `PendingImport` から `Enabled` に変化します。これで、KMS キーを暗号化オペレーションで使用できます。

AWS KMS は、[KMS キーの作成](ct-createkey.md)時、[ラップパブリックキーとインポートトークンのダウンロード](ct-getparametersforimport.md)時、および[キーマテリアルのインポート](ct-importkeymaterial.md)時に AWS CloudTrail 、ログにエントリを記録します。 AWS KMS また、 は、インポートされたキーマテリアルを削除するとき、または が AWS KMS [期限切れのキーマテリアルを削除するときに、エントリも記録します](ct-deleteexpiredkeymaterial.md)。

## キーマテリアルをインポートするためのアクセス許可
<a name="importing-keys-permissions"></a>

インポートされたキーマテリアルを使用して KMS キーを作成および管理するには、このプロセスのオペレーションに対するアクセス許可が必要です。KMS キーの作成時、キーポリシーに `kms:GetParametersForImport`、`kms:ImportKeyMaterial`、`kms:DeleteImportedKeyMaterial` のアクセス許可を付与できます。 AWS KMS コンソールでは、**外部**キーマテリアルオリジンでキーを作成すると、これらのアクセス許可がキー管理者に自動的に追加されます。

インポートされたキーマテリアルを持つ KMS キーを作成するには、プリンシパルに次の許可が必要です。
+ [kms:CreateKey](customer-managed-policies.md#iam-policy-example-create-key) (IAM ポリシー)
  + インポートされたキーマテリアルを持つ KMS キーに対するこの許可を制限するには、`EXTERNAL` の値を持つ [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin) ポリシー条件を使用します。

    ```
    {
      "Sid": "CreateKMSKeysWithoutKeyMaterial",
      "Effect": "Allow",
      "Resource": "*",
      "Action": "kms:CreateKey",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "EXTERNAL"
        }
      }
    }
    ```
+ [KMS:GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) (キーポリシーまたは IAM ポリシー)
  + 特定のラッピングアルゴリズムとラッピングキー仕様を使用する要求にこのアクセス許可を制限するには、[KMS: WrappingAlgorithm](conditions-kms.md#conditions-kms-wrapping-algorithm) および [KMS: WrappingKeySpec](conditions-kms.md#conditions-kms-wrapping-key-spec) ポリシー条件を使用します。
+ [KMS:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) (キーポリシーまたは IAM ポリシー)
  + 有効期限が切れるキーマテリアルを許可または禁止し、有効期限を制御するには、[KMS:ExpirationModel](conditions-kms.md#conditions-kms-expiration-model) および [KMS:Validto](conditions-kms.md#conditions-kms-valid-to) ポリシー条件を使用します。

インポートされたキーマテリアルを再インポートするには、プリンシパルに [KMS:getParametersforImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) および [KMS:ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) アクセス許可が必要です。

インポートされたキーマテリアルを削除するには、プリンシパルに [KMS:DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteImportedKeyMaterial.html) アクセス許可が必要です。

例えば、キーマテリアルがインポートされた KMS キーのすべての側面を管理する `KMSAdminRole` 許可をサンプルに付与するには、KMS キーのキーポリシーに次のようなキーポリシーステートメントを含めてください。

```
{
  "Sid": "Manage KMS keys with imported key material",
  "Effect": "Allow",
  "Resource": "*",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole"
  },
  "Action": [
    "kms:GetParametersForImport",
    "kms:ImportKeyMaterial",
    "kms:DeleteImportedKeyMaterial"
  ]  
}
```

## インポートされたキーマテリアルの要件
<a name="importing-keys-material-requirements"></a>

インポートするキーマテリアルには、関連付けられた KMS キーの[キー仕様](create-keys.md#key-spec)との互換性が必要です。非対称キーペアの場合、ペアのプライベートキーのみをインポートします。 はプライベートキーからパブリックキー AWS KMS を取得します。

AWS KMS は、インポートされたキーマテリアルを持つ KMS キーの次のキー仕様をサポートしています。
+ **対称暗号化キー**
  + **キー仕様:**
    + SYMMETRIC\$1DEFAULT。
  + **要件:**
    + 256 ビット (32 バイト) のバイナリデータ。
    + 中国リージョンでは、128 ビット (16 バイト) のバイナリデータである必要があります。
+ **HMAC キー**
  + **キー仕様:**
    + HMAC\$1224
    + HMAC\$1256
    + HMAC\$1384
    + HMAC\$1512
  + **要件:**
    + HMAC キーマテリアルは [RFC 2104](https://datatracker.ietf.org/doc/html/rfc2104) に準拠している必要があります。
    + キーの長さは、少なくともキー仕様で指定された長さと同じである必要があります。最大キー長は 1024 ビットです。
    + キーマテリアルが 1024 ビットを超える場合は、キーマテリアルをハッシュし、ハッシュ出力をインポートできます。ハッシュアルゴリズムは、作成する HMAC KMS キーのキー仕様と一致する必要があります。
  + **例**:
    + 2048 ビットのキーマテリアルを HMAC\$1256 キーにインポートするには、まず 2048 ビットのキーマテリアルの SHA-256 ハッシュを計算し、得られた 256 ビットのハッシュ出力を KMS キーにインポートします。
  + **有効なキーの長さ:**
    + HMAC\$1224: 224～1024 ビット
    + HMAC\$1256: 256～1024 ビット
    + HMAC\$1384: 384～1024 ビット
    + HMAC\$1512: 512～1024 ビット
+ **RSA 非対称プライベートキー**
  + **キー仕様:**
    + RSA\$12048
    + RSA\$13072
    + RSA\$14096
  + **要件:**
    + インポートする RSA 非対称プライベートキーは、[RFC 3447](https://datatracker.ietf.org/doc/html/rfc3447/) に準拠したキーペアの一部である必要があります。
    + **モジュラス**: 2048 ビット、3072 ビット、または 4096 ビット
    + **素数の数**: 2 (マルチプライム RSA キーはサポートされていません)
    + 非対称キーマテリアルは、[RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208) に準拠したパブリックキー暗号標準 (PKCS) \$18 形式で BER エンコードまたは DER エンコードされている必要があります。
+ **楕円曲線非対称プライベートキー**
  + **キー仕様:**
    + ECC\$1NIST\$1P256 (secp256r1)
    + ECC\$1NIST\$1P384 (secp384r1)
    + ECC\$1NIST\$1P521 (secp521r1)
    + ECC\$1SECG\$1P256K1 (secp256k1)
    + ECC\$1NIST\$1EDWARDS25519 (ed25519)
  + **要件:**
    + インポートする ECC 非対称プライベートキーは、[RFC 5915](https://datatracker.ietf.org/doc/html/rfc5915/) に準拠したキーペアの一部である必要があります。
    + **曲線:** NIST P-256、NIST P-384、NIST P-521, Secp256k1、NIST Ed25519。
    + **パラメータ:** 名前付き曲線のみ (パラメータが明示された ECC キーは拒否されます)。
    + **パブリックポイント座標:** 圧縮、非圧縮、または射影。
    + 非対称キーマテリアルは、[RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208) に準拠したパブリックキー暗号標準 (PKCS) \$18 形式で BER エンコードまたは DER エンコードされている必要があります。
+ **ML-DSA キー**
  + **キー仕様:**
    + ML\$1DSA\$144
    + ML\$1DSA\$165
    + ML\$1DSA\$187
**重要**  
ML-DSA キーのインポートはサポートされていません。
+ **SM2 非対称プライベートキー** (中国リージョンのみ)
  + **要件:**
    + インポートする SM2 非対称プライベートキーは、GM/T 0003 に準拠したキーペアの一部である必要があります。
    + **曲線:** SM2。
    + **パラメータ:** 名前付き曲線のみ (パラメータが明示された SM2 キーは拒否されます)。
    + **パブリックポイント座標:** 圧縮、非圧縮、または射影。
    + 非対称キーマテリアルは、[RFC 5208](https://datatracker.ietf.org/doc/html/rfc5208) に準拠したパブリックキー暗号標準 (PKCS) \$18 形式で BER エンコードまたは DER エンコードされている必要があります。

# ステップ 1: キーマテリアル AWS KMS key なしで を作成する
<a name="importing-keys-create-cmk"></a>

デフォルトでは、 は KMS キーを作成するときにキーマテリアル AWS KMS を作成します。代わりに独自のキーマテリアルをインポートするには、最初にキーマテリアルなしで KMS キーを作成します。そして、キーマテリアルをインポートします。キーマテリアルなしで KMS キーを作成するには、 AWS KMS コンソールまたは [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用します。

キーマテリアルなしでキーを作成するには、[オリジン](create-keys.md#key-origin)として `EXTERNAL` を指定します。KMS キーのオリジンプロパティは変更不可です。一度作成すると、インポートされたキーマテリアル用に設計された KMS キーを、 AWS KMS または他のソースからのキーマテリアルを持つ KMS キーに変換することはできません。

`EXTERNAL` オリジンを持つ KMS キーの[キーステータス](key-state.md)であり、`PendingImport` であるキーマテリアルはありません。KMS キーは、無期限に `PendingImport` 状態を維持できます。ただし、暗号化オペレーションでは `PendingImport` 状態で KMS キーを使用することはできません。キーマテリアルをインポートすると、KMS キーのキーステータスが `Enabled` に変わり、暗号オペレーションで使用できるようになります。

AWS KMS は、[KMS キーの作成](ct-createkey.md)、[パブリックキーとインポートトークンのダウンロード](ct-getparametersforimport.md)、[キーマテリアルのインポート](ct-importkeymaterial.md)時に AWS CloudTrail ログにイベントを記録します。 AWS KMS は、[インポートされたキーマテリアルの削除](ct-deleteimportedkeymaterial.md)時、または が期限切れのキーマテリアルを削除するときに CloudTrail イベントも記録します。 AWS KMS [期限切れのキーのマテリアルを削除](ct-deleteexpiredkeymaterial.md)

**Topics**
+ [キーマテリアルなしで KMS キーを作成する (コンソール)](#importing-keys-create-cmk-console)
+ [キーマテリアルなしで KMS キーを作成する (AWS KMS API)](#importing-keys-create-cmk-api)

## キーマテリアルなしで KMS キーを作成する (コンソール)
<a name="importing-keys-create-cmk-console"></a>

インポートされたキーマテリアルの KMS キーを 1 回作成する必要があるだけです。同じキーマテリアルを既存の KMS キーに必要な回数だけインポートおよび再インポートできますが、1 つの KMS キーに別のキーマテリアルをインポートすることはできません。詳細については、「[ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード](importing-keys-get-public-key-and-token.md)」を参照してください。

キーマテリアルがインポートされた既存の KMS キーを、**[Customer managed keys]** (カスタマーマネージドキー) テーブルで検索するには、右上隅にある歯車アイコンを使用して、KMS キーのリストの **[Origin]** (オリジン) 列を表示します。インポートされたキーの **Origin** 値は **EXTERNAL (キーマテリアルのインポート)** です。

インポートされたキーマテリアルを持つ KMS キーを作成するには、まず[目的のキータイプの KMS 　キー作成手順](create-keys.md)に従ってください。ただし、以下の例外事項があります。

キーの使用方法を選択したら、次の操作を行います。

1. **[詳細オプション]** を展開します。

1. **[キーマテリアルのオリジン]** で、**[EXTERNAL (キーマテリアルのインポート)]** を選択します。

1. インポートされたキーマテリアルの使用による影響について理解したことを示すため、**[インポートされたキーの使用によるセキュリティと耐久性への影響について理解しました]** の隣にあるチェックボックスをオンにします。これらの意味については、「[インポートされたキーマテリアルの保護](import-keys-protect.md)」を参照してください。

1. オプション: インポートされたキーマテリアルを持つ [マルチリージョン KMS キー](multi-region-keys-overview.md) を作成するには、**[リージョナリティ]** で **[マルチリージョンキー]** を選択します。

1. 基本的な手順に戻ります。基本的な手順の残りのステップは、そのタイプの KMS キーについてすべて同じです。

**[完了]** を選択すると、キーマテリアルがなく、ステータス ([キーステータス](key-state.md)) が **[インポート保留中]** の KMS キーが作成されたことになります。

ただし、**[カスタマー管理型のキー]** テーブルに戻るのではなく、コンソールには、キーマテリアルのインポートに必要なパブリックキーとインポートトークンをダウンロードできるページが表示されます。ここでダウンロードのステップを続行することも、**[キャンセル]** を選択してこの時点で停止することもできます。いつでもこのダウンロードのステップに戻ることができます。

次の手順: [ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード](importing-keys-get-public-key-and-token.md)

## キーマテリアルなしで KMS キーを作成する (AWS KMS API)
<a name="importing-keys-create-cmk-api"></a>

[AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) を使用してキーマテリアルを持たない対称暗号化 KMS キーを作成するには、`Origin` パラメータが `EXTERNAL` に設定された [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) リクエストを送信します。次の例では、[AWS Command Line Interface (AWS CLI) ](https://aws.amazon.com/cli/) を使用してこのオペレーションを行う方法を示します。

```
$ aws kms create-key --origin EXTERNAL
```

コマンドが成功した場合は、以下のような出力が表示されます。 AWS KMS キーの `Origin`は `EXTERNAL`で、 は `KeyState`です`PendingImport`。

**ヒント**  
コマンドが成功しない場合は、`KMSInvalidStateException` または `NotFoundException` が表示されることがあります。リクエストは再試行できます。

```
{
    "KeyMetadata": {
        "Origin": "EXTERNAL",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "Enabled": false,
        "MultiRegion": false,
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "PendingImport",
        "CreationDate": 1568289600.0,
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

後のステップで使用するために、コマンド出力からの `KeyId` 値をコピーしてから、「[ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード](importing-keys-get-public-key-and-token.md)」に進みます。

**注記**  
このコマンドは、`SYMMETRIC_DEFAULT` の `KeySpec` および`ENCRYPT_DECRYPT` の `KeyUsage` を含む対称暗号化 KMS キーを作成します。オプションのパラメータ `--key-spec` と `--key-usage` を使用して、非対称 KMS キーまたは HMAC KMS キーを作成できます。詳細については、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを参照してください。

# ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード
<a name="importing-keys-get-public-key-and-token"></a>

[キーマテリアル AWS KMS key なしで を作成](importing-keys-create-cmk.md)したら、 AWS KMS コンソールまたは [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API を使用して、その KMS キーのラップパブリックキーとインポートトークンをダウンロードします。ラップパブリックキーとインポートトークンはセットであり分割できないので、組み合わせて使用する必要があります。

ラップパブリックキーは、転送用の[キーマテリアルを暗号化](importing-keys-encrypt-key-material.md)するために使用します。RSA ラッピングキーペアをダウンロードする前に、RSA ラッピングキーペアの長さ (キー仕様) と、[ステップ 3](importing-keys-encrypt-key-material.md) でインポートしたキーマテリアルを転送用に暗号化するために使用するラッピングアルゴリズムを選択します。 は SM2 ラッピングキー仕様 AWS KMS もサポートしています (中国リージョンのみ）。

各ラップパブリックキーとインポートトークンのセットは 24 時間有効です。それらを 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいセットをダウンロードする必要があります。ラップパブリックキーとインポートトークンの新しいセットは、任意のタイミングでダウンロードが可能です。これにより、RSA ラップキーの長さ (キー仕様) を変更したり、紛失したセットを置き換えたりできます。

また、ラップパブリックキーとインポートトークンのセットをダウンロードして、KMS キーに[同じキーマテリアルを 再インポート](importing-keys-import-key-material.md#reimport-key-material)することもできます。このオペレーションは、キーマテリアルの有効期限を設定もしくは変更したり、期限切れまたは削除済みのキーマテリアルを復元したりする場合に実行します。キーマテリアルは、インポートするたびにダウンロードして再暗号化する必要があります AWS KMS。

**ラップパブリックキーの使用**  
ダウンロードには、ラップパブリックキーとも呼ばれる AWS アカウント、 に固有の*パブリックキー*が含まれています。  
キーマテリアルをインポートする前に、パブリックラッピングキーを使用してキーマテリアルを暗号化し、暗号化されたキーマテリアルを にアップロードします AWS KMS。は暗号化されたキーマテリアル AWS KMS を受信すると、対応するプライベートキーでキーマテリアルを復号し、AES 対称キーでキーマテリアルを再暗号化します。すべて AWS KMS ハードウェアセキュリティモジュール (HSM) 内で行われます。

**インポートトークンの使用**  
ダウンロードには、キーマテリアルが正しくインポートされたことを保証するメタデータが付随する、インポートトークンが含まれています。暗号化されたキーマテリアルを にアップロードするときは AWS KMS、このステップでダウンロードしたのと同じインポートトークンをアップロードする必要があります。

## ラップパブリックキーの仕様を選択
<a name="select-wrapping-key-spec"></a>

インポート中にキーマテリアルを保護するには、ダウンロード元のラップパブリックキー AWS KMSとサポートされている[ラップアルゴリズム](#select-wrapping-algorithm)を使用して暗号化します。ラップパブリックキーとインポートトークンをダウンロードする前に、キー仕様を選択します。すべてのラッピングキーペアは、 AWS KMS ハードウェアセキュリティモジュール (HSMs。プレーンテキストのプライベートキーが、HSM の外部に出ることはありません。

**RSA ラップキーの仕様**  
ラップパブリックキーの「キー仕様」によって、 AWS KMS への転送時にキーマテリアルを保護する RSA キーペアにおけるキーの長さが決まります。一般的には、実用的で最長のラップパブリックキーを使用することをお勧めします。各種の HSM やキーマネージャーをサポートするために、いくつかのラップパブリックキー仕様が提供されています。  
AWS KMS は、注記されている場合を除き、すべてのタイプのキーマテリアルをインポートするために使用される RSA ラッピングキーについて、次のキー仕様をサポートしています。  
+ RSA\$14096 (推奨)
+ RSA\$13072
+ RSA\$12048
**注記**  
ECC\$1NIST\$1P521 キーマテリアル、RSA\$12048 パブリックラップキー仕様、および RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの組み合わせはサポートされていません。  
RSA\$12048 パブリックラップキーを使用して、ECC\$1NIST\$1P521 のキーマテリアルを直接ラップすることはできません。大きなラップキー、または RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 ラップアルゴリズムを使用してください。

**SM2 ラップキーの仕様 (中国リージョンのみ)**  
AWS KMS は、非対称キーマテリアルのインポートに使用される SM2 ラッピングキーについて、次のキー仕様をサポートしています。  
+ SM2

## ラップアルゴリズムの選択
<a name="select-wrapping-algorithm"></a>

インポート中にキーマテリアルを保護するには、ダウンロードしたラップパブリックキーと、サポートされているラップアルゴリズムを使用して、キーマテリアルを暗号化します。

AWS KMS は、いくつかの標準 RSA ラッピングアルゴリズムと 2 ステップハイブリッドラッピングアルゴリズムをサポートしています。基本的には、インポートしたキーマテリアルおよび[ラップキー仕様](#select-wrapping-key-spec)との互換性がある、最も安全なラップアルゴリズムを使用することをお勧めします。通常、ハードウェアセキュリティモジュール (HSM) がサポートするアルゴリズム、またはキーマテリアルを保護するキー管理システムを選択します。

次の表は、キーマテリアルと KMS キーの各タイプでサポートされているラップアルゴリズムを示しています。これらのアルゴリズムは、優先度順にリストされています。


| キーマテリアル | サポートされるラップアルゴリズムと仕様 | 
| --- | --- | 
| 対称暗号化キー 256 ビット AES キー   128 ビット SM4 キー (中国リージョンのみ) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称 RSA プライベートキー  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称楕円曲線 (ECC) プライベートキー   RSA\$12048 ラップキー仕様の RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムを使用して、ECC\$1NIST\$1P521 のキーマテリアルをラップすることはできません。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| 非対称 SM2 プライベートキー (中国リージョンのみ) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 
| HMAC キー |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)  | 

**注記**  
`RSA_AES_KEY_WRAP_SHA_256` と `RSA_AES_KEY_WRAP_SHA_1` のラッピングアルゴリズムは、中国リージョンではサポートされていません。
+ `RSA_AES_KEY_WRAP_SHA_256` – 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA パブリックラップキーと RSAES\$1OAEP\$1SHA\$1256 ラップアルゴリズムによりAES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。

  RSA プライベートキーマテリアルをラッピングするには、`RSA_AES_KEY_WRAP_SHA_*` ラッピングアルゴリズムが必要です。ただし、`SM2PKE` ラッピングアルゴリズムを使用する必要がある中国リージョンは除きます。
+ `RSA_AES_KEY_WRAP_SHA_1` – 生成した AES 対称キーでキーマテリアルを暗号化し、その後、ダウンロードした RSA ラップパブリックキーと RSAES\$1OAEP\$1SHA\$11 ラップアルゴリズムにより AES 対称キーを暗号化する、2 段階のハイブリッドラップアルゴリズム。

  RSA プライベートキーマテリアルをラッピングするには、`RSA_AES_KEY_WRAP_SHA_*` ラッピングアルゴリズムが必要です。ただし、`SM2PKE` ラッピングアルゴリズムを使用する必要がある中国リージョンは除きます。
+ `RSAES_OAEP_SHA_256` — SHA -256 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。
+ `RSAES_OAEP_SHA_1` — SHA-1 ハッシュ関数を使用した最適な非対称暗号化パディング (OAEP) を使用する RSA 暗号化アルゴリズム。
+ `RSAES_PKCS1_V1_5` (廃止。2023 年 10 月 10 日現在、 AWS KMS は RSAES\$1PKCS1\$1V1\$15 ラップアルゴリズムをサポートしていません) – PKCS \$11 バージョン 1.5 で定義されたパディング形式を持つ RSA 暗号化アルゴリズム。
+ `SM2PKE` (中国リージョンのみ) – GM/T 0003.4-2012 の OSCCA によって定義される楕円曲線ベースの暗号化アルゴリズムです。

**Topics**
+ [ラップパブリックキーの仕様を選択](#select-wrapping-key-spec)
+ [ラップアルゴリズムの選択](#select-wrapping-algorithm)
+ [ラップパブリックキーとインポートトークンのダウンロード (コンソール)](#importing-keys-get-public-key-and-token-console)
+ [ラップパブリックキーとインポートトークンのダウンロード (AWS KMS API)](#importing-keys-get-public-key-and-token-api)

## ラップパブリックキーとインポートトークンのダウンロード (コンソール)
<a name="importing-keys-get-public-key-and-token-console"></a>

 AWS KMS コンソールを使用して、ラップパブリックキーとインポートトークンをダウンロードできます。

1. [キーマテリアルなしで KMS キーを作成するステップ](importing-keys-create-cmk.md#importing-keys-create-cmk-console)を完了し、**ラップキーとインポートトークンのダウンロード**のページが開いている場合は、[Step 10](#id-wrap-step) に進みます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。
**ヒント**  
キーマテリアルは、**EXTERNAL (キーマテリアルのインポート)**  の **Origin** を持つ KMS キーにのみインポートできます。これは、キーマテリアルなしで KMS キーが作成されたことを示します。テーブルに [**オリジン**] 列を追加するには、右上隅の設定アイコン (![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/console-icon-settings-new.png)) を選択します。[**オリジン**] をオンにして、[**確認**] を選択します。

1. インポート保留中の KMS キーのエイリアスまたはキー ID を選択します。

1. [ **暗号構成** ] タブを選択し、その値を表示します。これらのタブは、**[General configuration]** (一般設定) セクションの下にあります。

   キーマテリアルは、**EXTERNAL (キーマテリアルのインポート)** の **Origin** として、KMS キーにのみインポートできます。インポートされたキーマテリアルで KMS キーを作成する方法の詳細については、[キーの AWS KMS キーマテリアルのインポート](importing-keys.md) を参照してください。

1. キータイプに基づいて適切なタブを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアル**タブを選択します。
   + 対称暗号化キーの場合は、**キーマテリアルとローテーション**タブを選択します。

1. インポートアクションを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアルのインポート**を選択します。
   + 対称暗号化キーの場合は、次のいずれかを選択します。
     + **初期キーマテリアルをインポート**する (キーマテリアルがまだインポートされていない場合)
     + **新しいキーマテリアルをインポート**する (ローテーション用の新しいマテリアルを追加するには)
     + **キーマテリアルを再インポート**する (キーマテリアルテーブルの**アクション**メニューから使用可能)
**注記**  
マルチリージョンキーの場合は、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。次に、同じキーマテリアルを各レプリカリージョンキーにインポートします。  
プライマリマルチリージョンキーの場合、**キーマテリアル**テーブルには、すべての**レプリカリージョン (「0 of 3 imported」など) のインポートステータスを表示するレプリカのインポート状態**列が含まれます。レプリカのインポート状態値を選択して、各レプリカリージョンのインポートステータスを示すモーダルを開きます。モーダルは、新しい**キーマテリアルがインポート**されていないレプリカリージョンのキーマテリアルのインポートリンクを提供します。

1. **[ラップキー仕様の選択]** で、使用する KMS キーの設定を選択します。このキーの作成後は、キー仕様を変更することはできません。

1. <a name="id-wrap-step"></a>[**ラップアルゴリズムの選択**] で、キーマテリアルの暗号化に使用するオプションを選択します。オプションの詳細については、「[ラップアルゴリズムの選択](#select-wrapping-algorithm)」を参照してください。

1. **[ラップパブリックキーとインポートトークンをダウンロード]** を選択した後、ファイルを保存します。

   [**次へ**] オプションがある場合、今すぐプロセスを続行するには、[**次へ**] を選択します。後で続行するには、[**キャンセル**] を選択します。

1. 前のステップ (`Import_Parameters_<key_id>_<timestamp>`) で保存した `.zip` ファイルを解凍します。

   フォルダには以下のファイルが含まれています。
   + `WrappingPublicKey.bin` という名前のファイルにある、ラップパブリックキー。
   + `ImportToken.bin` という名前のファイルにある、インポートトークン。
   + README.txt という名前のテキストファイル。このファイルには、ラップパブリックキー、キーマテリアルの暗号化に使用するラップアルゴリズム、およびラップパブリックキーとインポートトークンの有効期限が切れる日時に関する情報が格納されています。

1. プロセスを続行する場合は、「[キーマテリアルの暗号化](importing-keys-encrypt-key-material.md)」を参照してください。

## ラップパブリックキーとインポートトークンのダウンロード (AWS KMS API)
<a name="importing-keys-get-public-key-and-token-api"></a>

パブリックキーとインポートトークンのダウンロードには、[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) API を使用します。インポートされたキーマテリアルに関連付けられる KMS キーを指定します。この KMS キーには、`EXTERNAL` の [Origin](create-keys.md#key-origin) 値が必要です。

**注記**  
ML-DSA KMS キーのキーマテリアルをインポートすることはできません。

この例では、`RSA_AES_KEY_WRAP_SHA_256` ラップアルゴリズム、RSA\$13072 ラップパブリックキーの仕様、およびサンプルキー ID を規定します。これらのサンプル値は、実際のダウンロードのための有効な値に置き換えます。キー ID には [キー ID](concepts.md#key-id-key-id) または[キー ARN](concepts.md#key-id-key-ARN) を使用できますが、このオペレーションでは、[エイリアス名](concepts.md#key-id-alias-name)や[エイリアス ARN](concepts.md#key-id-alias-ARN) は使用できません。

```
$ aws kms get-parameters-for-import \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --wrapping-algorithm RSA_AES_KEY_WRAP_SHA_256 \
    --wrapping-key-spec RSA_3072
```

コマンドが成功した場合は、以下のような出力が表示されます。

```
{
    "ParametersValidTo": 1568290320.0,
    "PublicKey": "public key (base64 encoded)",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "ImportToken": "import token (base64 encoded)"
}
```

次のステップのためにデータを準備します。パブリックキーとインポートトークンを base64 でデコードし、デコードされた値をファイルに保存します。

パブリックキーとインポートトークンを base64 でデコードするには、次を実行します。

1. base64 でエンコードされたパブリックキー (この例の出力では *パブリックキー (base64 エンコード済み)*) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。ファイルに `PublicKey.b64` などの名前を付けます。

1. ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、[OpenSSL](https://openssl.org/) を使用します。次の例では、前のステップ (`PublicKey.b64`) で保存したファイルのデータをデコードして、`WrappingPublicKey.bin` という名前の新しいファイルに出力を保存します。

   ```
   $ openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
   ```

1. base64 でエンコードされたインポートトークン (この例の出力では *インポートトークン (base64 エンコード済み)*) をコピーして、新しいファイルに貼り付けて、ファイルを保存します。`importtoken.b64` など、ファイルにわかりやすい名前を付けます。

1. ファイル内容の base64 デコード、およびデコードされたデータの新しいファイルへの保存に、[OpenSSL](https://openssl.org/) を使用します。次の例では、前のステップ (`ImportToken.b64`) で保存したファイルのデータをデコードして、`ImportToken.bin` という名前の新しいファイルに出力を保存します。

   ```
   $ openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin
   ```

[ステップ 3: キーマテリアルを暗号化する](importing-keys-encrypt-key-material.md) に進みます。

# ステップ 3: キーマテリアルを暗号化する
<a name="importing-keys-encrypt-key-material"></a>

[パブリックキーとインポートトークンをダウンロード](importing-keys-get-public-key-and-token.md)した後、ダウンロードしたパブリックキーと指定したラップアルゴリズムを使用してキーマテリアルを暗号化します。パブリックキーまたはインポートトークンを置き換える必要がある場合、あるいはラップアルゴリズムを変更する必要がある場合は、新しいパブリックキーとインポートトークンをダウンロードする必要があります。が AWS KMS サポートするパブリックキーとラッピングアルゴリズムの詳細については、[ラップパブリックキーの仕様を選択](importing-keys-get-public-key-and-token.md#select-wrapping-key-spec)「」および「」を参照してください[ラップアルゴリズムの選択](importing-keys-get-public-key-and-token.md#select-wrapping-algorithm)。

キーマテリアルはバイナリ形式である必要があります。詳細については、「[インポートされたキーマテリアルの要件](importing-keys-conceptual.md#importing-keys-material-requirements)」を参照してください。

**注記**  
非対称キーペアの場合、プライベートキーのみを暗号化してインポートします。 は、プライベートキーからパブリックキー AWS KMS を取得します。  
ECC\$1NIST\$1P521 キーマテリアル、RSA\$12048 パブリックラップキー仕様、および RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの組み合わせはサポートされていません。  
RSA\$12048 パブリックラップキーを使用して、ECC\$1NIST\$1P521 のキーマテリアルを直接ラップすることはできません。大きなラップキー、または RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 ラップアルゴリズムを使用してください。  
RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 および RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 ラッピングアルゴリズムは、中国リージョンではサポートされていません。

通常、ハードウェアセキュリティモジュール (HSM) またはキー管理システムからエクスポートする場合、キーマテリアルを暗号化します。バイナリ形式でキーマテリアルをエクスポートする方法については、HSM またはキー管理システムに関するドキュメントを参照してください。OpenSSL を使用して、概念実証デモを提供する、次のセクションを参照できます。

キーマテリアルを暗号化する場合、[パブリックキーとインポートトークンをダウンロード](importing-keys-get-public-key-and-token.md)したときに指定した、同じラップアルゴリズムを使用します。指定したラップアルゴリズムを見つけるには、関連付けられた [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) リクエストの CloudTrail ログイベントを確認してください。

## テスト用のキーマテリアルを生成
<a name="importing-keys-example-key-material"></a>

次の OpenSSL コマンドは、サポートされている各タイプのテスト用のキーマテリアルを生成します。これらの例は、テストと概念実証デモのみを目的としています。本稼働システムの場合、ハードウェアセキュリティモジュールやキー管理システムなど、より安全な方法を使用してキーマテリアルを生成します。

非対称キーペアのプライベートキーを DER でエンコードされた形式に変換するには、パイプを使ってキーマテリアル生成コマンドを次の `openssl pkcs8` コマンドに渡します。この `topk8` パラメータは、プライベートキーを入力として受け取り、PKCS\$18 形式のキーを返すように OpenSSL に指示します。(デフォルトの動作は逆です) 

```
openssl pkcs8 -topk8 -outform der -nocrypt
```

次のコマンドは、サポートされている各キータイプのテストキーマテリアルを生成します。
+ 対称暗号化キー (32 バイト)

  このコマンドは、256 ビット対称キー (32 バイトのランダム文字列) を生成し、`PlaintextKeyMaterial.bin` ファイルに保存します。このキーマテリアルをエンコードする必要はありません。

  ```
  openssl rand -out PlaintextKeyMaterial.bin 32
  ```

  中国リージョンでのみ、128 ビット対称キー (16 バイトのランダム文字列) を生成する必要があります。

  ```
  openssl rand -out PlaintextKeyMaterial.bin 16
  ```
+ HMAC キー

  このコマンドは、指定したサイズのランダムバイト文字列を生成します。このキーマテリアルをエンコードする必要はありません。

  HMAC キーの長さは、KMS キーのキー仕様で定義されている長さと一致する必要があります。例えば、KMS キーが HMAC\$1384 の場合、384 ビット (48 バイト) キーをインポートする必要があります。

  ```
  openssl rand -out HMAC_224_PlaintextKey.bin 28
  
  openssl rand -out HMAC_256_PlaintextKey.bin 32
  
  openssl rand -out HMAC_384_PlaintextKey.bin 48
  
  openssl rand -out HMAC_512_PlaintextKey.bin 64
  ```
+ RSA プライベートキー

  ```
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_2048_PrivateKey.der
  
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:3072 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_3072_PrivateKey.der
  
  openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:4096 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_4096_PrivateKey.der
  ```
+ ECC プライベートキー

  ```
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P256_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-384 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P384_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-521 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P521_PrivateKey.der
  
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:secp256k1 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_SECG_P256K1_PrivateKey.der
  ```
+ SM2 プライベートキー (中国リージョンのみ)

  ```
  openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:sm2 | openssl pkcs8 -topk8 -outform der -nocrypt > SM2_PrivateKey.der
  ```

## OpenSSL によるキーマテリアルの暗号化の例
<a name="importing-keys-encrypt-key-material-openssl"></a>

以下の例は、[OpenSSL](https://openssl.org/) を使用して、ダウンロードしたパブリックキーでキーマテリアルを暗号化する方法を示しています。SM2 パブリックキー (中国リージョンのみ) を使用してキーマテリアルを暗号化するには、[`SM2OfflineOperationHelper` クラス](offline-operations.md#key-spec-sm-offline-helper)を使用します。各ラッピングアルゴリズムがサポートするキーマテリアルタイプの詳細については、「[ラップアルゴリズムの選択](importing-keys-get-public-key-and-token.md#select-wrapping-algorithm)」を参照してください。

**重要**  
これらの例では、概念実証デモのみです。本稼働システムの場合、より安全な方法 (商用 HSM またはキー管理システムなど) を使用して、キーマテリアルを生成し、保存します。  
ECC\$1NIST\$1P521 キーマテリアル、RSA\$12048 パブリックラップキー仕様、および RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの組み合わせはサポートされていません。  
RSA\$12048 パブリックラップキーを使用して、ECC\$1NIST\$1P521 のキーマテリアルを直接ラップすることはできません。大きなラップキー、または RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1\$1 ラップアルゴリズムを使用してください。

------
#### [ RSAES\$1OAEP\$1SHA\$11 ]

AWS KMS は、対称暗号化キー (SYMMETRIC\$1DEFAULT)、楕円曲線 (ECC) プライベートキー、SM2 プライベートキー、および HMAC キーの RSAES\$1OAEP\$1SHA\$11 をサポートしています。

RSAES\$1OAEP\$1SHA\$11 は RSA プライベートキーではサポートされていません。また、任意の RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの RSA\$12048 パブリックラップキーを使用して ECC\$1NIST\$1P521 (secp521r1) プライベートキーをラップすることはできません。より大きいサイズのパブリックラップキーまたは RSA\$1AES\$1KEY\$1WRAP ラップアルゴリズムを使用する必要があります。

次の例では、[ダウンロードしたパブリックキー](importing-keys-get-public-key-and-token.md)と RSAES\$1OAEP\$1SHA\$11 ラップアルゴリズムを使用してキーマテリアルを暗号化し、`EncryptedKeyMaterial.bin` ファイルに保存します。

この例では、以下のようになっています：
+ *`WrappingPublicKey.bin`* は、ダウンロードしたラップパブリックキーを含むファイルです。
+ *`PlaintextKeyMaterial.bin`* は、`PlaintextKeyMaterial.bin`、`HMAC_384_PlaintextKey.bin`、`ECC_NIST_P521_PrivateKey.der` など、暗号化するキーマテリアルを含むファイルです。

```
$ openssl pkeyutl \
    -encrypt \
    -in PlaintextKeyMaterial.bin \
    -out EncryptedKeyMaterial.bin \
    -inkey WrappingPublicKey.bin \
    -keyform DER \
    -pubin \
    -pkeyopt rsa_padding_mode:oaep \
    -pkeyopt rsa_oaep_md:sha1
```

------
#### [ RSAES\$1OAEP\$1SHA\$1256 ]

AWS KMS は、対称暗号化キー (SYMMETRIC\$1DEFAULT)、楕円曲線 (ECC) プライベートキー、SM2 プライベートキー、および HMAC キーの RSAES\$1OAEP\$1SHA\$1256 をサポートしています。

RSAES\$1OAEP\$1SHA\$1256 は RSA プライベートキーではサポートされていません。また、任意の RSAES\$1OAEP\$1SHA\$1\$1 ラップアルゴリズムの RSA\$12048 パブリックラップキーを使用して ECC\$1NIST\$1P521 (secp521r1) プライベートキーをラップすることはできません。より大きいサイズのパブリックキーまたは RSA\$1AES\$1KEY\$1WRAP ラップアルゴリズムを使用する必要があります。

次の例では、[ダウンロードしたパブリックキー](importing-keys-get-public-key-and-token.md)と RSAES\$1OAEP\$1SHA\$1256 ラップアルゴリズムを使用してキーマテリアルを暗号化し、`EncryptedKeyMaterial.bin` ファイルに保存します。

この例では、以下のようになっています：
+ *`WrappingPublicKey.bin`* は、ダウンロードしたパブリックラップキーを含むファイルです。コンソールからパブリックキーをダウンロードした場合、このファイルの名前は `wrappingKey_KMS key_key_ID_timestamp` (例えば、`wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`) となります。
+ *`PlaintextKeyMaterial.bin`* は、`PlaintextKeyMaterial.bin`、`HMAC_384_PlaintextKey.bin`、`ECC_NIST_P521_PrivateKey.der` など、暗号化するキーマテリアルを含むファイルです。

```
$ openssl pkeyutl \
    -encrypt \
    -in PlaintextKeyMaterial.bin \
    -out EncryptedKeyMaterial.bin \
    -inkey WrappingPublicKey.bin \
    -keyform DER \
    -pubin \
    -pkeyopt rsa_padding_mode:oaep \
    -pkeyopt rsa_oaep_md:sha256 \
    -pkeyopt rsa_mgf1_md:sha256
```

------
#### [ RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 ]

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 ラップアルゴリズムには 2 つの暗号化オペレーションオペレーションが含まれています。

1. 生成した AES 対称キーと AES 対称暗号化アルゴリズムを使用してキーマテリアルを暗号化します。

1. 使用した AES 対称キーを、ダウンロードしたパブリックキーと RSAES\$1OAEP\$1SHA\$11 ラップアルゴリズムで暗号化します。

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$11 ラップアルゴリズムには OpenSSL バージョン 3.*x* 以降が必要です。

1. 

**256 ビット AES 対称暗号化キーを生成する**

   このコマンドは、256 ランダムビットで構成される AES 対称暗号化キーを生成し、`aes-key.bin` ファイルに保存します

   ```
   # Generate a 32-byte AES symmetric encryption key
   $ openssl rand -out aes-key.bin 32
   ```

1. 

**AES 対称暗号化キーを使用してキーマテリアルを暗号化する**

   このコマンドは、AES 対称暗号化キーを使用してキーマテリアルを暗号化し、暗号化されたキーマテリアルを `key-material-wrapped.bin` ファイルに保存します。

   このコマンド例では、
   + *`PlaintextKeyMaterial.bin`* は、`PlaintextKeyMaterial.bin`、`HMAC_384_PlaintextKey.bin`、`RSA_3072_PrivateKey.der`、`ECC_NIST_P521_PrivateKey.der` など、インポートするキーマテリアルを含むファイルです。
   + *`aes-key.bin`* は、前のコマンドで生成した 256 ビット AES 対称暗号化キーを含むファイルです。

   ```
   # Encrypt your key material with the AES symmetric encryption key
   $ openssl enc -id-aes256-wrap-pad \
           -K "$(xxd -p < aes-key.bin | tr -d '\n')" \
           -iv A65959A6 \
           -in PlaintextKeyMaterial.bin \
           -out key-material-wrapped.bin
   ```

1. 

**AES 対称暗号化キーをパブリックキーで暗号化する**

   このコマンドは、ダウンロードしたパブリックキーと RSAES\$1OAEP\$1SHA\$11 ラップアルゴリズムで AES 対称暗号化キーを暗号化し、DER エンコードして `aes-key-wrapped.bin` ファイルに保存します。

   このコマンド例では、
   + *`WrappingPublicKey.bin`* は、ダウンロードしたパブリックラップキーを含むファイルです。コンソールからパブリックキーをダウンロードした場合、このファイルの名前は `wrappingKey_KMS key_key_ID_timestamp` (例えば、`wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`) となります
   + *`aes-key.bin`* は、このシーケンスの例の最初のコマンドで生成した 256 ビット AES 対称暗号化キーを含むファイルです。

   ```
   # Encrypt your AES symmetric encryption key with the downloaded public key
   $ openssl pkeyutl \
       -encrypt \
       -in aes-key.bin \
       -out aes-key-wrapped.bin \
       -inkey WrappingPublicKey.bin \
       -keyform DER \
       -pubin \
       -pkeyopt rsa_padding_mode:oaep \
       -pkeyopt rsa_oaep_md:sha1 \
       -pkeyopt rsa_mgf1_md:sha1
   ```

1. 

**インポートするファイルを生成する**

   暗号化されたキーマテリアルを含むファイルと暗号化された AES キーを含むファイルを連結します。これらを `EncryptedKeyMaterial.bin` ファイルに保存します。このファイルは、[ステップ 4: キーマテリアルのインポート](importing-keys-import-key-material.md) にインポートするファイルです。

   このコマンド例では、
   + *`key-material-wrapped.bin`* は、暗号化されたキーマテリアルを含むファイルです。
   + *`aes-key-wrapped.bin`* は、暗号化された AES 暗号化キーを含むファイルです。

   ```
   # Combine the encrypted AES key and encrypted key material in a file
   $ cat aes-key-wrapped.bin key-material-wrapped.bin > EncryptedKeyMaterial.bin
   ```

------
#### [ RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 ]

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 ラップアルゴリズムには 2 つの暗号化手順が含まれています。

1. 生成した AES 対称キーと AES 対称暗号化アルゴリズムを使用してキーマテリアルを暗号化します。

1. 使用した AES 対称キーを、ダウンロードしたパブリックキーと RSAES\$1OAEP\$1SHA\$1256 ラップアルゴリズムで暗号化します。

RSA\$1AES\$1KEY\$1WRAP\$1SHA\$1256 ラップアルゴリズムには OpenSSL バージョン 3.*x* 以降が必要です。

1. 

**256 ビット AES 対称暗号化キーを生成する**

   このコマンドは、256 ランダムビットで構成される AES 対称暗号化キーを生成し、`aes-key.bin` ファイルに保存します

   ```
   # Generate a 32-byte AES symmetric encryption key
   $ openssl rand -out aes-key.bin 32
   ```

1. 

**AES 対称暗号化キーを使用してキーマテリアルを暗号化する**

   このコマンドは、AES 対称暗号化キーを使用してキーマテリアルを暗号化し、暗号化されたキーマテリアルを `key-material-wrapped.bin` ファイルに保存します。

   このコマンド例では、
   + *`PlaintextKeyMaterial.bin`* は、`PlaintextKeyMaterial.bin`、`HMAC_384_PlaintextKey.bin`、`RSA_3072_PrivateKey.der`、`ECC_NIST_P521_PrivateKey.der` など、インポートするキーマテリアルを含むファイルです。
   + *`aes-key.bin`* は、前のコマンドで生成した 256 ビット AES 対称暗号化キーを含むファイルです。

   ```
   # Encrypt your key material with the AES symmetric encryption key
   $ openssl enc -id-aes256-wrap-pad \
           -K "$(xxd -p < aes-key.bin | tr -d '\n')" \
           -iv A65959A6 \
           -in PlaintextKeyMaterial.bin \
           -out key-material-wrapped.bin
   ```

1. 

**AES 対称暗号化キーをパブリックキーで暗号化する**

   このコマンドは、ダウンロードしたパブリックキーと RSAES\$1OAEP\$1SHA\$1256 ラップアルゴリズムで AES 対称暗号化キーを暗号化し、DER エンコードして `aes-key-wrapped.bin` ファイルに保存します。

   このコマンド例では、
   + *`WrappingPublicKey.bin`* は、ダウンロードしたパブリックラップキーを含むファイルです。コンソールからパブリックキーをダウンロードした場合、このファイルの名前は `wrappingKey_KMS key_key_ID_timestamp` (例えば、`wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909`) となります
   + *`aes-key.bin`* は、このシーケンスの例の最初のコマンドで生成した 256 ビット AES 対称暗号化キーを含むファイルです。

   ```
   # Encrypt your AES symmetric encryption key with the downloaded public key
   $ openssl pkeyutl \
       -encrypt \
       -in aes-key.bin \
       -out aes-key-wrapped.bin \
       -inkey WrappingPublicKey.bin \
       -keyform DER \
       -pubin \
       -pkeyopt rsa_padding_mode:oaep \
       -pkeyopt rsa_oaep_md:sha256 \
       -pkeyopt rsa_mgf1_md:sha256
   ```

1. 

**インポートするファイルを生成する**

   暗号化されたキーマテリアルを含むファイルと暗号化された AES キーを含むファイルを連結します。これらを `EncryptedKeyMaterial.bin` ファイルに保存します。このファイルは、[ステップ 4: キーマテリアルのインポート](importing-keys-import-key-material.md) にインポートするファイルです。

   このコマンド例では、
   + *`key-material-wrapped.bin`* は、暗号化されたキーマテリアルを含むファイルです。
   + *`aes-key-wrapped.bin`* は、暗号化された AES 暗号化キーを含むファイルです。

   ```
   # Combine the encrypted AES key and encrypted key material in a file
   $ cat aes-key-wrapped.bin key-material-wrapped.bin > EncryptedKeyMaterial.bin
   ```

------

[ステップ 4: キーマテリアルのインポート](importing-keys-import-key-material.md) に進みます。

# ステップ 4: キーマテリアルのインポート
<a name="importing-keys-import-key-material"></a>

[キーマテリアルを暗号化する](importing-keys-encrypt-key-material.md)と、キーマテリアルをインポートして AWS KMS keyで使用できます。キーマテリアルをインポートするには、[ステップ 3: キーマテリアルを暗号化する](importing-keys-encrypt-key-material.md) から暗号化されたキーマテリアルと、[ステップ 2: ラップパブリックキーおよびインポートトークンのダウンロード](importing-keys-get-public-key-and-token.md) でダウンロードしたインポートトークンをアップロードします。[パブリックキーとインポートトークンをダウンロード](importing-keys-get-public-key-and-token.md)したときに指定したものと同じ KMS キーに、キーマテリアルをインポートする必要があります。キーマテリアルが正常にインポートされると、KMS キーの[キーステータス](key-state.md)が `Enabled` に変化し、暗号化オペレーションで KMS キーを使用できるようになります。

キーマテリアルをインポートする場合、キーマテリアルの[有効期限をオプションで設定](#importing-keys-expiration)できます。キーマテリアルが有効期限切れになると、 AWS KMS はキーマテリアルを削除し、KMS キーは使用不可能になります。キーマテリアルをインポートした後は、現在のインポートの有効期限を設定、変更、またはキャンセルできません。これらの値を変更するには、同じキーマテリアルを[再インポート](#reimport-key-material)する必要があります。

`EXTERNAL` オリジンを持つすべての KMS キーの場合、インポートされた最初のキーマテリアルが最新になり、永続的に関連付けられます。`EXTERNAL` オリジンを使用した対称暗号化キーは、オンデマンドローテーションをサポートします。オンデマンドローテーションをサポートするインポート済みキーに複数のキーマテリアルを関連付けることができます。新しいキーマテリアルをインポートするプロセスは、[「新しいキーマテリアルをインポートする」セクションで説明されているように、単一リージョンキーとマルチリージョンキー](#import-new-key-material)で異なります。新しいキーマテリアルを KMS キーに関連付けるには、[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) アクションで `importType` パラメータを `NEW_KEY_MATERIAL` に設定する必要があります。オプションの `ImportType` パラメータのデフォルト値は `EXISTING_KEY_MATERIAL` です。`ImportType` パラメータを省略するか、`EXISTING_KEY_MATERIAL` として指定するときは、以前に KMS キーに関連付けたキーマテリアルをインポートする必要があります。

非対称キーまたは`EXTERNAL`オリジンを持つ HMAC KMS キーの場合、キーに関連付けることができるキーマテリアルは 1 つだけです。 AWS KMS は、 `ImportType`パラメータを使用して [ ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) API リクエストを拒否します。

KMS キーに永続的に関連付けられているすべてのキーマテリアルがインポートされると、KMS キーを暗号化オペレーションで使用できます。これらのキーマテリアルのいずれかを削除した場合、またはキーマテリアルの期限が切れた場合、KMS キーの状態は `PendingImport` に変わり、キーは暗号化オペレーションに使用できなくなります。

キーマテリアルをインポートするには、[AWS KMS コンソール](#importing-keys-import-key-material-console)または [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) API を使用します。HTTP リクエストを作成することにより、または [AWS SDKs](https://aws.amazon.com/tools/#sdk)、[AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/) または [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/) を使用することにより、直接 API を使用できます。

キーマテリアルをインポートすると、[ImportKeyMaterial エントリ](ct-importkeymaterial.md)が AWS CloudTrail ログに追加され、`ImportKeyMaterial`オペレーションが記録されます。CloudTrail エントリは、 AWS KMS コンソールと AWS KMS API のどちらを使用する場合でも同じです。

## 有効期限の設定 (オプション)
<a name="importing-keys-expiration"></a>

KMS キーのキーマテリアルをインポートするとき、オプションで、キーマテリアルの有効期限 (日付と時刻) をインポートした日から最大 365 日間までの範囲で設定できます。インポートされたキーマテリアルの有効期限が切れると、 はそれ AWS KMS を削除します。このアクションにより KMS キーの[キーキステータス](key-state.md#key-state-table)は `PendingImport` に変更され、暗号化オペレーションで使用できなくなります。KMS キーを使用する場合は、[元のキーマテリアルを再度インポート](#reimport-key-material)する必要があります。

インポートされたキーマテリアルが頻繁に期限切れになるようにすれば規制要件を満たすのには役立ちますが、KMS キーで暗号化されたデータのリスクが高まります。元のキーマテリアルのコピーを再インポートするまでは、キーマテリアルの期限が切れた KMS キーは使用できず、KMS キーで暗号化されたデータにはアクセスできなくなります。元のキーマテリアルのコピーを紛失するなど何らかの理由でキーマテリアルを再インポートしなければ、その KMS キーは永久に使用できなくなり、その KMS キーで暗号化されたデータは回復不能となります。

このリスクを軽減するには、インポートされたキーマテリアルのコピーにアクセスできることを確認し、キーマテリアルが期限切れになって AWS ワークロードを中断する前に削除して再インポートするシステムを設計します。インポートされたキーマテリアルの、有効期限の[アラームを設定](imported-key-material-expiration-alarm.md)し、期限切れになる前に、キーマテリアルを再インポートする十分な時間を確保しておくことが推奨されます。また、CloudTrail ログを使用して、[キーマテリアルをインポート (および再インポート)](ct-importkeymaterial.md) したり[インポートしたキーマテリアルを削除](ct-deleteimportedkeymaterial.md)したりするオペレーションや、[期限切れのキーマテリアルを削除](ct-deleteexpiredkeymaterial.md)する AWS KMS オペレーションを監査することもできます。

AWS KMS は、削除されたキーマテリアルを復元、復元、または再現することはできません。有効期限を設定する代わりに、インポートしたキーマテリアルをプログラムで定期的に[削除](importing-keys-delete-key-material.md)し[再インポート](#reimport-key-material)することができますが、元のキーマテリアルのコピーを保持するための要件は同じです。

キーマテリアルをインポートするときに、インポートしたキーマテリアルの有効期限が切れているかどうか、および、いつ切れるのかを判断します。ただし、キーマテリアルを削除して再インポートすれば、有効期限を有効化または無効化することや、新しい有効期限を設定することができます。有効期限を有効 (`KEY_MATERIAL_EXPIRES`) および無効 (`KEY_MATERIAL_DOES_NOT_EXPIRE`) にするときは [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) の `ExpirationModel` パラメーターを使用し、有効期限を設定するときは `ValidTo` パラメータを使用します。最大日数はインポートした日から 365 日目です。最小日数はありませんが、時刻は未来の時刻でなければなりません。

## キーマテリアルの説明を設定する
<a name="set-key-material-description"></a>

`EXTERNAL` オリジンを持つ対称暗号化キーには、複数のキーマテリアルを関連付けることができます。このようなキーにキーマテリアルをインポートするときに、オプションのキーマテリアルの説明を指定できます。説明を使用して、対応するキーマテリアルが AWS KMSの外部で永続的に維持されている場所を追跡できます。

マルチリージョンキーの場合、キーマテリアルの説明はプライマリリージョンキーでのみ設定または変更できます。 は、キーマテリアルの説明をレプリカリージョンキー AWS KMS に自動的に伝達します。

## 新しいキーマテリアルのインポート
<a name="import-new-key-material"></a>

インポートされたキーマテリアルを持つ対称暗号化 KMS キーでオンデマンドローテーションを実行するには、以前にキーに関連付けられていない新しいキーマテリアルを最初にインポートする必要があります。
+ **単一リージョンキー**
  + このタスクを実行するには、`NEW_KEY_MATERIAL` に設定された `ImportType` パラメータで [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) を使用します。このキーマテリアルは、[RotateKeyOnDemand](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html) オペレーションを実行するか、 でキーをローテーションするまで、キーに永続的に関連付けられません AWS マネジメントコンソール。それまでは、このキーマテリアルは `PENDING_ROTATION` 状態です。KMS キーは、いつでも最大 1 つのキーマテリアルを `PENDING_ROTATION` 状態にすることができます。`PENDING_ROTATION` 状態のキーマテリアルは、暗号化オペレーションにおけるキーのユーザビリティに影響を与えることなく削除できます。
+ **マルチリージョンキー**
  + キーマテリアルをマルチリージョンキーにインポートするには、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。新しいキーマテリアルをレプリカリージョンキーに直接インポートすることはできません。新しいキーマテリアルをプライマリリージョンキーにインポートした後、同じキーマテリアルをレプリカリージョンキーにインポートできます。
  + プライマリリージョンキーの `ImportType`パラメータを **NEW\$1KEY\$1MATERIAL** に設定して [https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)オペレーションを使用して、このタスクを実行します。レプリカリージョンキーには、 `ImportKeyMaterial`オペレーション`ImportType`に の **EXISTING\$1KEY\$1MATERIAL**パラメータを使用します。
  + 対称暗号化マルチリージョンキーのキーマテリアルは、キーマテリアルの状態が `PENDING_ROTATION` 状態に変わる前に、すべてのレプリカリージョンキーとプライマリリージョンキーにインポートする必要があります。それまでは、新しいキーマテリアルの状態は です`PENDING_MULTI_REGION_IMPORT_AND_ROTATION`。KMS キーは、いつでも `PENDING_ROTATION`または `PENDING_MULTI_REGION_IMPORT_AND_ROTATION`状態のキーマテリアルを最大 1 つ持つことができます ([RotationsListEntry](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotationsListEntry.html) `KeyMaterialState`の説明を参照）。`PENDING_MULTI_REGION_IMPORT_AND_ROTATION` または `PENDING_ROTATION`状態のキーマテリアルは、キーに永続的に関連付けられず、暗号化オペレーションにおけるキーのユーザビリティに影響を与えることなく削除できます。

## キーマテリアルの再インポート
<a name="reimport-key-material"></a>

キーマテリアルがインポートされた KMS キーを管理する場合、キーマテリアルを再インポートしなければならない場合があります。キーマテリアルを再インポートして、有効期限の切れるキーマテリアルまたは削除されたキーマテリアルを置き換えるか、キーマテリアルの有効期限モデルまたは有効期限を変更することもできます。

キーマテリアルは、スケジュールがセキュリティ要件を満たしていれば、いつでも再インポートできます。キーマテリアルが有効期限に達するかそれに近づくのを待つ必要はありません。

キーマテリアルを再インポートする手順は、基本的に最初にキーマテリアルのインポートに使用したのと同じ手順ですが、以下の点が異なります。
+ 新しい KMS キーを作成する代わりに、既存の KMS キーを使用します。インポートの手順の[ステップ 1](importing-keys-create-cmk.md) はスキップできます。
+ キーマテリアルを再インポートするときに、有効期限モデルと有効期限を変更することができます。対称暗号化キーの場合、キーマテリアルの説明を変更することもできます。

  マルチリージョンキーの場合、キーマテリアルの説明はプライマリリージョンキーでのみ設定または変更できます。 は、キーマテリアルの説明をレプリカリージョンキー AWS KMS に自動的に伝達します。

KMS キーにキーマテリアルをインポートするたびに、KMS キーの[新しいラップキーおよびインポートトークンをダウンロードして使用する](importing-keys-get-public-key-and-token.md)必要があります。このラッピングの手順は、キーマテリアルの内容には影響しません。そのため、異なるラッピングキーおよび異なるラッピングアルゴリズムを使用して同じキーマテリアルをインポートできます。

## キーマテリアルのインポート (コンソール)
<a name="importing-keys-import-key-material-console"></a>

を使用してキーマテリアル AWS マネジメントコンソール をインポートできます。

1. 「**ラップされたキーマテリアルのアップロード**」のページが表示されている場合は、[Step 10](#id-key-materials-step) に進んでください。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. 公開キーとインポートトークンをダウンロードした KMS キーの、キー ID またはエイリアスを選択します。

1. [ **暗号構成** ] タブを選択し、その値を表示します。タブは、KMS キーの詳細ページの**一般設定**セクションにあります。

   キーマテリアルは、**EXTERNAL (キーマテリアルのインポート)** の **Origin** を含む KMS キーにのみインポートできます。インポートされたキーマテリアルで KMS キーを作成する方法の詳細については、[キーの AWS KMS キーマテリアルのインポート](importing-keys.md) を参照してください。

1. キータイプに基づいて適切なタブを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアル**タブを選択します。
   + 対称暗号化キーの場合は、**キーマテリアルとローテーション**タブを選択します。

1. インポートアクションを選択します。
   + 非対称キーと HMAC キーの場合は、**キーマテリアルのインポート**を選択します。
   + 対称暗号化キーの場合は、次のいずれかを選択します。
     + **初期キーマテリアルをインポート**する (キーマテリアルがまだインポートされていない場合)
     + **新しいキーマテリアルをインポート**する (ローテーション用の新しいマテリアルを追加するには)
     + **キーマテリアルを再インポート**する (キーマテリアルテーブルの**アクション**メニューから使用可能)
**注記**  
マルチリージョンキーの場合は、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。次に、同じキーマテリアルを各レプリカリージョンキーにインポートします。  
プライマリマルチリージョンキーの場合、**キーマテリアル**テーブルには、すべての**レプリカリージョン (「0 of 3 imported」など) のインポートステータスを表示するレプリカインポート状態**列が含まれます。レプリカのインポート状態値を選択すると、各レプリカリージョンのインポートステータスを示すモーダルが開きます。モーダルは、新しい**キーマテリアルがインポート**されていないレプリカリージョンのインポートキーマテリアルリンクを提供します。

1. キーマテリアルをダウンロードし、トークンをインポートし、キーマテリアルを暗号化した場合は、[**次へ**] を選択します。
**注記**  
マルチリージョンキーの場合は、まず新しいキーマテリアルをプライマリリージョンキーにインポートする必要があります。その後、レプリカリージョンキーに同じキーマテリアルをインポートできます。

1. <a name="id-key-materials-step"></a>**[暗号化されたキーマテリアルとインポートトークン]** セクションで、次の操作を行います。

   1. **[ラップされたキーマテリアル]** で、**[ファイルを選択]** を選択します。次に、ラップされた (暗号化された) キーマテリアルを含むファイルをアップロードします。

   1. **[トークンのインポート]** で、**[ファイルを選択]** を選択します。[ダウンロード](importing-keys-get-public-key-and-token.md#importing-keys-get-public-key-and-token-console)したインポートトークンを含むファイルをアップロードします。

1. [**有効期限オプション**] セクションで、キーマテリアルの有効期限が切れているかどうかを判断します。有効期限の日時を設定するには、[**キーマテリアルの有効期限**] を選択し、カレンダーを使用して日付と時刻を選択します。現在の日付から 365 日後を上限として、日付を指定できます。

1. 対称暗号化キーの場合、インポートするキーマテリアルの説明を指定できます (オプション)。

1. **[キーマテリアルのインポート]** を選択します。

## キーマテリアルのインポート (AWS KMS API)
<a name="importing-keys-import-key-material-api"></a>

キーマテリアルをインポートするには、[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) オペレーションを使用します。次の例では [AWS CLI](https://aws.amazon.com/cli/) を使用しますが、サポートされているすべてのプログラミング言語を使用できます。

この例を使用するには:

1. `1234abcd-12ab-34cd-56ef-1234567890ab` を、公開キーとインポートトークンをダウンロードしたときに指定した KMS キーのキー ID と置き換えます。KMS キーを識別するには、その[キー ID](concepts.md#key-id-key-id) または[キー ARN](concepts.md#key-id-key-ARN) を使用します。このオペレーションに[エイリアス名](concepts.md#key-id-alias-name)や[エイリアス ARN](concepts.md#key-id-alias-ARN) を使用することはできません。

1. `EncryptedKeyMaterial.bin` を、暗号化されたキーマテリアルを含むファイル名に置き換えます。

1. `ImportToken.bin` を、インポートトークンを含むファイル名に置き換えます。

1. インポートしたキーマテリアルを有効期限切れにする場合は、`expiration-model` パラメータの値をデフォルトの `KEY_MATERIAL_EXPIRES` に変更するか、`expiration-model` パラメータを省略します。次に `valid-to` パラメータの値を、キーマテリアルを有効期限切れにする日時に置き換えます。リクエストの時点から 365 日後までの日時を設定できます。

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_EXPIRES \
       --valid-to 2023-06-17T12:00:00-08:00
   ```

   インポートしたキーマテリアルを有効期限切れにしたくない場合は、`expiration-model` パラメータを `KEY_MATERIAL_DOES_NOT_EXPIRE` に設定し、コマンドの `valid-to` パラメータを省略します。

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
   ```

1. 以前 KMS キーに関連付けられていない新しいキーマテリアルをインポートする場合は、 `ImportType` パラメータを `NEW_KEY_MATERIAL` に設定します。このオプションは、対称暗号化キーでのみ使用できます。これらのキーについては、次のコマンドライン例に示すように、オプションの `KeyMaterialDescription` パラメータを使用して、インポートされたキーマテリアルの説明を設定することもできます。

   ```
   $ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
       --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
       --import-token fileb://ImportToken.bin \
       --expiration-model KEY_MATERIAL_EXPIRES \
       --valid-to 2023-06-17T12:00:00-08:00 \
       --import-type NEW_KEY_MATERIAL \
       --key-material-description "Q2 2025 Rotation"
   ```

1. マルチリージョンキーの場合、キーマテリアルの説明はプライマリリージョンキーでのみ設定または変更できます。 は、キーマテリアルの説明をレプリカリージョンキー AWS KMS に自動的に伝達します。

**ヒント**  
コマンドが成功しない場合は、`KMSInvalidStateException` または `NotFoundException` が表示されることがあります。リクエストは再試行できます。

# キーストアに KMS AWS CloudHSM キーを作成する
<a name="create-cmk-keystore"></a>

 AWS CloudHSM キーストアを作成したら、キーストア AWS KMS keys で を作成できます。これらは、 が AWS KMS 生成するキーマテリアルを持つ[対称暗号化 KMS](symm-asymm-choose-key-spec.md#symmetric-cmks) キーである必要があります。カスタムキーストアで[非対称 KMS キー](symmetric-asymmetric.md)、[HMAC KMS キー](hmac.md)、または[インポートされたキーマテリアル](importing-keys.md)を持つ KMS キーを作成することはできません。カスタムキーストア内の対称暗号化 KMS キーを使用して、非対称データキーペアを生成することもできません。KMS は IPv6 経由で AWS CloudHSM キーストアと通信できません。

 AWS CloudHSM キーストアで KMS キーを作成するには、 AWS CloudHSM キーストア[を関連付けられた AWS CloudHSM クラスターに接続](connect-keystore.md)し、クラスターに異なるアベイラビリティーゾーンに少なくとも 2 つのアクティブな HSMs が含まれている必要があります。接続ステータスと HSM の数を確認するには、[AWS CloudHSM キーストアのページ](view-keystore.md#view-keystore-console)を AWS マネジメントコンソールに表示します。API オペレーションを使用する場合は、[DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) オペレーションを使用して、 AWS CloudHSM キーストアが接続されていることを確認します。クラスターとそのアベイラビリティーゾーン内のアクティブな HSMs の数を確認するには、 AWS CloudHSM [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) オペレーションを使用します。

 AWS CloudHSM キーストアで KMS キーを作成すると、 AWS KMS は KMS キーを作成します AWS KMS。ただし、関連付けられた AWS CloudHSM クラスターに KMS キーのキーマテリアルが作成されます。具体的には、 は作成した CU としてクラスターに AWS KMS サインインします。 [`kmsuser`](create-keystore.md#before-keystore)次に、クラスター内に永続的で抽出不可能な 256 ビットの Advanced Encryption Standard (AES) 対称キーが作成され、 AWS KMS が[キーラベルの属性](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-attributes.html)値を設定します。これはクラスター内で、KMS キーの Amazon リソースネーム (ARN) にのみ表示されます。　

コマンドが成功すると、新しいKMS キーの[キーステータス](key-state.md)は `Enabled` になり、そのオリジンは `AWS_CLOUDHSM` になります。作成後に KMS キーのオリジンを変更することはできません。 AWS KMS コンソールの AWS CloudHSM キーストアで、または [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) オペレーションを使用して KMS キーを表示すると、キー ID、キーの状態、作成日などの一般的なプロパティが表示されます。カスタムキーストア ID と AWS CloudHSM クラスター ID (オプション) を確認することもできます。

 AWS CloudHSM キーストアで KMS キーを作成しようとしても失敗した場合は、エラーメッセージを使用して原因を特定してください。 AWS CloudHSM キーストアが接続されていない (`CustomKeyStoreInvalidStateException`) か、関連付けられた AWS CloudHSM クラスターに、このオペレーションに必要な 2 つのアクティブな HSMs () がないことを示している可能性があります`CloudHsmClusterInvalidConfigurationException`。ヘルプについては、を参照してください [カスタムキーストアのトラブルシューティング](fix-keystore.md)。

 AWS CloudHSM キーストアに KMS キーを作成する オペレーションの AWS CloudTrail ログの例については、「」を参照してください[CreateKey](ct-createkey.md)。

## CloudHSM キーストアに新しい KMS キーを作成する
<a name="create-key-keystore"></a>

対称暗号化 KMS キーは、コンソールの AWS CloudHSM キーストアで AWS KMS 作成することも、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して作成することもできます。

### AWS KMS コンソールの使用
<a name="create-cmk-keystore-console"></a>

キーストアに対称暗号化 KMS AWS CloudHSM キーを作成するには、次の手順に従います。

**注記**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. [**対称**] を選択します。

1. **[Key usage]** (キーの使用) では、**[Encrypt and decrypt]** (暗号化および復号化) オプションがすでに選択されています。この設定は変更しないでください。

1. [**Advanced options (詳細オプション)**] を選択します。

1. **[キーマテリアルのオリジン]** で、**[AWS CloudHSM キーストア]** を選択します。

   キーストアにマルチリージョン AWS CloudHSM キーを作成することはできません。

1. [**次へ**] を選択します。

1. 新しい KMS AWS CloudHSM キーのキーストアを選択します。新しい AWS CloudHSM キーストアを作成するには、**カスタムキーストアの作成**を選択します。

   選択した AWS CloudHSM キーストアのステータスは **Connected** である必要があります。関連付けられた AWS CloudHSM クラスターはアクティブで、異なるアベイラビリティーゾーンに少なくとも 2 つのアクティブな HSMs が含まれている必要があります。

    AWS CloudHSM キーストアの接続については、「」を参照してください[AWS CloudHSM キーストアを切断する](connect-keystore.md)。HSM の追加については、*AWS CloudHSM ユーザーガイド*の [HSM の追加](https://docs.aws.amazon.com/cloudhsm/latest/userguide/add-remove-hsm.html#add-hsm)を参照してください。

1. [**次へ**] を選択します。

1. KMS キーのエイリアスおよびオプションの説明を入力します。

1. (オプション)。[**Add Tags**] (タグの追加) ページで、KMS キーを識別または分類するタグを追加します。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. [**Key administrators**] (キー管理者) セクションで、KMS キーを管理できる IAM ユーザーとロールを選択します。詳細については、「[KMS キーの管理をキー管理者に許可する](key-policy-default.md#key-policy-default-allow-administrators)」を参照してください。
**注意事項**  
IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) これらのキー管理者がこの KMS キーを削除できないようにするには、ページの下部にある [**Allow key administrators to delete this key**] (キー管理者がこのキーを削除できるようにする) チェックボックスをオフにします。

1. [**次へ**] を選択します。

1. **このアカウント**セクションで、[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用できる AWS アカウント IAM ユーザーとロールを選択します。詳細については、「[KMS キーの使用をキーユーザーに許可する](key-policy-default.md#key-policy-default-allow-users)」を参照してください。
**注意事項**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **Other AWS アカウント** セクションで、Add **another AWS アカウント**を選択し、外部アカウントの AWS アカウント ID を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
他の の管理者は、ユーザーの IAM ポリシーを作成して KMS キーへのアクセスを許可 AWS アカウント する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. キーのキーポリシーステートメントを確認します。キーポリシーに変更を加えるには、**[編集]** を選択します。

1. [**次へ**] を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. 終了したら、[**Finish**] (完了) を選択し、キーを作成します。

手順が成功すると、選択したキーストアに新しい KMS AWS CloudHSM キーが表示されます。新しい KMS キーの名前またはエイリアスを選択すると、詳細ページの**暗号化設定**タブに、KMS キーのオリジン (**AWS CloudHSM**)、カスタムキーストアの名前、ID、タイプ、 AWS CloudHSM クラスターの ID が表示されます。手順が失敗すると、失敗を説明するエラーメッセージが表示されます。

**ヒント**  
カスタムキーストアで KMS キーをより簡単に識別できるようにするには、[**Customer managed keys (カスタマーマネージドキー)**] ページで、[**Custom key store ID (カスタムキーストア ID)**] 列を表示に追加します。右上隅にある歯車アイコンをクリックし、[**Custom key store ID (カスタムキーストア ID)**] を選択します。詳細については、「[コンソールの表示をカスタマイズする](viewing-console-customize.md)」を参照してください。

### AWS KMS API の使用
<a name="create-cmk-keystore-api"></a>

キーストアに AWS CloudHSM 新しい AWS KMS key (KMS キー) [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用します。`CustomKeyStoreId` パラメータを使用してカスタムキーストアを識別し、`AWS_CLOUDHSM` の `Origin` 値を指定します。

また、キーポリシーを指定するために `Policy` パラメータが必要になる場合もあります。キーポリシー ([PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)) を変更したり、 [説明](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) や [タグ](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) などのオプション要素をいつでも追加したりできます。

このセクションの例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

次の例では、[DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) オペレーションを呼び出して、 AWS CloudHSM キーストアが関連する AWS CloudHSM クラスターに接続されていることを確認します。デフォルトでは、このオペレーションは、アカウントとリージョンのすべてのカスタムキーストアを返します。特定の AWS CloudHSM キーストアのみを記述するには、その `CustomKeyStoreId` または `CustomKeyStoreName`パラメータを使用します (両方ではありません）。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

**注記**  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "CustomKeyStoreType": "AWS CloudHSM key store",
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "CONNECTED"
   ],
}
```

次のコマンド例では、[DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) オペレーションを使用して、 `ExampleKeyStore` (cluster-1a23b4cdefg) に関連付けられている AWS CloudHSM クラスターに少なくとも 2 つのアクティブな HSMsがあることを確認します。クラスターにある HSM が 2 つに満たない場合、`CreateKey` オペレーションは失敗します。

```
$ aws cloudhsmv2 describe-clusters
{
    "Clusters": [
        {
            "SubnetMapping": {
               ...
            },
            "CreateTimestamp": 1507133412.351,
            "ClusterId": "cluster-1a23b4cdefg",
            "SecurityGroup": "sg-865af2fb",
            "HsmType": "hsm1.medium",
            "VpcId": "vpc-1a2b3c4d",
            "BackupPolicy": "DEFAULT",
            "Certificates": {
                "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n"
            },
            "Hsms": [
                {
                    "AvailabilityZone": "us-west-2a",
                    "EniIp": "10.0.1.11",
                    "ClusterId": "cluster-1a23b4cdefg",
                    "EniId": "eni-ea8647e1",
                    "StateMessage": "HSM created.",
                    "SubnetId": "subnet-a6b10bd1",
                    "HsmId": "hsm-abcdefghijk",
                    "State": "ACTIVE"
                },
                {
                    "AvailabilityZone": "us-west-2b",
                    "EniIp": "10.0.0.2",
                    "ClusterId": "cluster-1a23b4cdefg",
                    "EniId": "eni-ea8647e1",
                    "StateMessage": "HSM created.",
                    "SubnetId": "subnet-b6b10bd2",
                    "HsmId": "hsm-zyxwvutsrqp",
                    "State": "ACTIVE"
                },
            ],
            "State": "ACTIVE"
        }
    ]
}
```

このコマンド例では、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して キーストアに KMS AWS CloudHSM キーを作成します。 AWS CloudHSM キーストアで KMS キーを作成するには、キーストアのカスタム AWS CloudHSM キーストア ID を指定し、 `Origin`の値を指定する必要があります`AWS_CLOUDHSM`。

レスポンスには、カスタムキーストアと AWS CloudHSM クラスターの IDs が含まれます。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

```
$ aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id cks-1234567890abcdef0
{
  "KeyMetadata": {
    "AWSAccountId": "111122223333",
    "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "CreationDate": 1.499288695918E9,
    "Description": "Example key",
    "Enabled": true,
    "MultiRegion": false,
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyManager": "CUSTOMER",
    "KeyState": "Enabled",
    "KeyUsage": "ENCRYPT_DECRYPT",    
    "Origin": "AWS_CLOUDHSM"
    "CloudHsmClusterId": "cluster-1a23b4cdefg",
    "CustomKeyStoreId": "cks-1234567890abcdef0"
    "KeySpec": "SYMMETRIC_DEFAULT",
    "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
    "EncryptionAlgorithms": [
        "SYMMETRIC_DEFAULT"
    ]
  }
}
```

# 外部キーストアで KMS キーを作成する
<a name="create-xks-keys"></a>

外部キーストア[を作成して](create-xks-keystore.md)[接続](xks-connect-disconnect.md)したら、キーストア AWS KMS keys で を作成できます。これらは、**[External key store]** (外部キーストア) (`EXTERNAL_KEY_STORE`) のオリジン値をもつ[対称暗号化 KMS キー](symm-asymm-choose-key-spec.md#symmetric-cmks)である必要があります。カスタムキーストアで[非対称 KMS キー](symmetric-asymmetric.md)、[HMAC KMS キー](hmac.md)、または[インポートされたキーマテリアル](importing-keys.md)を持つ KMS キーを作成することはできません。カスタムキーストア内の対称暗号化 KMS キーを使用して、非対称データキーペアを生成することもできません。

外部キーストアの KMS キーは AWSの外部にあるコンポーネントに依存するため、標準 KMS キーよりも遅延、耐久性、可用性に劣る可能性があります。外部キーストアで KMS キーを作成または使用する前に、外部キーストアプロパティをもつキーが必要であることを確認してください。

**注記**  
一部の外部キーマネージャーは、外部キーストアに KMS キーを作成する簡単な方法を提供しています。詳細については外部キーマネージャーのドキュメントを参照してください。

外部キーストアで KMS キーを作成するには、以下を指定します。
+ 外部キーストアの ID。
+ 外部キーストア (`EXTERNAL_KEY_STORE`) の[キーマテリアルオリジン](create-keys.md#key-origin)。
+ 外部キーストアに関連付けられた[外部キーマネージャー](keystore-external.md#concept-ekm)内の既存の[外部キー](keystore-external.md#concept-external-key) ID。この外部キーは、KMS キーのキーマテリアルとして機能します。KMS キーの作成後は、外部キー ID を変更できません。

  AWS KMS は、暗号化および復号オペレーションのリクエストで外部キーストアプロキシに外部キー ID を提供します。 AWS KMS は、外部キーマネージャーまたはその暗号化キーに直接アクセスすることはできません。

外部キーに加えて、外部キーストアの KMS キーにも AWS KMS キーマテリアルがあります。KMS キーで暗号化されたすべてのデータは、まずキーの AWS KMS キーマテリアル AWS KMS を使用して で暗号化され、次に外部キーマネージャーによって外部キーを使用して暗号化されます。この[二重暗号化](keystore-external.md#concept-double-encryption)プロセスにより、外部キーストアの KMS キーで保護された暗号文は、少なくとも AWS KMSのみで保護されている暗号文と同等の強度を持つことが保証されます。詳細については、「[外部キーストアの仕組み](keystore-external.md#xks-how-it-works)」を参照してください。

`CreateKey` オペレーションが成功すると、新しい KMS キーの[キーステータス](key-state.md)は `Enabled` になります。[外部キーストアの KMS キーを表示する](identify-key-types.md#view-xks-key)と、一般的なプロパティ (キー ID、[キーの仕様](create-keys.md#key-spec)、[キーの使用](create-keys.md#key-usage)、[キーの状態](key-state.md)、作成日など) が表示されます。また、外部キーストアの ID と[接続状態](xks-connect-disconnect.md#xks-connection-state)、および外部キーの ID も表示されます。

外部キーストアで KMS キーの作成を試みて失敗した場合は、エラーメッセージを使用して原因を特定します。外部キーストアが接続されていない可能性（`CustomKeyStoreInvalidStateException`）、外部キーストアプロキシが指定された外部キー ID（`XksKeyNotFoundException`）の外部キーを検出できない可能性、または外部キーが同じ外部キーストア `XksKeyAlreadyInUseException` 内の KMS キーにすでに関連付けられている可能性があります。

外部キーストアに KMS キーを作成する オペレーションの AWS CloudTrail ログの例については、「」を参照してください[CreateKey](ct-createkey.md)。

**Topics**
+ [外部キーストアの KMS キーの要件](#xks-key-requirements)
+ [外部キーストアで新しい KMS キーを作成する](#create-key-xks)

## 外部キーストアの KMS キーの要件
<a name="xks-key-requirements"></a>

外部キーストアに KMS キーを作成するには、外部キーストア、KMS キー、および KMS キーの外部暗号化キーマテリアルとなる外部キーの次のプロパティが必要です。

**外部キーストアの要件**
+ 外部キーストアプロキシに接続する必要があります。

  外部キーストアの[接続状態](xks-connect-disconnect.md#xks-connection-state)を確認するには、「[外部キーストアを表示する](view-xks-keystore.md)」を参照してください。外部キーストアを接続するには、「[外部キーストアを接続および切断する](xks-connect-disconnect.md)」を参照してください。

**KMS キーの要件**

KMS キーの作成後にこれらのプロパティを変更することはできません。
+ キースペック: SYMMETRIC\$1DEFAULT
+ キーの使用方法: ENCRYPT\$1DECRYPT
+ キーマテリアルのオリジン: EXTERNAL\$1KEY\$1STORE
+ マルチリージョン: FALSE

**外部キーの要件**
+ 256 ビット AES 暗号化キー (256 ランダムビット)。外部キーの `KeySpec` は `AES_256` である必要があります。
+ 有効かつ使用可能です。外部キーの `Status` は `ENABLED` である必要があります。
+ 暗号化および複合化用に設定されています。外部キーの `KeyUsage` には `ENCRYPT` と `DECRYPT` を含める必要があります。
+ この KMS キーでのみ使用されます。外部キーストアの各 `KMS key` は、異なる外部キーに関連付けられている必要があります。

  AWS KMS では、外部キーストア専用に外部キーを使用することも推奨しています。この制限により、キーに関する問題の特定と解決が容易になります。
+ 外部キーストアの[外部キーストアプロキシ](keystore-external.md#concept-xks-proxy)からアクセスできます。

  外部キーストアプロキシが指定された外部キー ID を使用してキーを検出できない場合、`CreateKey` オペレーションは失敗します。
+ を使用して AWS のサービス 生成される予想されるトラフィックを処理できます。 AWS KMS では、外部キーが 1 秒あたり最大 1800 リクエストを処理するように準備することをお勧めします。

## 外部キーストアで新しい KMS キーを作成する
<a name="create-key-xks"></a>

 AWS KMS コンソールの外部キーストアで、または [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して、新しい KMS キーを作成できます。

### AWS KMS コンソールの使用
<a name="create-xks-key-console"></a>

外部キーストアで KMS キーを作成するには 2 つの方法があります。
+ 方法 1 (推奨): 外部キーストアを選択し、その外部キーストアに KMS キーを作成します。
+ 方法 2: KMS キーを作成し、それが外部キーストアにあることを示します。

キーを作成する前に外部キーストアを選択する方法 1 を使用する場合、 は必要なすべての KMS キープロパティ AWS KMS を選択し、外部キーストアの ID を入力します。この方法により、KMS キーの作成時に発生する可能性のあるエラーを回避できます。

**注記**  
エイリアス、説明、またはタグには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

**方法 1 (推奨): 外部キーストアで起動する**

この方法を使用するには、外部キーストアを選択し、KMS キーを作成します。 AWS KMS コンソールは、必要なプロパティをすべて選択し、外部キーストアの ID を入力します。この方法により、KMS キーの作成時に発生する可能性のある多くのエラーを回避できます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[Custom key stores]** (カスタムキーストア)、**[External key stores]** (外部キーストア) の順に選択します。

1. 外部キーストアの名前を選択します。

1. 右上隅にある **[Create a KMS key in this key store]** (このキーストアのKMS キーを作成する) を選択します。

   外部キーストアが接続されていない場合は、接続するように求められます。接続に失敗した場合は、問題を解決し、外部キーストアに接続してから新しい KMS キーを作成する必要があります。

   外部キーストアが接続されている場合は、キーを作成するための **[Customer managed keys]** (カスタマーマネージドキー) ページにリダイレクトされます。必要な**[Key configuration]** (キー設定) 値は既に選択されています。また、外部キーストアのカスタムキーストア ID も入力されていますが、変更可能です。

1. [外部キーマネージャー](keystore-external.md#concept-ekm)に[外部キー](keystore-external.md#concept-external-key)のキー ID を入力します。この外部キーは、KMS キーで使用するための[要件を満たしている](#xks-key-requirements)必要があります。キーの作成後にこの値を変更することはできません。

   外部キーに複数の ID がある場合は、外部キーストアプロキシが外部キーの識別に使用するキー ID を入力します。

1. 指定された外部キーストアに KMS キーを作成する予定であることを確認します。

1. [**次へ**] を選択します。

   この手順の残りの部分は、[標準の KMS キー作成](create-keys.md)と同じです。

1. エイリアス (必須) と KMS キーの説明 (オプション) を入力します。

1. (オプション) [**Add Tags**] (タグの追加) ページで、KMS キーを識別または分類するタグを追加します。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. [**Key administrators**] (キー管理者) セクションで、KMS キーを管理できる IAM ユーザーとロールを選択します。詳細については、「[KMS キーの管理をキー管理者に許可する](key-policy-default.md#key-policy-default-allow-administrators)」を参照してください。
**注記**  
IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

1. (オプション) これらのキー管理者がこの KMS キーを削除できないようにするには、**[Allow key administrators to delete this key]** (キー管理者がこのキーを削除できるようにする) のチェックボックスをオフにします。

   KMS キーの削除は破壊的で元に戻せないオペレーションであり、暗号文を回復不能にする可能性があります。外部キーマテリアルが存在しても、外部キーストアに対称 KMS キーを再作成することはできません。ただし、KMS キーを削除しても関連付けられた外部キーには影響しません。外部キーストアから KMS キーを削除する方法については、「[キーの削除に関する注意事項](deleting-keys.md#special-considerations-delete)」を参照してください。

1. [**次へ**] を選択します。

1. **このアカウント**セクションで、[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを AWS アカウント 使用できる IAM ユーザーとロールを選択します。詳細については、「[KMS キーの使用をキーユーザーに許可する](key-policy-default.md#key-policy-default-allow-users)」を参照してください。
**注記**  
IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **Other AWS アカウント** セクションで、Add **another AWS アカウント**を選択し、外部アカウントの AWS アカウント ID を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
他の の管理者は、ユーザーの IAM ポリシーを作成して KMS キーへのアクセスを許可 AWS アカウント する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. 終了したら、[**Finish**] (完了) を選択し、キーを作成します。

**方法 2: カスタマーマネージドキーから開始する**

この手順は、 AWS KMS キーマテリアルを使用して対称暗号化キーを作成する手順と同じです。ただし、この手順では、外部キーストアのカスタムキーストア ID と外部キーのキー ID を指定します。また、外部キーストアの KMS キーに[必要なプロパティ値](#xks-key-requirements) (キースペックやキーの使用法など) を指定する必要があります。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. ナビゲーションペインで、**[カスタマーマネージドキー]** を選択します。

1. **[Create key]** (キーの作成) を選択します。

1. [**対称**] を選択します。

1. **[Key usage]** (キーの使用) では、**[Encrypt and decrypt]** (暗号化および復号化) オプションがすでに選択されています。この設定は変更しないでください。

1. [**Advanced options (詳細オプション)**] を選択します。

1. **[Key material origin]** (キーマテリアルのオリジン) で、**[External key store]** (外部キーストア) を選択します。

1. 指定された外部キーストアに KMS キーを作成する予定であることを確認します。

1. [**次へ**] を選択します。

1. 新しい KMS キーの外部キーストアを表す行を選択します。

   接続されていない外部キーストアは選択できません。切断されたキーストアを接続するには、キーストア名を選択し、**[Key store actions]** (キーストアアクション) で **[Connect]** (接続) を選択します。詳細については、「[AWS KMS コンソールの使用](about-xks-connecting.md#connect-xks-console)」を参照してください。

1. [外部キーマネージャー](keystore-external.md#concept-ekm)に[外部キー](keystore-external.md#concept-external-key)のキー ID を入力します。この外部キーは、KMS キーで使用するための[要件を満たしている](#xks-key-requirements)必要があります。キーの作成後にこの値を変更することはできません。

   外部キーに複数の ID がある場合は、外部キーストアプロキシが外部キーの識別に使用するキー ID を入力します。

1. [**次へ**] を選択します。

   この手順の残りの部分は、[標準の KMS キー作成](create-keys.md)と同じです。

1. KMS キーのエイリアスおよびオプションの説明を入力します。

1. (オプション)。[**Add Tags**] (タグの追加) ページで、KMS キーを識別または分類するタグを追加します。

    AWS リソースにタグを追加すると、 は使用量とコストをタグ別に集計したコスト配分レポート AWS を生成します。タグは、KMS キーへのアクセスの制御にも使用できます。KMS キーのタグ付けについては、[のタグ AWS KMS](tagging-keys.md) および [の ABAC AWS KMS](abac.md) を参照してください。

1. [**次へ**] を選択します。

1. [**Key administrators**] (キー管理者) セクションで、KMS キーを管理できる IAM ユーザーとロールを選択します。詳細については、「[KMS キーの管理をキー管理者に許可する](key-policy-default.md#key-policy-default-allow-administrators)」を参照してください。
**注記**  
IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

1. (オプション) これらのキー管理者がこの KMS キーを削除できないようにするには、**[Allow key administrators to delete this key]** (キー管理者がこのキーを削除できるようにする) のチェックボックスをオフにします。

   KMS キーの削除は破壊的で元に戻せないオペレーションであり、暗号文を回復不能にする可能性があります。外部キーマテリアルが存在しても、外部キーストアに対称 KMS キーを再作成することはできません。ただし、KMS キーを削除しても関連付けられた外部キーには影響しません。外部キーストアから KMS キーを削除する方法については、「[を削除する AWS KMS key](deleting-keys.md)」を参照してください。

1. [**次へ**] を選択します。

1. **このアカウント**セクションで、[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを AWS アカウント 使用できる IAM ユーザーとロールを選択します。詳細については、「[KMS キーの使用をキーユーザーに許可する](key-policy-default.md#key-policy-default-allow-users)」を参照してください。
**注記**  
IAM ポリシーでは、KMS キーを使用するアクセス許可を他の IAM ユーザーおよびロールに付与できます。

1. (オプション) 暗号化オペレーションにこの KMS キーを使用すること AWS アカウント を他のユーザーに許可できます。これを行うには、ページの下部にある **Other AWS アカウント** セクションで、Add **another AWS アカウント**を選択し、外部アカウントの AWS アカウント ID を入力します。複数の外部アカウントを追加するには、この手順を繰り返します。
**注記**  
他の の管理者は、ユーザーの IAM ポリシーを作成して KMS キーへのアクセスを許可 AWS アカウント する必要があります。詳細については、「[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

1. 選択したキー設定を確認します。戻って、すべての設定を変更することもできます。

1. 終了したら、[**Finish**] (完了) を選択し、キーを作成します。

手順が成功すると、選択した外部キーストアに新しい KMS キーが表示されます。新しい KMS キーの名前やエイリアスを選択すると、その詳細ページの **[Cryptographic configuration]** (暗号化設定) タブに、KMS キー (**[External key store]** (外部キーストア)) のオリジン、カスタムキーストアの名前、ID、タイプ、外部キーの ID、キー使用方法、ステータスが表示されます。手順が失敗すると、失敗を説明するエラーメッセージが表示されます。の場合は、「[外部キーストアのトラブルシューティング](xks-troubleshooting.md)」を参照してください。

**ヒント**  
カスタムキーストアで KMS キーをより簡単に識別できるようにするには、**[Customer managed keys]** (カスタマーマネージドキー) ページで、**[Origin]** (オリジン) と **[Custom key store ID]** (カスタムキーストア ID) 列を表示に追加します。テーブルフィールドを変更するには、ページの右上隅にある歯車アイコンを選択します。詳細については、「[コンソールの表示をカスタマイズする](viewing-console-customize.md)」を参照してください。

### AWS KMS API の使用
<a name="create-xks-key-api"></a>

外部キーストアで新しい KMS キーを作成するには、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用します。以下のパラメータは必須です。
+ `Origin` の値は `EXTERNAL_KEY_STORE` にする必要があります。
+ `CustomKeyStoreId` パラメータは外部キーストアを識別します。指定された外部キーストアの [`ConnectionState`](xks-connect-disconnect.md#xks-connection-state) は、`CONNECTED` である必要があります。`CustomKeyStoreId` と `ConnectionState` を検出するには、`DescribeCustomKeyStores` オペレーションを使用します。
+ `XksKeyId` パラメータは外部キーを識別します。この外部キーは、KMS キーとの関連付けの[要件を満たしている](#xks-key-requirements)必要があります。

`Policy` または [タグ](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)パラメータを使用するなど、`CreateKey` オペレーションの任意のオプションパラメータを使用することもできます。

**注記**  
`Description` フィールドまたは `Tags` フィールドには、機密情報や重要情報を含めないでください。これらのフィールドは、CloudTrail ログやその他の出力にプレーンテキストで表示される場合があります。

このセクションの例では [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用しますが、サポートされている任意のプログラミング言語を使用することができます。

この例では、[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) オペレーションを使用して、外部キーストアで KMS キーを作成します。応答には、KMS キーのプロパティ、外部キーストアの ID、外部キーの ID、使用方法、ステータスが含まれます。

このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。

```
$ aws kms create-key --origin EXTERNAL_KEY_STORE --custom-key-store-id cks-1234567890abcdef0 --xks-key-id bb8562717f809024
{
  "KeyMetadata": {
    "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "AWSAccountId": "111122223333",
    "CreationDate": "2022-12-02T07:48:55-07:00",
    "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
    "CustomKeyStoreId": "cks-1234567890abcdef0",
    "Description": "",
    "Enabled": true,
    "EncryptionAlgorithms": [
      "SYMMETRIC_DEFAULT"
    ],
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyManager": "CUSTOMER",
    "KeySpec": "SYMMETRIC_DEFAULT",
    "KeyState": "Enabled",
    "KeyUsage": "ENCRYPT_DECRYPT",
    "MultiRegion": false,
    "Origin": "EXTERNAL_KEY_STORE",
    "XksKeyConfiguration": {
      "Id": "bb8562717f809024"
    }
  }
}
```