特定用途のキー - AWS Key Management Service

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

特定用途のキー

AWS Key Management Service (AWS KMS) は、さまざまな用途で複数の異なるタイプのキーをサポートしています。

を作成すると AWS KMS key、デフォルトで対称暗号化 KMS キーが取得されます。では AWS KMS、対称暗号化 KMS キーは、暗号化と復号に使用される 256 ビット AES-GCM キーを表します。ただし、中国リージョンでは、SM4 暗号化を使用する 128 ビット対称キーを表します。対称キーマテリアルは、暗号化 AWS KMS されずに を残すことはありません。タスクに非対称暗号化キーまたは HMAC キーが明示的に必要でない限り、暗号化 AWS KMS されていないままにしない対称暗号化 KMS キーが適しています。また、AWS KMSと統合されたAWS のサービスでも、データの暗号化には対称暗号化 KMS キーのみが使用されます。これらのサービスは、非対称 KMS キーを使用する暗号化をサポートしません。

で対称暗号化 KMS キーを使用して、データの AWS KMS 暗号化、復号、再暗号化、データキーとデータキーペアの生成、ランダムバイト文字列の生成を行うことができます。対称暗号化 KMS キーに独自のキーマテリアルをインポートし、カスタムキーストアで対称暗号化 KMS キーを作成することができます。対称 KMS キーと非対称 KMS キーで実行できるオペレーションを比較した表については、「キータイプリファレンス」を参照してください。

AWS KMS は、次の専用 KMS キータイプもサポートしています。

KMS キータイプの選択

AWS KMS は、対称暗号化キー、対称 HMAC キー、非対称暗号化キー、非対称署名キーなど、いくつかのタイプの KMS キーをサポートしています。

KMS キーに違いがあるのは、異なる暗号化キーマテリアルが含まれているからです。

  • 対称暗号化 KMS キー: 単一の 256 ビット AES-GCM 暗号化キーを表します。ただし、中国リージョンでは 128 ビット SM4 暗号化キーを表します。対称キーマテリアルは、暗号化 AWS KMS されずに を残すことはありません。対称暗号化 KMS キーを使用するには、 を呼び出す必要があります AWS KMS。

    デフォルト KMS キーである対称暗号化キーは、ほとんどの用途に最適です。内のデータを保護するために KMS キーが必要な場合は AWS のサービス、別のタイプのキーを使用するように指示されていない限り、対称暗号化キーを使用します。

  • 非対称 KMS キー : 暗号化と復号、署名と検証、共有シークレットの取得に使用できる数学的に関連するパブリックキーとプライベートキーのペアを表します (キー使用タイプを 1 つ選択する必要があります)。プライベートキーが暗号化 AWS KMS されていないままになることはありません。API AWS KMS オペレーションを呼び出し AWS KMS て 内でパブリックキーを使用するか、パブリックキーをダウンロードして の外部で使用できます AWS KMS。

  • HMAC KMS キー (対称): Hash-based Message Authentication Code の生成と検証に使用される、さまざまな長さの対称キーを表します。HMAC KMS キーのキーマテリアルが、暗号化されずに AWS KMS 外で使用されることはありません。HMAC KMS キーを使用するには、 を呼び出す必要があります AWS KMS。

作成する KMS キーのタイプは、KMS キーの使用計画、セキュリティ要件、認可要件に大きく依存します。KMS キーの作成時は、KMS キーの暗号化設定 (キー仕様やキーの使用方法を含む) は、KMS キーの作成時に設定され、変更できないことに注意してください。

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

データの暗号化と復号

データの暗号化と復号を必要とするほとんどのユースケースには、対称 KMS キーを使用します。 AWS KMS が使用する対称暗号化アルゴリズムは、高速かつ効率的で、データの機密性と信頼性を保証します。これは、暗号化コンテキストとして定義された追加認証データ (AAD) による認証された暗号化をサポートします。このタイプの KMS キーでは、暗号化されたデータの送信者と受信者の両方が、 を呼び出すための有効な AWS 認証情報を持っている必要があります AWS KMS。

を呼び出すことができないユーザー AWS によって の外部で暗号化がユースケースで必要な場合は AWS KMS、非対称 KMS キーが適しています。非対称 KMS キーのパブリックキーを配信して、これらのユーザーがデータを暗号化できるようにします。また、そのデータを復号する必要があるアプリケーションは、 AWS KMS内で非対称 KMS キーのプライベートキーを使用できます。

メッセージの署名および署名の検証

