外部キーストア - AWS Key Management Service

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

外部キーストア

外部キーストアを使用すると、 の外部で暗号化キーを使用して AWS リソースを保護できます AWS。この高度な機能は、ユーザーが管理する外部のキー管理システムに保存された暗号化キーで保護しなければならない、規制対象のワークロード向けに設計されています。外部キーストアは、AWS デジタル主権宣言をサポートし、 の外部で所有および管理するキーマテリアルで暗号化する機能など AWS、 内のデータを主権的に制御できるようにします AWS。

外部キーストアは、 の外部で所有および管理する外部キーマネージャーによってバックアップされたカスタムキーストアです AWS。外部キーマネージャーは、物理的または仮想的なハードウェアセキュリティモジュール (HSM) である場合もあれば、暗号化キーの生成や使用を行うハードウェアベースまたはソフトウェアベースのシステムである場合もあります。外部キーストアの KMS キーを使用した暗号化と復号のオペレーションは、外部キーマネージャーがユーザーの暗号化キーマテリアルを使って実行します。この機能は Hold Your Own Key (HYOK) と呼ばれています。

AWS KMS は外部キーマネージャーと直接やり取りすることはなく、キーを作成、表示、管理、または削除することもできません。代わりに、 は、ユーザーが提供する外部キーストアプロキシ (XKS プロキシ) ソフトウェアとのみ AWS KMS 相互作用します。外部キーストアプロキシは、 AWS KMS と外部キーマネージャー間のすべての通信を仲介します。からのすべてのリクエスト AWS KMS を外部キーマネージャーに送信し、外部キーマネージャーからのレスポンスを に送信します AWS KMS。外部キーストアプロキシは、 からの一般的なリクエスト AWS KMS を、外部キーマネージャーが理解できるベンダー固有の形式に変換するため、さまざまなベンダーのキーマネージャーと外部キーストアを使用できます。

外部キーストアの KMS キーは、AWS Encryption SDK など、クライアント側の暗号化に使用できます。ただし、外部キーストアはサーバー側の暗号化の重要なリソースであり、 の外部の暗号化キー AWS のサービス を使用して複数の の AWS リソースを保護できます AWS。 AWS のサービス 対称暗号化のカスタマーマネージドキーをサポートする は、外部キーストアの KMS キーもサポートしています。サービスサポートの詳細については、「AWS サービス統合」を参照してください。

外部キーストアを使用すると、暗号化キーを の外部に保存して使用する必要がある規制対象のワークロード AWS KMS に を使用できます AWS。ただし、こうした使用は標準の責任共有モデルから大きく逸脱するものであり、オペレーション上の負担が増えることになります。可用性とレイテンシーに関するリスクが増えれば、そのリスクは、大半のお客様にとって外部キーストアのセキュリティにおける利点を上回るものとなります。

外部キーストアを使用すると、ユーザーは、信頼の基点を制御することができます。外部キーストアの KMS キーで暗号化されたデータは、ユーザーが管理する外部キーマネージャーでしか復号することはできません。外部キーストアを切断したり、外部キーストアプロキシから外部キーマネージャーを切断したりするなど、外部キーマネージャーへのアクセスを一時的に取り消すと、 は、復元するまで暗号化キーへのすべてのアクセス AWS を失います。その間、ユーザーの KMS キーで暗号化された暗号文は復号できません。外部キーマネージャーへのアクセスを永久に無効にすると、外部キーストアの KMS キーで暗号化された暗号文は、すべて回復不能になります。唯一の例外は、KMS キーで保護されたデータキーを一時的にキャッシュする AWS サービスです。これらのデータキーは、リソースを非アクティブにするまで、またはキャッシュの有効期限が切れるまで、機能し続けます。詳細については、「使用できない KMS キーがデータキーに及ぼす影響」を参照してください。

