特定用途のキー - 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 キーを使用する暗号化をサポートしません。

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

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

KMS キータイプの選択

AWS KMS は複数タイプの KMS キーをサポートしており、これには対称暗号化キー、対称 HMAC キー、非対称暗号化キー、および非対称署名キーがあります。

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

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

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

  • 非対称 KMS キー: 暗号化および復号、または検証に使用できますが、両方には使用できない、数学的に関連するパブリックキーとプライベートキーペアを表します。プライベートキーが暗号化されないまま AWS KMS から出ていくことはありません。AWS KMS API オペレーションを呼び出すことによって、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 KMS を呼び出す有効な AWS 認証情報を持っている必要があります。

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

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

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

パブリックキー暗号化の実行

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

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

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

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

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

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

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

AWS のサービスと使用する

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

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

キーの用途の選択

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

以下の表にあるように、対称暗号化 KMS キーは暗号化と復号のみに使用できます。HMAC KMS キーは、HMAC コードの生成と検証のみに使用できます。楕円曲線 (ECC) KMS キーは、署名と検証にのみ使用できます。キーの用途を決定する必要があるのは、RSA KMS キーのみです。

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

ENCRYPT_DECRYPT

署名と検証

SIGN_VERIFY

HMAC を生成して検証する

GENERATE_VERIFY_MAC

対称暗号化 KMS キー
HMAC KMS キー (対称)
RSA キーペアを使用した非対称 KMS キー
ECC キーペアを使用した非対称 KMSキー
SM2 キーペアを持つ非対称 KMS キー (中国リージョンのみ)

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

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

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

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

  • 楕円曲線 (ECC) キーマテリアルを持つ非対称 KMS キーの場合は、[Sign and verify] (署名および検証) を選択します。

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

  • SM2 キーマテリアルを持つ非対称 KMS キーの場合は、[Encrypt and decrypt] (暗号化および復号) または [Sign and verify] (署名および検証) を選択します。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 キーのキーマテリアルのタイプ、および AWS KMS が 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 (中国リージョンのみ)