メッセージに署名して、署名を検証するには、非対称 KMS キーを使用する必要があります。RSA キーペアまたは楕円曲線 (ECC) キーペア、または SM2 キーペア (中国リージョンのみ) を表すキー仕様で KMS キーを使用できます。選択するキー仕様は、使用する署名アルゴリズムによって決まります。ECC キーペアがサポートする ECDSA 署名アルゴリズムは、RSA 署名アルゴリズムよりも推奨されます。ただし、 の外部で署名を検証するユーザーをサポートするために、特定のキー仕様と署名アルゴリズムを使用する必要がある場合があります AWS。

非対称キーペアで暗号化する

非対称キーペアでデータを暗号化するには、RSA キー仕様または SM2 キー仕様 (中国リージョンのみ) で非対称 KMS キーを使用する必要があります。 SM2 KMS キーペアのパブリックキー AWS KMS を使用して 内のデータを暗号化するには、 Encrypt オペレーションを使用します。パブリックキーをダウンロードして、 AWS KMSの外部でデータを暗号化する必要がある当事者と共有することもできます。

非対称 KMS キーのパブリックキーをダウンロードする場合、 AWS KMSの外部で使用できます。ただし、 の KMS キーを保護するセキュリティコントロールの対象ではなくなりました AWS KMS。例えば、 AWS KMS キーポリシーや許可を使用してパブリックキーの使用を制御することはできません。また、 が AWS KMS サポートする暗号化アルゴリズムを使用して、キーが暗号化と復号にのみ使用されるかどうかを制御することもできません。詳細については、「パブリックキーのダウンロードに関する特別な考慮事項」を参照してください。

の外部でパブリックキーで暗号化されたデータを復号するには AWS KMS、Decrypt オペレーションを呼び出します。SIGN_VERIFYキーの用途で KMS キーからのパブリックキーでデータが暗号化された場合、Decrypt オペレーションは失敗します。また、選択したキー仕様で をサポート AWS KMS していないアルゴリズムを使用して暗号化された場合も失敗します。主な仕様とサポートされているアルゴリズムの詳細については、「非対称キーの仕様」を参照してください。

これらのエラーを回避するには、 の外部でパブリックキーを使用するすべてのユーザーがキー設定を保存 AWS KMS する必要があります。 AWS KMS コンソールとGetPublicKeyレスポンスは、パブリックキーを共有するときに含める必要がある情報を提供します。

共有シークレットの取得

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

HMAC コードを生成して検証する

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

HMAC KMS キーは対称キーです。 AWS KMS コンソールで HMAC KMS キーを作成するときは、Symmetric キータイプを選択します。

サービスで AWS を使用する

AWS と統合された サービス AWS KMSで使用する KMS キーを作成するには、サービスのドキュメントを参照してください。データを暗号化する AWS サービスには、対称暗号化 KMS キー が必要です。

これらの考慮事項に加えて、キー仕様が異なる KMS キーの暗号化オペレーションでは、料金とリクエストクォータも異なります。 AWS KMS 料金の詳細については、「 の料金AWS Key Management Service」を参照してください。リクエストクォータの詳細については、「クォータのリクエスト」を参照してください 。

キーの用途の選択

KMS キーのキーの用途は、KMS キーが暗号化と復号、署名と署名の検証、または HMAC タグの生成と検証のどれに使用されのるかを決定します。キーの用途は、各 KMS キーに 1 つしかありません。KMS キーを複数タイプのオペレーションに使用すると、すべてのオペレーションの成果が攻撃に対してより脆弱になります。

各 KMS キーに指定できるキー用途は 1 つだけです。以下の表にあるように、対称暗号化 KMS キーは暗号化と復号のみに使用できます。HMAC KMS キーは、HMAC コードの生成と検証のみに使用できます。非対称 KMS キーのキー使用を決定する必要があります。RSA キーペアを持つ非対称 KMS キーを使用して、データを暗号化または復号化したり、メッセージに署名および検証したりできます (両方はできません)。NIST が推奨する楕円曲線キーペアを持つ非対称 KMS キーを使用して、メッセージに署名して検証したり、共有シークレットを取得したりできます (両方ではありません)。キーペアを持つ非対称 KMS ECC_SECG_P256K1 キーは、メッセージの署名と検証にのみ使用できます。SM2 (中国リージョンのみ) キーペアを持つ非対称 KMS キーは、データの暗号化と復号、メッセージの署名と検証、共有シークレットの取得に使用できます (キー使用タイプを 1 つ選択する必要があります)。

KMS キータイプの有効なキーの用途
KMS キータイプ 暗号化と復号化

ENCRYPT_DECRYPT

署名と検証

SIGN_VERIFY

HMAC を生成して検証する