外部キーストアは、暗号化キーがお客様の管理下のみで維持され、 にアクセスできない必要がある、規制対象のワークロードのいくつかのユースケースをブロック解除します AWS。しかし、こうした使用はクラウドベースのインフラストラクチャの運用方法を大きく変えるもので、責任共有モデルに著しい変化をもたらします。ほとんどのワークロードでオペレーションの負担が増えることになり、可用性とパフォーマンスのリスクが増え、そのリスクは、外部キーストアを利用するセキュリティ上の利点を上回ります。

詳細はこちら:

自分は外部キーストアを使う必要がありますか?

ほとんどのユーザーにとって、FIPS 140-2 セキュリティレベル 3 で検証されたハードウェアセキュリティモジュール によって保護されているデフォルトの AWS KMS キーストアは、セキュリティ、コントロール、および規制要件を満たします。外部キーストアを使用するユーザーには、多額のコスト、メンテナンスやトラブルシューティングなどの負担、レイテンシー、可用性、信頼性のリスクが生じます。

外部キーストアの使用を検討する際は、代わりの手段についても理解しておきましょう。例えば、ユーザーが所有し管理する、 AWS CloudHSM クラスターでバックアップされた AWS CloudHSM キーストアや、ユーザーが自身の HSM で生成し、必要に応じて KMS キーから削除できる、インポートされたキーマテリアルを使う KMS キーなどです。特に、有効期限が非常に短いキーマテリアルをインポートすると、パフォーマンスや可用性のリスクなしに、同様のレベルの制御が可能になる場合があります。

以下の要件がある場合は、外部キーストアが組織にとって適切なソリューションとなる可能性があります。

  • オンプレミスのキーマネージャー、または AWS ユーザーが管理する 以外のキーマネージャーで暗号化キーを使用する必要があります。

  • 暗号化キーが、クラウド以外の場所で、ユーザーが単独で管理して保持されていることを証明する必要がある場合。

  • 暗号化と復号で、独立した認証を受けた暗号化キーを使用する必要がある場合。

  • キーマテリアルは、補助的な、独立した監査パスの対象とする必要があります。

外部キーストアを選択する場合は、その使用を、 AWS以外の暗号化キーによる保護を必要とするワークロードに限定します。

責任共有モデル

標準 KMS キーは、 AWS KMS が所有および管理する HSMs で生成および使用されるキーマテリアルを使用します。KMS キーでアクセスコントロールポリシーを確立し、 AWS のサービス が KMS キーを使用して リソースを保護するように設定します。 AWS KMS は、KMS キー内のキーマテリアルのセキュリティ、可用性、レイテンシー、および耐久性に対する責任を負います。

外部キーストアの KMS キーは、外部キーマネージャーにおけるキーマテリアルとオペレーションに依存します。そのため、責任のバランスはユーザー側にシフトします。お客様は、外部キーマネージャーの暗号化キーのセキュリティ、信頼性、耐久性、およびパフォーマンスに責任を負います。 AWS KMS は、リクエストに迅速に対応し、外部キーストアプロキシと通信し、当社のセキュリティ標準を維持する責任があります。すべての外部キーストアの暗号文が標準 AWS KMS 暗号文と少なくとも同じ強度になるように、 は AWS KMS まず KMS キーに固有の AWS KMS キーマテリアルですべてのプレーンテキストを暗号化し、次に外部キーで暗号化するために外部キーマネージャーに送信します。これは、二重暗号化と呼ばれる手順です。それにより、 AWS KMS も外部キーマテリアルの所有者も、二重に暗号化された暗号文を単独で復号することはできなくなります。

ユーザーは、規制およびパフォーマンス基準を満たす外部キーマネージャーの管理、AWS KMS 外部キーストアプロキシ API 仕様に準拠する外部キーストアプロキシの提供と維持、およびキーマテリアルの可用性と耐久性の確保に責任を負います。また、は外部キーストアの作成、設定、維持もユーザーが行います。メンテナンスするコンポーネントが原因でエラーが発生した場合は、 AWS サービスが過度に中断されることなくリソースにアクセスできるように、エラーを特定して解決する準備を整える必要があります。 は、問題の原因と最も可能性の高い解決策を判断するのに役立つトラブルシューティングガイダンス AWS KMS を提供します。

が外部キーストアに記録する Amazon の CloudWatch メトリクスとディメンション AWS KMS を確認してください。 AWS KMS では、パフォーマンスや運用上の問題の初期兆候を事前に検出できるように、外部キーストアをモニタリングする CloudWatch アラームを作成することを強くお勧めします。

違いは何か

外部キーストアは、対称暗号化 KMS キーのみをサポートしています。内では AWS KMS、アクセスコントロールポリシーの設定やキーの使用のモニタリングなど、他のカスタマーマネージドキー を管理するのとほぼ同じ方法で、外部キーストアの KMS キーを使用および管理します。ユーザーが KMS キーに使用している、外部キーストアの KMS キーを使った暗号化オペレーションをリクエストするときは、同じ API を同じパラメータで使用します。料金も、標準の KMS キーと同じです。詳細については、「外部キーストアで KMS キーを管理する」、「外部キーストアで KMS キーを使用する」、「AWS Key Management Service の料金」をそれぞれ参照してください。

ただし、外部キーストアには以下のような原則の変更があります。

  • キーオペレーションの可用性、耐久性、レイテンシーの責任はユーザーが負う。

  • 外部キーマネージャーシステムの開発、購入、オペレーション、ライセンス供与のコストは、ユーザーが負担する。

  • から外部キーストアプロキシ AWS KMS へのすべてのリクエストに対して、独立した認証を実装できます。

  • 外部キーストアプロキシのすべてのオペレーションと、 AWS KMS リクエストに関連する外部キーマネージャーのすべてのオペレーションをモニタリング、監査、ログ記録できます。

開始方法

外部キーストアを作成して管理するには、外部キーストアプロキシ接続オプションを選択し、前提条件を構成し、外部キーストアを作成、設定する必要があります。使用を開始するには「外部キーストアの計画」を参照してください。

クォータ

AWS KMS では、接続状態に関係なく、キーストア と外部キーストア の両方を含む、各 およびリージョンに最大 10 個のカスタムキーストアを使用できます。 AWS アカウント AWS CloudHSMまた、外部キーストアで KMS キーを使用するときは、 AWS KMS リクエストクォータが適用されます。

外部キーストアプロキシに VPC プロキシ接続を選択すると、VPC、サブネット、Network Load Balancer などの必要なコンポーネントにもクオータが適用される場合があります。これらのクォータの詳細については、Service Quotas コンソールを参照してください。

リージョン

ネットワークのレイテンシーを最小限に抑えるには、外部キーマネージャーに最も近い AWS リージョン に外部キーストアコンポーネントを作成します。可能な場合は、ネットワークラウンドトリップ時間 (RTT) が 35 ミリ秒以下のリージョンを選択します。

外部キーストア AWS KMS は、中国 (北京) AWS リージョン と中国 (寧夏) を除く、 がサポートされているすべての でサポートされています。

サポートされていない機能

AWS KMS は、カスタムキーストアで以下の機能をサポートしていません。

外部キーストアのコンセプト

このトピックでは、外部のカスタムキーストアで使用するいくつかの概念について説明します。

外部キーストア

外部キーストアは、ユーザーが所有および管理する の外部キーマネージャーによってバックアップされた AWS KMS カスタムキーストア AWS です。外部キーストアの各 KMS キーは、外部キーマネージャーの外部キーに関連付けられています。外部キーストアの KMS キーを使って暗号化または複合化を行う場合、オペレーションは、外部キーマネージャーでユーザーの外部キーを使用して実行されます。この方法は Hold your Own Keys (HYOK) と呼ばれます。この機能は、暗号化キーを自社の外部キーマネージャーで管理する必要のある組織向けに設計されています。