GENERATE_VERIFY_MAC

共有シークレットの取得

KEY_AGREEMENT

対称暗号化 KMS キー
HMAC KMS キー (対称)
RSA キーペアを使用した非対称 KMS キー
ECC キーペアを使用した非対称 KMSキー

共有シークレットを取得するには、NIST が推奨する楕円曲線キーマテリアルで非対称 KMS キーを使用する必要があります。

SM2 キーペアを持つ非対称 KMS キー (中国リージョンのみ)

AWS KMS コンソールで、まずキータイプ (対称または非対称) を選択し、次にキーの使用法を選択します。選択するキーのタイプによって、表示されるキーの用途が決まります。選択するキーの用途によって、表示されるキーの仕様 (存在する場合) が決まります。

AWS KMS コンソールでキーの使用方法を選択するには:

  • 対称暗号化 KMS キー (デフォルト) の場合は、[Encrypt and decrypt] (暗号化および復号) を選択します。

  • HMAC KMS キーの場合は、[Generate and verify MAC] (MAC の生成と検証) を選択します。

  • NIST 推奨楕円曲線 (ECC) キーマテリアルを使用する非対称 KMS キーの場合は、署名して検証する またはキーアグリーメント を選択します。

  • キーマテリアルを含む非対称 KMS ECC_SECG_P256K1キーの場合は、署名と検証を選択します。

  • RSA キーマテリアルを持つ非対称 KMS キーの場合は、[Encrypt and decrypt] (暗号化および復号) または [Sign and verify] (署名および検証) を選択します。

  • SM2 キーマテリアルを使用する非対称 KMS キーの場合は、暗号化と復号の署名と検証、またはキー契約 を選択します。SM2 キー仕様は、中国リージョンでのみ利用可能です。

プリンシパルが特定のキーの使用に対してのみ KMS キーを作成できるようにするには、kms:KeyUsage 条件キーを使用します。kms:KeyUsage 条件キーを使用して、プリンシパルがキーの用途に基づいて KMS キーの API オペレーションを呼び出せるようにすることもできます。例えば、キーの用途が SIGN_VERIFY である場合にのみ、KMS キーを無効にするアクセス許可を許可できます。

キー仕様の選択

非対称 KMS キーまたは HMAC KMS キーを作成するときは、そのキーの仕様を選択します。すべての のプロパティであるキー仕様 は AWS KMS key、KMS キーの暗号化設定を表します。KMS キーの作成時に選択したキー仕様を変更することはできません。間違ったキー仕様を選択した場合は、KMS キーを削除し、新しいキー仕様を作成します。

注記

KMS キーのキー仕様は、「カスタマーマスターキー仕様」として知られていました。CreateKey オペレーションの CustomerMasterKeySpecパラメータは廃止されました。代わりに、KeySpec パラメータを使用します。CreateKey および DescribeKeyオペレーションのレスポンスには、同じ値を持つ KeySpecおよび CustomerMasterKeySpecメンバーが含まれます。

キー仕様は、KMS キーが対称か非対称か、KMS キー内のキーマテリアルのタイプ、および が KMS キーに対して AWS KMS サポートする暗号化アルゴリズム、署名アルゴリズム、またはメッセージ認証コード (MAC) アルゴリズムを決定します。選択するキー仕様は、通常、ユースケースと規制要件によって決まります。ただし、キー仕様の異なる KMS キーの暗号化オペレーションは料金が異なるため、クォータも異なる場合があります。料金の詳細については、「AWS Key Management Service の料金」を参照してください。リクエストクォータの詳細については、「クォータのリクエスト」を参照してください 。

アカウントのプリンシパルが KMS キーに使用できるキー仕様を決定するには、kms:KeySpec 条件キーを使用します。

AWS KMS では、KMS キーの次のキー仕様がサポートされています。

対称暗号化キーの仕様 (デフォルト)
  • SYMMETRIC_DEFAULT

HMAC キーの仕様
  • HMAC_224

  • HMAC_256

  • HMAC_384

  • HMAC_512

RSA キー仕様(暗号化と復号、または署名と検証)
  • RSA_2048

  • RSA_3072

  • RSA_4096

楕円曲線のキー仕様
  • 非対称 NIST が推奨する楕円曲線キーペア (共有シークレットの署名と検証)

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • その他の非対称楕円曲線キーペア (署名と検証)

    • ECC_SECG_P256K1 (secp256k1)、暗号化に一般的に使用されます。

SM2 キー仕様 (暗号化と復号化、または署名と検証、または共有シークレットの取得)
  • SM2 (中国リージョンのみ)