外部キーストアは、 AWS リソースを保護する暗号化キーとオペレーションが、ユーザーの管理下にある外部キーマネージャーに確実に保持されるようにします。 AWS KMS は、データを暗号化および復号化するためのリクエストを外部キーマネージャーに送信しますが、外部キーを作成、削除、管理 AWS KMS することはできません。から外部キーマネージャー AWS KMS へのすべてのリクエストは、ユーザーが提供、所有、管理する外部キーストアプロキシソフトウェアコンポーネントによって仲介されます。

AWS AWS KMS カスタマーマネージドキーをサポートする のサービスは、外部キーストアの KMS キーを使用してデータを保護します。それによりデータは、最終的にユーザーのキーによって、外部キーマネージャーで暗号化オペレーションを使用して保護されます。

外部キーストアの KMS キーは、信頼モデル、責任共有の取り決め、期待されるパフォーマンスが標準の KMS キーとは根本的に異なります。外部キーストアを使用した場合、ユーザーは、キーマテリアルのセキュリティと整合性、および暗号化のオペレーションに責任を負います。外部キーストアにある KMS キーの可用性とレイテンシーは、ハードウェア、ソフトウェア、ネットワークコンポーネント、そして AWS KMS と外部キーマネージャーとの距離の影響を受けます。また、外部キーマネージャー、および外部キーマネージャーが通信するために必要なネットワークおよびロードバランシングインフラストラクチャに追加コストが発生する可能性があります。 AWS KMS

外部キーストアは、より広範なデータ保護戦略の一環として使用することができます。保護する AWS リソースごとに、外部キーストアで KMS キーを必要とするものと、標準の KMS キーで保護できるものを決定できます。これにより、KMS キーを、特定のデータ分類、アプリケーション、プロジェクト向けに柔軟に選択できます。

外部キーマネージャー

外部キーマネージャーは、256 ビット AES 対称キーを生成し、対称暗号化と復号を実行できる AWS の外部コンポーネントです。外部キーストアの外部キーマネージャーには、物理ハードウェアセキュリティモジュール (HSM)、仮想 HSM、HSM コンポーネントの有無にかかわらずソフトウェアキーマネージャー、のいずれかを使用できます。オンプレミス AWS、ローカルまたはリモートのデータセンター、または任意のクラウドなど、 の外部に配置できます。外部キーストアは、単一の外部キーマネージャー、または暗号化キーを共有している、複数の関連するキーマネージャーインスタンス(HSM クラスターなど)によってバックアップできます。外部キーストアは、さまざまなベンダーの、さまざまな外部マネージャーをサポートするように設計されています。外部キーマネージャーの要件の詳細については、「外部キーストアの計画」を参照してください。

外部キー

外部キーストアの各 KMS キーは、外部キーとも呼ばれる、外部キーマネージャーにある暗号化キーに関連付けられています。外部キーストアの KMS キーを使って暗号化または複合化を行うとき、暗号化オペレーションは、外部キーマネージャーによって、ユーザーの外部キーを使用して実行されます。

警告

外部キーは、KMS キーのオペレーションに不可欠なものです。外部キーを紛失したり削除したりすると、関連付けられた KMS キーで暗号化された暗号文は回復不能になります。

外部キーストアの場合、外部キーは、有効化され、暗号化と復号を実行できる、256 ビット AES キーでなければなりません。外部キー要件の詳細については、「外部キーストアの KMS キーの要件」を参照してください。

AWS KMS は、外部キーを作成、削除、管理することはできません。ユーザーの暗号化キーマテリアルは、外部キーマネージャーの外に出ることはありません。外部キーストアで KMS キーを作成するときは、ユーザーが外部キーの ID (XksKeyId) を指定します。KMS キーに関連付けられた外部キー ID は変更できません。ただし、外部キーマネージャは、外部キー ID に関連付けられたキーマテリアルをローテーションできます。

外部キーのほかに、外部キーストアの KMS キーには AWS KMS キーマテリアルもあります。KMS キーで保護されたデータは、最初に AWS KMS キーマテリアル AWS KMS を使用して暗号化され、次に外部キーマネージャーによって外部キーを使用して暗号化されます。この二重暗号化プロセスにより、KMS キーで保護された暗号文は、 AWS KMSのみで保護された暗号文と同等以上の安全性を維持できます。

暗号化キーの多くは、異なる種類の識別子を持ちます。外部キーストアに KMS キーを作成するときは、外部キーストアプロキシが外部キーを参照するときに使用する、外部キーの ID を指定します。誤った識別子を使用すると、外部キーで KMS キーを作成するときに失敗します。

外部キーストアプロキシ

外部キーストアプロキシ (「XKS プロキシ」) は、 と外部キーマネージャー間のすべての通信を仲介する、カスタマー所有 AWS KMS およびカスタマー管理のソフトウェアアプリケーションです。また、一般的な AWS KMS リクエストをベンダー固有の外部キーマネージャーが理解できる形式に変換します。外部キーストアには、外部キーストアプロキシが必要です。各外部キーストアは、1 つの外部キーストアプロキシに関連付けられています。

外部キーストアプロキシ

AWS KMS は、外部キーを作成、削除、管理することはできません。ユーザーの暗号化キーマテリアルは、ユーザーの外部キーマネージャーの外に出ることはありません。 AWS KMS と外部キーマネージャー間のすべての通信は、外部キーストアプロキシによって仲介されます。 は、外部キーストアプロキシにリクエスト AWS KMS を送信し、外部キーストアプロキシからレスポンスを受信します。外部キーストアプロキシは、 から外部キーマネージャー AWS KMS にリクエストを送信し、外部キーマネージャーから にレスポンスを送信する責任があります。 AWS KMS

外部キーストアの外部キーストアプロキシを所有および管理して、そのメンテナンスとオペレーションを行う責任は、ユーザーが負います。外部キーストアプロキシは、ベンダーからプロキシアプリケーションを AWS KMS 公開または購入するオープンソースの外部キーストアプロキシ API 仕様に基づいて開発できます。外部キーストアプロキシは、外部キーマネージャーに含まれている場合があります。プロキシ開発をサポートするために、 は、外部キーストアプロキシのサンプル (aws-kms-xks-proxy) と、外部キーストアプロキシが仕様に準拠していることを検証するテストクライアント (xks-kms-xksproxy-testクライアント ) AWS KMS も提供します。

への認証のために AWS KMS、プロキシはサーバー側の TLS 証明書を使用します。プロキシに認証するために、 は SigV4 プロキシ認証認証情報 を使用して、外部キーストアプロキシへのすべてのリクエスト AWS KMS に署名します。オプションで、プロキシは相互 TLS (mTLS) を有効にして、 からのリクエストのみを受け入れることをさらに保証できます AWS KMS。

外部キーストアプロキシは、以下の暗号スイートのうち少なくとも 1 つを含む HTTP/1.1 以降と TLS 1.2 以降をサポートしている必要があります。

  • TLS_AES_256_GCM_SHA384 (TLS 1.3)

  • TLS_CHACHA20_POLY1305_SHA256 (TLS 1.3)

    注記

    AWS GovCloud (US) Region は TLS_CHACHA20_POLY1305_SHA256 をサポートしていません。

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)

外部キーストアの KMS キーを作成し使用するときは、最初に外部キーストアを外部キーストアプロキシに接続しておく必要があります。外部キーストアは、必要に応じてプロキシから切断することも可能です。切断すると、外部キーストアのすべての KMS キーが使用できなくなり、いずれの暗号化オペレーションでもそれらを使用できなくなります。

外部キーストアプロキシ接続

外部キーストアプロキシ接続 (「XKS プロキシ接続」) は、 が外部キーストアプロキシとの通信 AWS KMS に使用する方法を説明します。

外部キーストアを作成するときにプロキシ接続のオプションを指定すると、そのプロキシ接続は外部キーストアのプロパティになります。プロキシ接続オプションは、カスタムキーストアプロパティを更新することで変更できますが、外部キーストアプロキシが引き続き同じ外部キーにアクセスできることを、確認しておく必要があります。

AWS KMS は、次の接続オプションをサポートしています。

  • パブリックエンドポイント接続 — インターネット経由で外部キーストアプロキシのリクエストを、ユーザーが管理するパブリックエンドポイント AWS KMS に送信します。このオプションは簡単に作成し管理することができますが、すべてのインストールのセキュリティ要件を満たしているとは限りません。

  • VPC エンドポイントサービス接続 — AWS KMS は、作成して管理する Amazon Virtual Private Cloud (Amazon VPC) エンドポイントサービスにリクエストを送信します。外部キーストアプロキシを Amazon VPC 内でホストすることも、 の外部で外部キーストアプロキシをホスト AWS して、Amazon VPC を通信にのみ使用できます。

外部キーストアプロキシ接続のオプションの詳細については、「プロキシ接続オプションの選択」を参照してください。

外部キーストアのプロキシ認証の認証情報

外部キーストアプロキシに対して認証するために、 は、署名 V4 (SigV4) 認証情報を使用して、外部キーストアプロキシへのすべてのリクエスト AWS KMS に署名します。プロキシで認証情報を確立して維持し、外部ストアを作成する AWS KMS ときにこの認証情報を に提供します。

注記

AWS KMS が XKS プロキシへのリクエストに署名するために使用する SigV4 認証情報は、 の AWS Identity and Access Management プリンシパルに関連付けられた SigV4 認証情報とは無関係です AWS アカウント。IAM SigV4 認証情報を外部キーストアプロキシに再利用しないでください。

各プロキシ認証の認証情報は、2 つの要素から成ります。外部キーストアを作成するとき、または外部キーストア用にプロキシ認証の認証情報を更新するときは、これら両方の要素を指定する必要があります。

  • アクセスキー ID: シークレットアクセスキーを識別します。この ID はプレーンテキストで入力できます。

  • シークレットアクセスキー: 認証情報のシークレット部分。 は、認証情報を保存する前に、認証情報内のシークレットアクセスキーを AWS KMS 暗号化します。

認証情報の設定は、間違った値を入力したとき、プロキシの認証情報を変更するとき、プロキシが認証情報をローテーションするときなどにいつでも編集できます。外部キーストアプロキシへの認証に関する AWS KMS 技術的な詳細については、 AWS KMS 「外部キーストアプロキシ API 仕様」の「認証」を参照してください。

外部キーストアで KMS キー AWS のサービス を使用する を中断することなく認証情報をローテーションできるようにするには、外部キーストアプロキシが に対して少なくとも 2 つの有効な認証情報をサポートすることをお勧めします AWS KMS。これにより、新しい認証情報を AWS KMSに提供している間も、以前の認証情報が引き続き機能します。

プロキシ認証情報の経過時間を追跡しやすくするために、 は Amazon CloudWatch メトリクス AWS KMS を定義しますXksProxyCredentialAge。このメトリクスを使用して、認証情報の経過時間が設定したしきい値に達したときに通知する CloudWatch アラームを作成できます。

外部キーストアプロキシが AWS KMSのみに応答することをさらに確実にするため、一部の外部キープロキシは Mutual Transport Layer Security (mTLS) をサポートしています。詳細については、「mTLS 認証 (オプション)」を参照してください。

プロキシ API

AWS KMS 外部キーストアをサポートするには、外部キーストアプロキシは、外部キーストアプロキシ APIs 仕様 の説明に従って、必要なプロキシ API を実装する必要があります。 AWS KMSこれらのプロキシ API リクエストは、 がプロキシ AWS KMS に送信する唯一のリクエストです。ユーザーはこれらのリクエストを直接送信することはありませんが、これらについて知っておくと、外部キーストアやそのプロキシで発生する問題を修正する際に役に立つ場合があります。例えば、 は、外部キーストアの Amazon CloudWatch メトリクスに、これらの API コールのレイテンシーと成功率に関する情報 AWS KMS を含めます。詳細については、「外部キーストアのモニタリング」を参照してください。

以下の表には各プロキシ API が一覧表示され、それぞれが説明されてます。また、プロキシ API への呼び出しをトリガーする AWS KMS オペレーションと、プロキシ API に関連する AWS KMS オペレーション例外も含まれます。

プロキシ API 説明 関連する AWS KMS オペレーション
Decrypt AWS KMS は、復号する暗号文と、使用する外部キーの ID を送信します。必要な暗号化アルゴリズムは AES_GCM です。 を復号する ReEncrypt
暗号化 AWS KMS は、暗号化するデータと、使用する外部キーの ID を送信します。必要な暗号化アルゴリズムは AES_GCM です。 暗号化 GenerateDataKeyGenerateDataKeyWithoutPlaintextReEncrypt
GetHealthStatus AWS KMS は、プロキシと外部キーマネージャーのステータスに関する情報をリクエストします。

各外部キーマネージャーのステータスは、以下のいずれかになります。

  • Active: 正常。トラフィックを処理できる

  • Degraded: 異常。ただし、トラフィックを処理できる

  • Unavailable: 異常。トラフィックを処理できない

CreateCustomKeyStore (パブリックエンドポイント接続の場合)、 ConnectCustomKeyStore (VPC エンドポイントサービス接続の場合)

すべての外部キーマネージャーインスタンスが Unavailable である場合、キーストアを作成または接続しようとすると XksProxyUriUnreachableException で失敗します。

GetKeyMetadata AWS KMS は、外部キーストアの KMS キーに関連付けられた外部キーに関する情報をリクエストします。

応答には、キーのスペック (AES_256)、キーの使用 ([ENCRYPT, DECRYPT])、外部キーが ENABLED または DISABLED かどうか、が含まれます。

CreateKey

キーのスペックが AES_256 でない場合、キーの使用が [ENCRYPT, DECRYPT] でない場合、ステータスが DISABLED である場合、CreateKey オペレーションは XksKeyInvalidConfigurationException により失敗します。

二重暗号化

外部キーストアの KMS キーで暗号化されるデータは、2 回暗号化されます。まず、 は KMS AWS KMS キーに固有のキーマテリアルでデータを AWS KMS 暗号化します。次に、 AWS KMSで暗号化された暗号文が、外部キーマネージャーによって外部キーを使用して暗号化されます。このプロセスは二重暗号化と呼ばれます。

二重暗号化を使用すれば、外部キーストアの KMS キーで暗号化されたデータを、標準の KMS キーで暗号化された暗号文と同等以上の安全性で維持できます。また、 から外部キーストアプロキシ AWS KMS に転送中のプレーンテキストも保護します。二重暗号化を使うことで、暗号文を完全に制御できます。外部キーへの AWS アクセスを外部プロキシ経由で永久に無効にすると、 AWS に残っている暗号文は暗号によって実質的に細断されます。

外部キーストアの KMS キーによって保護されたデータの二重暗号化

二重暗号化を有効にするには、外部キーストア内の各 KMS キーに 2 つの暗号化バッキングキーを作成します。

  • KMS AWS KMS キーに固有のキーマテリアル。このキーマテリアルは、 AWS KMS FIPS 140-2 セキュリティレベル 3 認定のハードウェアセキュリティモジュール (HSMs) でのみ生成され、使用されます。

  • 外部キーマネージャーの外部キー

二重暗号化には次の効果があります。

  • AWS KMS は、外部キーストアプロキシ経由で外部キーにアクセスせずに、外部キーストアの KMS キーによって暗号化された暗号文を復号できません。

  • 外部キーマテリアルがある場合でも AWS、 の外部キーストアの KMS キーで暗号化された暗号文を復号することはできません。

  • 外部キーストアから削除された KMS キーは、その外部キーマテリアルがある場合でも、再作成できない。各 KMS キーには、対称暗号文に含まれる固有のメタデータがある。新しい KMS キーでは、同じ外部キーマテリアルを使用する場合でも、元のキーで暗号化された暗号文を復号することはできない。

実際の二重暗号化の例については、「外部キーストアの仕組み」を参照してください。

外部キーストアの仕組み

外部キーストア外部キーストアプロキシ外部キーマネージャーは、連携して AWS リソースを保護します。次の手順は、KMS キーで保護された一意のデータキーに基づいて各オブジェクトを暗号化する、一般的な AWS のサービス の暗号化ワークフローを示したものです。この場合、オブジェクトを保護するために、外部キーストアの KMS キーが選択されています。この例では、 が二重暗号化 AWS KMS を使用して転送中のデータキーを保護し、外部キーストアの KMS キーによって生成された暗号文が、 のキーマテリアルを持つ標準の対称 KMS キーによって暗号化された暗号文と少なくとも同じ強度であるようにする方法を示しています AWS KMS。

と AWS のサービス 統合する実際の ごとに使用される暗号化方法は AWS KMS 異なります。詳細については、 AWS のサービス ドキュメントの「セキュリティ」の項にある「データ保護」のトピックを参照してください。

外部キーストアの仕組み
  1. AWS のサービス リソースに新しいオブジェクトを追加します。オブジェクトを暗号化するために、 は外部キーストアの KMS キー AWS KMS を使用して にGenerateDataKeyリクエスト AWS のサービス を送信します。

  2. AWS KMS は 256 ビットの対称データキーを生成し、外部キーストアプロキシを介してプレーンテキストデータキーのコピーを外部キーマネージャーに送信する準備をします。 は、外部キーストアの KMS キーに関連付けられたAWS KMS キーマテリアルでプレーンテキストデータキーを暗号化することで、二重暗号化プロセス AWS KMS を開始します。

  3. AWS KMS は、外部キーストアに関連付けられた外部キーストアプロキシに暗号化リクエストを送信します。リクエストには、暗号化されるデータキー暗号文と、KMS キーに関連付けられている外部キーの ID が含まれます。 は、外部キーストアプロキシのプロキシ認証情報を使用してリクエスト AWS KMS に署名します。

    データキーのプレーンテキストのコピーは、外部キーストアプロキシには送信されません。

  4. 外部キーストアプロキシがリクエストを認証し、暗号化リクエストを外部のキーマネージャーに渡します。

    外部キーストアプロキシの中には、特定の条件下で、選択されたプリンシパルのみが操作されるように、オプションの認証ポリシーを実装しているものもあります。

  5. 外部キーマネージャーは、指定された外部キーを使用して、データキーの暗号文を暗号化します。外部キーマネージャは二重に暗号化されたデータキーを外部キーストアプロキシに返し、外部キーストアプロキシはそれを AWS KMSに返します。

  6. AWS KMS は、プレーンテキストのデータキーとそのデータキーの二重暗号化されたコピーを に返します AWS のサービス。

  7. AWS のサービス は、プレーンテキストデータキーを使用してリソースオブジェクトを暗号化し、プレーンテキストデータキーを破棄して、暗号化されたデータキーを暗号化されたオブジェクトに保存します。

    一部の は、プレーンテキストのデータキーをキャッシュして複数のオブジェクトに使用したり、リソースの使用中に再利用 AWS のサービス したりする場合があります。詳細については、「使用できない KMS キーがデータキーに及ぼす影響」を参照してください。

暗号化されたオブジェクトを復号するには、 は暗号化されたデータキーを Decrypt リクエスト AWS KMS で に送信し直す AWS のサービス 必要があります。暗号化されたデータキーを復号するには、暗号化されたデータキーを外部キーの ID で外部キーストアプロキシに送信し直す AWS KMS 必要があります。何らかの理由で外部キーストアプロキシへの復号リクエストが失敗した場合、 AWS KMS は暗号化されたデータキーを復号できず、 AWS のサービス は暗号化されたオブジェクトを復号できません。