以下のよくある質問は、Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンの AWS Key Management Service (KMS) には適用されません。これら 2 つの中国リージョンに関連するコンテンツについては、こちらのよくある質問のリンクを参照してください。
全般
Q: AWS KMS とは?
AWS KMS は、暗号化操作に使用されるキーを簡単に作成および管理できるマネージドサービスです。このサービスは、可用性の高いキーの生成、保管、管理、監査ソリューションを提供し、独自のアプリケーション内でデータの暗号化やデジタル署名を行うことや、AWS のサービス全体でデータの暗号化を管理することができます。
Q: なぜ AWS KMS を使用すべきですか?
AWS のサービス全体でデータを保護する責任がある場合は、このサービスを使用して、データへのアクセスをコントロールする暗号化キーを一元管理できます。アプリケーション内のデータを暗号化する必要があるデベロッパーは、AWS KMS を利用して AWS Encryption SDK を使用することをお勧めします。これにより、コード内の対称暗号化キーをより簡単に生成、使用、保護できます。非対称キーを使用してデータのデジタル署名または検証を行う必要があるデベロッパーは、このサービスを使用して、必要なプライベートキーを作成および管理できます。デベロッパーと増え続けるアプリケーションをサポートするためにスケーラブルなキー管理インフラストラクチャを必要としている場合は、このサービスでライセンスコストと運用の負担を軽減できます。規制やコンプライアンスに準拠するためにデータセキュリティを提供する必要がある場合は、このサービスを使用して、データが一貫して保護されていることを容易に証明できます。また、AWS KMS は広範囲にわたる業種および地域的なコンプライアンス体制にも対応しています。
Q: AWS KMS の使用を開始するにはどのようにすればよいですか?
AWS KMS を使い始める最も簡単な方法は、各サービスによって自動的に作成される AWS 所有のルートキーを使用する AWS サービスでデータを暗号化することを選択することです。 アカウント間またはサービス間でキーのアクセスを共有する機能など、キーの管理を完全にコントロールする必要がある場合は、AWS KMS に独自の AWS KMS カスタマー管理のキーを作成できます。ユーザー独自のアプリケーション内で、直接作成した KMS キーを使用することもできます。AWS KMS は KMS コンソールからアクセスできます。KMS コンソールは、AWS KMSコンソールの AWS のサービスホームページの [セキュリティ、アイデンティティ、コンプライアンス] グループに属しています。AWS KMS API は、AWS KMS コマンドラインインターフェイス (CLI) またはプログラムアクセス用の AWS SDK 経由で直接アクセスすることも可能です。AWS KMS API は AWS Encryption SDK を使用して、ユーザー独自のアプリケーション内のデータを暗号化するために間接的に使用することも可能です。詳細は、開始方法のページをご覧ください。
Q: AWS KMS ではどのようなキー管理機能を利用できますか?
以下のキー管理機能を実行できます。
- サービス内でのみ使用されるキーマテリアルで対称キーおよび非対称キー、HMAC キーを作成する
- キーマテリアルは、AWS CloudHSM または AWS 外の独自の外部キーマネージャのいずれかによってバックアップされ、制御下のカスタムキーストアで生成および使用されている対称キーを作成します。
- サービス内で使用するための独自の対称キーマテリアルをインポートする
- AWS Identity and Access Management (IAM) のユーザーとロールがキーを管理できるかを定義する
- どの IAM ユーザーとロールがキーを使用してデータを暗号化および復号できるか定義する
- サービスによって生成されたキーが 1 年ごとに自動更新されるように設定する
- 誰にもキーが使用されないように、一時的に無効にする
- 無効にしたキーを再度有効にする
- 使用しなくなったキーの削除をスケジュールする
- AWS CloudTrail でログを調査してキーの使用を監査する
Q: AWS KMS を使用した場合、データはどこで暗号化されるのですか?
AWS KMS を使用してデータを暗号化する方法には、通常 3 つのシナリオがあります。まず、AWS KMS API を直接使用し、サービスに保存されている KMS キーを使ってデータの暗号化と暗号化ができます。2 番目は、サービスに保存されている KMS キーを使用して、AWS のサービスでデータを暗号化させる方法です。この場合、データは KMS キーで保護されているデータキーを使用して暗号化されます。3 番目は、AWS KMS と統合されている AWS Encryption SDK を使用する方法です。ユーザー独自のアプリケーションが AWS 内で動作しているかどうかにかかわらず、アプリケーション内で暗号化を実行できます。
Q: なぜエンベロープ暗号化を使用するのですか? なぜ単に AWS KMS に直接データを送信して暗号化しないのですか?
AWS KMS は最大 4 KB のデータを直接暗号化して送信することをサポートしていますが、エンベロープ暗号化にはパフォーマンス面で多大なメリットがあります。AWS KMS で直接データを暗号化する場合、データをネットワーク経由で送信する必要があります。エンベロープ暗号化は、非常に小さいデータキーのリクエストと配信がネットワークを行き交うのみなので、ネットワークの負荷が軽減します。データキーは、アプリケーション内または暗号化を行う AWS のサービスでローカルに使用されるため、データブロック全体を AWS KMS に送信する必要がなく、ネットワークレイテンシーが発生しません。
Q: 自分で作成した KMS キーと他の AWS のサービスが自動的に作成した KMS キーにどんな違いがありますか?
AWS のサービスがお客様に代わってデータを暗号化する場合に、お客様は使用する特定の KMS キーを選択できます。これらはカスタマー管理の KMS キーと呼ばれ、お客様が完全に管理します。ユーザーが各キーのアクセス制御と使用ポリシーを定義し、他のアカウントやサービスに使用許可を与えることができます。AWS KMS では、カスタマー管理のキーの他に、AWS が管理する 2 種類のキーも用意されています。(1) AWS 管理の KMS キーは、お客様のアカウントで作成され、AWS が管理するキー、(2) AWS 所有のキーは AWS アカウントから完全に所有および運用されるキーです。ユーザーはアカウント内の AWS マネージドキーを追跡することができ、使用はすべて CloudTrail にログされますが、キー自体を直接管理することはできません。AWS 所有のキーは最も自動化されており、AWS 内でデータの暗号化を提供しますが、そのキーのアクティビティに関するポリシー制御や CloudTrail ログを提供しません。
Q: なぜ自分で AWS KMS キーを作成しなければならないのですか?
独自の KMS キーを作成すると、AWS 管理の KMS キーを使用するよりさらに厳重な管理ができます。カスタマー管理の対称 KMS キーを作成すると、使用するキーマテリアルを AWS KMS または AWS CloudHSM クラスター、または外部キーマネージャ (カスタムキーストアを通じて) 内で生成されたキーマテリアルで生成するか、独自のキーマテリアルをインポートするかを選択できます。キーのエイリアスと説明を定義でき、キーが AWS KMS によって生成された場合は、1 年ごとに自動更新されるよう選択できます。また、あらゆるアクセス許可を設定してキーを使用または管理できるユーザーを制限できます。カスタマー管理の非対称 KMS キーでは、管理について注意事項があります。キーマテリアルは AWS KMS HSM でのみ生成でき、キーの自動更新オプションはありません。
Q: 独自のキーを AWS KMS に持ち込むことはできますか?
はい。独自のキー管理インフラストラクチャから AWS KMS にキーのコピーをインポートして、統合された AWS のサービスで、または独自のアプリケーションでそれを使用できます。非対称 KMS キーを AWS KMS にインポートすることはできません。
Q: インポートされたキーはどのような場合に使用するのですか?
インポートされたキーを使用して、AWS KMS におけるキーの作成、ライフサイクル管理、および耐久性をより確実にコントロールできます。インポートされたキーは、コンプライアンス要件を満たすように設計されています。これには、インフラストラクチャのキーの安全なコピーを生成または維持する機能、および AWS インフラストラクチャからキーのインポートのコピーを直接削除する機能が含まれます。
Q: どのような種類のキーをインポートできますか?
256 ビットの対称キーをインポートできます。
Q: AWS KMS にインポートされるキーは転送中に保護されていますか?
インポート処理中、キーは、2 つの RSA PKCS#1 スキームのいずれかを使用して、AWS KMS が提供するパブリックキーでラップする必要があります。これは、暗号化されたキーが AWS KMS のみによって復号化されることを検証します。
Q: 自身がインポートしたキーと AWS KMS により生成されたキーはどう違うのですか?
大きな違いは次の 2 点です。
- KMS にキーをインポートする場合は、随時それを再インポートできるように、キーのコピーをキー管理インフラストラクチャに維持する責任があります。ただし、AWS KMS により生成したキーの場合は、ユーザーがそのキーの削除を予定に入れるまで、AWS によりキーの可用性、セキュリティ、および耐久性を確認します。
- インポートしたキーには有効期限を設定できます。有効期間を過ぎると、AWS KMS は自動的にキーマテリアルを削除します。インポートしたキーマテリアルをオンデマンドで削除することもできます。いずれの場合でもキーマテリアル自体は削除されますが、将来、キーマテリアルを再度インポートできるように、AWS KMS の KMS キーリファレンスと関連するメタデータは保持されます。AWS KMS によって生成されたキーには有効期限はなく、すぐに削除することはできません。7 日から 30 日の待機期間が必須です。カスタマ―管理の KMS キーはすべて、キーマテリアルがインポートされたものかどうかに関わらず、手動で無効にすることも、削除予定を設定することも可能です。この場合、内在するキーマテリアルだけでなく、KMS キー自体が削除されます。
Q: キーを更新できますか?
はい。キーが AWS KMS HSM で生成された場合は、AWS KMS が KMS キーを毎年自動的に更新するように設定できます。インポートされたキー、非対称キー、AWS KMS カスタムキーストア機能を使用して CloudHSM クラスターで生成されたキーには、自動キー更新はサポートされません。キーを AWS KMS または非対称キーにインポートするか、カスタムキーストアを使用することを選択した場合は、新しい KMS キーを作成し、既存のキーのエイリアスを古い KMS キーから新しい KMS キーにマッピングすることで、手動で更新できます。
Q: AWS KMS のキーが更新されたあと、データを再び暗号化する必要はありますか?
AWS KMS がキーを自動的にローテーションすることを選択した場合は、データを再暗号化する必要はありません。AWS KMS は過去のバージョンのキーを自動的に保管して、そのキーで暗号化されたデータを復号化できるようにします。AWS KMS のキーに対する新しい暗号化リクエストは、すべて最新バージョンのキーで実行されます。
インポートされたキーまたはカスタムキーストアのキーを手動でローテーションする場合は、古いバージョンのキーを利用可能にするかどうかによって、データの再暗号化の必要がある場合があります。
Q: AWS KMS のキーを削除できますか?
はい。AWS KMS で作成したお客様の AWS KMS キーと関連するメタデータは削除を予定できます。削除までの待機期間は 7~30 日の間に設定できます。この待機期間中に、キーを削除することによって、そのキーを使用しているアプリケーションとユーザーが受ける影響を確認できます。デフォルトの待機期間は 30 日です。待機期間中にキーの削除をキャンセルすることもできます。削除を予定したキーを使用することはできません。ただし、待機期間中に削除をキャンセルした場合はその限りではありません。キーは、削除をキャンセルしない限り、待機期間 (設定可能) の最後に削除されます。削除されたキーは使用できなくなります。削除されたルートキーで保護されているデータはすべてアクセスできなくなります。
お客様の AWS KMS キーがインポートされたキーマテリアルの場合は、2 つの方法で AWS KMS キー ID とメタデータを削除せずにキーマテリアルを削除できます。1 つは、待機期間なしで、オンデマンドでインポートされたキーマテリアルを削除する方法です。2 つ目は、AWS KMS キーにキーマテリアルをインポートする際に、AWS でインポートされたキーマテリアルを使用できる有効期限を定義する方法です。再度使用する必要が発生した場合は、キーマテリアルを AWS KMS キーに再インポートできます。
Q: インポートされたキーマテリアルの有効期限が切れた場合、または誤って削除した場合はどうすればよいですか?
元の AWS KMS キーを使って、有効な有効期限が付いたキーマテリアルのコピーを AWS KMS に再インポートできます。そうすれば、再び使用できるようになります。
Q: キーを再インポートする必要性が発生した場合は、アラートが発せられますか?
はい。キーを一旦お客様の AWS KMS キーにインポートすると、インポートされたキーの有効期限までの時間を知らせる CloudWatch メトリクスが数分ごとに届きます。また、AWS KMS キーにインポートされたキーの有効期限が切れると、CloudWatch イベントが送信されます。可用性のリスクを回避するために、こうしたメトリクスとイベントに基づいて動作し、新しい有効期間で自動的にキーを再インポートするロジックを構築できます。
Q: AWS KMS を使用して、AWS クラウドサービス以外のデータ暗号化を管理できますか?
はい。AWS KMS は AWS SDK、AWS Encryption SDK、Amazon DynamoDB Client-side Encryption、および Amazon Simple Storage Service (S3) Encryption Client でサポートされており、実行されている場所を問わずユーザー独自のアプリケーションのデータ暗号化を可能にします。詳しくは、AWS Crypto Tools および Developing on AWS のウェブサイトをご覧ください。
Q: AWS KMS で作成できるキーの数に上限はありますか?
1 つのアカウントで、1 リージョンあたり最大 100,000 個の KMS キーを作成できます。有効および無効にされている KMS キーの合計数が上限に近づいたら、無効にされ使用しなくなったキーを削除することをお勧めします。AWS のサービスで使用するためにお客様に代わって作成される AWS 管理の KMS キーはこの数に含まれません。KMS キーで作成され、アプリケーションまたは AWS のサービスでお客様に代わってデータを暗号化するデータキーの数に上限はありません。AWS Support Center で KMS キーの制限の引き上げをリクエストできます。
Q: どのような種類の対称キータイプとアルゴリズムがサポートされていますか?
AWS KMS では、KMS キーを作成する際の 256 ビットキーをサポートしています。発信者に返される生成済みデータキーは、256 ビット、128 ビット、または最大 1024 バイトまでの任意の値にすることができます。 AWS KMS でお客様の代わりに 256 ビットの KMS キーを使用する場合、Galois Counter Mode の AES アルゴリズム (AES-GCM) が使用されます。
Q: どのような種類の非対称キータイプがサポートされていますか?
AWS KMS では、RSA 2048、RSA 3072、RSA 4096、ECC NIST P-256、ECC NIST P-384、ECC NIST-521、ECC SECG P-256k1 の非対称キータイプをサポートしています。
Q: どのような種類の非対称暗号化アルゴリズムがサポートされていますか?
AWS KMS では、RSAES_OAEP_SHA_1 と RSAES_OAEP_SHA_256 の暗号化アルゴリズムおよび RSA 2048、RSA 3072、RSA 4096 のキータイプをサポートしています。暗号化アルゴリズムは、楕円曲線キータイプ (ECC NIST P-256、ECC NIST P-384、ECC NIST-521、ECC SECG P-256k1) と一緒に使用することはできません。
Q: どのような種類の非対称署名アルゴリズムがサポートされていますか?
RSA キータイプを使用する場合、AWS KMS では、RSASSA_PSS_SHA_256、RSASSA_PSS_SHA_384、RSASSA_PSS_SHA_512、RSASSA_PKCS1_V1_5_SHA_256、RSASSA_PKCS1_V1_5_SHA_384、RSASSA_PKCS1_V1_5_SHA_512 の署名アルゴリズムをサポートします。
楕円曲線キータイプを使用する場合、AWS KMS では、ECDSA_SHA_256、ECDSA_SHA_384、ECDSA_SHA_512 の署名アルゴリズムをサポートします。
Q: KMS キーはプレーンテキストでサービスの外にエクスポートできますか?
いいえ。全ての KMS キーまたは非対称 KMS キーの非公開部分は、プレーンテキストで HSM からエクスポートすることはできません。非対称 KMS キーの公開部分のみを、コンソールから、または GetPublicKey API を呼び出すことでエクスポートできます。
Q: データキーとデータキーペアはプレーンテキストで HSM の外にエクスポートできますか?
はい。対称データキーは、GenerateDataKey API または GenerateDataKeyWithoutPlaintext API を使用してエクスポートできます。また、非対称データキーペアの非公開部分と公開部分は、GenerateDataKeyPair API または GenerateDataKeypairWithoutPlaintext API を使用して AWS KMS の外にエクスポートできます。
Q: データキーとデータキーペアはサービス以外の場所で保管するためにどのように保護されますか?
対称データキーまたは非対称データキーの非公開部分は、AWS KMS にデータキーを生成するようリクエストしたときに定義した対称 KMS キーを使用して暗号化されます。
Q: 非対称 KMS キーの公開部分の使用方法について教えてください。
非対称キーマテリアルの公開部分は AWS KMS で生成されます。この公開部分は、"Verify" API を呼び出すことでデジタル署名検証に使用し、"Encrypt" API を呼び出すことでパブリックキー暗号化に使用できます。パブリックキーは、検証または暗号化を行うために AWS KMS 以外の場所で使用することもできます。GetPublicKey API を呼び出して非対称 KMS キーの公開部分を取得できます。
Q: 非対称オペレーションについて、AWS KMS に送信されるデータのサイズに制限はありますか?
サイズ制限は 4 KB です。4 KB よりも大きいデータにデジタル署名を行う必要がある場合は、データのメッセージダイジェストを作成して、AWS KMS に送信できます。デジタル署名は、データのダイジェストに対して作成され、返されます。Sign API リクエストでパラメータとしてメッセージ全体を送信するか、メッセージダイジェストを送信するかどうかを指定します。非対称オペレーションを使用する必要がある Encrypt API、Decrypt API、Re-Encrypt API に送信されるデータも 4 KB 未満にする必要があります。
Q: 作成した非対称 CMK と対称 KMS キーはどうすれば識別できますか?
コンソールで、[Key Type (キータイプ)] という新しいフィールドが各キーに用意されます。このフィールドには、キーのタイプを示す Asymmetric Key または Symmetric Key という値が表示されます。DescribeKey API を呼び出すと KeyUsage フィールドが返されます。このフィールドでは、キーを署名、HMAC の生成、または暗号化に使用できるかどうかを指定します。
Q: 非対称 または HMAC KMS キーの自動更新はサポートされていますか?
いいえ。非対称 または HMAC KMS キーの自動キー更新はサポートされていません。新しい KMS キーを作成し、古い KMS キーから新しい KMS キーに既存のキーエイリアスをマッピングすることで、手動で更新できます。
Q: 暗号化と署名の両方に 1 つの非対称 KMS キーを使用できますか?
いいえ。KMS キーを作成するときに、キーを復号オペレーションに使用できるのか、署名オペレーションに使用できるのかを指定する必要があります。RSA キータイプは、署名オペレーションまたは暗号化オペレーションに使用できますが、両方には使用できません。楕円曲線キータイプは、署名オペレーションにのみ使用できます。
Q: 非対称キーに関するサービスの制限はありますか?
はい。1 秒あたりのリクエスト数の制限は、キータイプとアルゴリズムによって異なります。詳細については、AWS KMS の制限に関するページを参照してください。
Q: 非対称キーは AWS KMS のカスタムキーストアまたはキーインポート機能で使用できますか?
いいえ。非対称キーではカスタムキーストア機能を使用できません。また、非対称キーは AWS KMS にインポートできません。
Q: 非対称 KMS キーは、デジタル証明書が必要なデジタル署名アプリケーションに使用できますか?
直接はできません。AWS KMS では、デジタル証明書を保存したり、デジタル証明書を作成した非対称 KMS キーと関連付けたりしません。AWS Private Certificate Authority などの認証機関に非対称 KMS キーの公開部分に対して証明書を発行してもらうことができます。こうすることで、お客様のパブリックキーを使用しているエンティティで、そのパブリックキーが本当にお客様に属することを確認できます。
どのような使用シナリオで、AWS KMS の代わりに AWS Private Certificate Authority を使用すべきですか?
AWS Private CA サービスは、主に、エンティティを識別し、ネットワーク接続を保護するための公開鍵基盤 (PKI) を構築するために使用します。PKI では、主に X.509 証明書を使用して、パブリックキー暗号化オペレーションに関する体制を構築するためのプロセスとメカニズムを提供します。証明書では、アイデンティティとパブリックキーの間の関連付けが行われます。認証機関によって証明書が発行される認証プロセスでは、信頼された認証機関によって証明書に署名することでもう 1 つのエンティティのアイデンティティを主張できます。PKI では、アイデンティティ、分散型の信頼、キーライフサイクル管理、失効によって公開される証明書ステータスを利用できます。このような機能によって、AWS KMS で提供される基盤となる非対称暗号化キーとアルゴリズムに重要なプロセスとインフラストラクチャが追加されます。
AWS Private CA を使用すると、証明書を発行して、ウェブサーバー、アプリケーションサーバー、サービスメッシュ、VPN ユーザー、内部 API エンドポイント、AWS IoT Core デバイスを識別できます。証明書によって、これらのリソースのアイデンティティを確立し、暗号化された TLS/SSL 通信チャネルを作成できます。ウェブサーバー、アプリケーションサーバー、Elastic Load Balancer、API Gateway エンドポイント、Amazon Elastic Compute Cloud (EC2) インスタンス、コンテナの TLS ターミネーションに非対称キーを使用することを検討している場合は、証明書の発行と PKI インフラストラクチャの構築に AWS Private CA を検討することをお勧めします。
対照的に AWS KMS では、非対称キーを生成、管理し、デジタル署名や証明書を必要としない暗号化オペレーションにそのキーを使用できます。証明書では送信者と受信者のアイデンティティを信頼されていないエンティティ間で検証できますが、AWS KMS によって提供される未加工の非対称オペレーションは、一般に、アイデンティティを証明する別のメカニズムがある場合、またはアイデンティティを証明しなくても必要なセキュリティの利点を得ることができる場合に役立ちます。
Q: OpenSSL、JCE、Bouncy Castle、CNG など、自分のアプリケーションの暗号化 API プロバイダーを AWS KMS で使用できますか?
その他の暗号化 API プロバイダーを対象としたネイティブの統合は AWS KMS によって提供されていません。署名機能や暗号化機能をアプリケーションに組み込むには、AWS KMS API を直接使用するか、AWS SDK を使用する必要があります。
Q: AWS KMS ではサービスレベルアグリーメント (SLA) を提供しますか?
はい。AWS KMS SLA では、ある請求期間中において、月間稼働率がサービスコミットメントを下回った場合にサービスクレジットを提供するよう定められています。
セキュリティ
Q: AWS KMS では誰がキーを使用および管理できますか?
AWS KMS はお客様が定義した使用および管理ポリシーを実行します。自分のアカウントや他のアカウントの IAM ユーザーやロールに、キーの使用や管理を許可するかどうかを選択できます。
Q: AWS では、私が作成した KMS キーのセキュリティをどのようにして確保しますか?
AWS KMS では、AWS の従業員を含めて誰もこのサービスからプレーンテキストの KMS キーを取得できないように設計されています。AWS KMS は、FIPS 140-2 に基づき検証済みまたは検証段階にあるハードウェアセキュリティモジュール (HSM) を使用して、キーの機密性と完全性を保護しています。HSM に残っているユーザーのプレーンテキスト KMS キーがディスクに書き込まれることはなく、ユーザーがリクエストする暗号化操作の実行に必要な時間に HSM の揮発性メモリでのみ使用されます。サービスホストのソフトウェアと AWS KMS HSM ファームウェアへのアップデートは、アマゾン内の独立したグループおよび FIPS 140-2 を順守した NIST 認証のラボによる監査と確認がなされたマルチパーティーアクセスコントロールでコントロールされています。
セキュリティ管理に関する詳細は、AWS KMS cryptographic details tech paper をご覧ください。AWS KMS HSM に対する FIPS 140-2 証明書は、関連するセキュリティポリシーと共に確認して、AWS KMS HSM がどのようにして FIPS 140-2 のセキュリティ要件を満たしているかの詳細を確認できます。また、AWS Artifact から Service Organization Controls (SOC) レポートのコピーをダウンロードすると、KMS キーを保護するためにサービスで使用されているセキュリティ管理についてさらに詳しくご確認いただけます。
Q: 既存の AWS KMS キーを FIPS 140-2 で検証された HSM で使うように移行するにはどうすればよいですか?
作成日またはオリジンに関係なく、AWS KMS キーはすべて、FIPS 140-2 で検証された、または検証中の HSM を使用して自動的に保護されます。FIPS 140-2 で検証された HSM を使うためにユーザーが行うことはありません。
Q: どの AWS リージョンに FIPS 140-2 で検証された HSM がありますか?
FIPS 140-2 で検証された HSM は、AWS KMS が提供されているすべての AWS リージョンでご利用いただけます。
Q: FIPS 140-2 で検証されたエンドポイントと、AWS KMS 内の FIPS 140-2 で検証された HSMとの違いは何ですか?
AWS KMS は 2 階層のサービスです。API エンドポイントは、完全な前方秘匿性をサポートする TLS 暗号スイートのみを用いた HTTPS 接続上でのクライアントリクエストを受け取ります。これらの API エンドポイントは、AWS KMS HSM または KMS カスタムキーストア機能を使用している場合は AWS CloudHSM クラスターに、リクエストを暗号化操作のために送る前に、これを認証、承認します。
Q: AWS KMS への API リクエストを、FIPS 140-2 で検証されたエンドポイントを用いて行うにはどうすればいいですか?
お使いのアプリケーションを、リージョンのユニークな FIPS 140-2 で検証された HTTPS エンドポイントに接続するように設定します。AWS KMS FIPS 140-2 で検証された HTTPS エンドポイントは OpenSSL FIPS オブジェクトモジュールを用いています。OpenSSL モジュールのセキュリティポリシーはこちらで確認できます。FIPS 140-2 で検証された API エンドポイントは、AWS KMS が提供されているすべての商用リージョンでご利用いただけます。
Q: AWS KMSを使用して Payment Card Industry Data Security Standard (PCI DSS 3.2.1) に定められた暗号化とキー管理の要件に準拠することは可能ですか?
はい。AWS KMS は、PCI DSS 3.2.1 の暗号化とキー管理要件 (主に セクション 3.5 と 3.6 で言及されている) を満たすのに役立つ機能とセキュリティ管理を有していると検証されています。
AWS の PCI DSS 準拠サービスの詳細については、PCI DSS のよくある質問を参照してください。
Q: AWS KMS は、エクスポートしてアプリケーションで使用するデータキーをどのように保護するのですか?
AWS KMS がデータキーを生成し、お客様独自のアプリケーションで使用するために返却するようにリクエストできます。データキーはお客様が AWS KMS で定義したルートキーによって暗号化されます。そのため、暗号化されたデータキーは暗号化されたデータと合わせて安全に保存できます 。オリジナルのルートキー (暗号化されたデータキーの復号化に使用されたもの) の使用許可を与えられたユーザーのみが、暗号化されたデータキー (およびソースデータ) を復号化できます。
Q: AWS KMS キーをエクスポートして独自のアプリケーションで使用できますか?
いいえ。AWS KMS キーは、その安全性を検証し、一貫して実施されるお客様のポリシーを実装し、一元化した使用状況のログを提供するために、サービス内でのみ作成および使用されます。
Q: どの地理的リージョンにキーが保存されますか?
AWS KMS によって生成された単一リージョンの KMS キーは、それが作成されたリージョンでのみ保存および使用されます。AWS KMS マルチリージョンキーを使用すると、マルチリージョンのプライマリキーを同じ AWS パーティション内の複数のリージョンにレプリケートすることを選択できます。
Q: AWS KMS でキーを使用または設定変更したユーザーをどのように確認できますか?
AWS CloudTrail のログは、管理リクエスト (作成、更新、無効化、ポリシーの編集など) および暗号化リクエスト (暗号化/復号化など) など、すべての AWS KMS API リクエストを表示します。アカウントで CloudTrail を有効にすればこのログを確認できます。
Q: AWS KMS と CloudHSM にはどのような違いがありますか?
CloudHSM では、Amazon 仮想プライベートクラウド (VPC) でのキーの保存と使用のために、FIPS 140-2 レベル 3 全体が検証済みシングルテナント HSM クラスターを利用できます。ユーザーは、AWS とは独立した認証メカニズムで、ユーザーのキーがどのように使われるかについて自分だけのコントロールができます。ユーザーは、Amazon EC2 で実行するアプリケーションを操作するのと同様のやり方で、ユーザーの CloudHSM クラスター内のキーを操作します。CloudHSM を使用して様々なユースケースをサポートでき、これにはデジタル著作権管理、パブリックキーインフラストラクチャー (PKI)、ドキュメントへの署名、また PKCS#11、Java JCE、またはMicrosoft CNG インターフェイスを用いた暗号化機能などを含みます。
AWS KMS では、アプリケーションおよびサポートされている AWS のサービスが世界中の複数のリージョンで使用する暗号化キーを単一のコンソールから作成、制御できます。このサービスは、FIPS 140-2 で検証された、あるいは検証中の FIPS HSM を使用して、キーのセキュリティを保護します。AWS KMS ですべてのキーを一元管理することにより、キーを使用できるユーザーとその条件、更新する時期、管理できるユーザーを設定できます。AWS KMS と CloudTrail との統合により、キーの使用状況の監査が可能になるため、規制およびコンプライアンスの対応をサポートできます。アプリケーションからの AWS KMS の操作は、サービス API を直接呼び出す場合は AWS SDK を用いて行い、クライアント側の暗号化を実行する場合は、AWS KMS と統合されている他の AWS のサービス経由か AWS Encryption SDK を用いて行います。
請求
Q: AWS KMS の利用料金の計算と請求はどのように行われるのですか?
AWS KMS については、お客様が使用した分に対してのみ料金が発生します。最低料金はありません。サービスの利用を開始するためのセットアップ料金や契約はありません。月末に、その月の使用料金が自動的にお客様のクレジットカードに請求されます。
作成したすべての KMS キー、および毎月のサービスに対して行われた API リクエストで無料利用枠を超過した分に対して請求されます。
料金の最新情報については、AWS KMS の料金ページを参照してください。
Q: 無料利用枠はありますか?
はい。AWS 無料利用枠を利用すれば、すべてのリージョンで AWS KMS の使用を無料*で開始できます。AWS のサービスによってお客様のために作成された AWS 管理の AWS KMS キーは、無料でお客様のアカウントに保存できます。使用に対しても無料利用枠があるため、毎月、無料で決められた数のリクエストをサービスに対して実行できます。無料利用枠を含む料金の最新情報については、AWS KMS の料金ページを参照してください。
*非対称 KMS キー含む API リクエスト、および GenerateDataKeyPair と GenerateDataKeyPairWithoutPlaintext API への API リクエストは無料利用枠に含まれません。
Q: 料金は税込み価格ですか?
別途記載がない限り、表示される料金には付加価値税、売上税など、一切の税金等および関税は含まれません。日本の居住者であるお客様が AWS サービスをご利用になった場合には、料金とあわせて別途消費税をご請求させていただきます。詳細については、こちらを参照してください。
CloudHSM の統合
Q: AWS KMS を CloudHSM に接続するにはどうすればよいですか?
AWS KMS カスタムキーストア機能は CloudHSM によって提供された制御機能を AWS KMS の一元化や使いやすさと結び付けます。独自の CloudHSM クラスターを設定し、デフォルトの AWS KMS キーストアというよりは、お使いのキーの専用キーストアとして使用することを AWS KMS に許可します。AWS KMS にキーを作成すると、CloudHSM クラスターでキーマテリアルを生成することを選択できます。カスタムキーストアで生成した KMS キーは、CloudHSM クラスターの HSM をプレーンテキストのままにして置くことは絶対になく、こうしたキーを使用する AWS KMS 操作はお使いの HSM のみで実行されます。他のあらゆる点において、カスタムキーストアに保存された KMS キーは、他の AWS KMS キーと一致します。
カスタムキーストアを使用するのが適切であるかどうかを判断するためのもう 1 つのガイダンスが、こちらのブログに記載されています。
Q: なぜ CloudHSM を使用する必要があるのでしょうか?
CloudHSM クラスターを管理しているため、AWS KMS とは無関係に KMS キーのライフサイクルを管理するオプションがあります。カスタムキーストアが便利であると言える理由は 4 つあります。まず、明らかにシングルテナントの HSM か直接管理する HSM で保護することが必要なキーがある場合があります。2 番目として、FIPS 140-2 レベル 3 全体が検証された HSM に保存することが必要なキーがある場合があります (標準の AWS KMS キーストアに使用される HSM は検証されているか、あるいは複数のカテゴリにおいてレベル 3 のうちレベル 2 に検証されています)。3 番目として、キーマテリアルを AWS KMS からすぐに削除し、自律的な方法でそれを証明できることが必要な場合があります。最後に、AWS KMS または CloudTrail とは無関係に、使用しているすべてのキーを監査できるという要件がある場合があります。
Q: CloudHSM は KMS のキーの管理方法をどのように変えるのでしょうか?
CloudHSM にバックアップされたカスタムキーストアのキーの管理を、デフォルト AWS KMS キーストアと比較すると、2 つの相違点があります。キーマテリアルをカスタムキーストアにインポートすることはできないので、AWS KMS に自動でキーを更新させることはできません。生成可能なキーの種類、キーでエイリアスを使用する方法、ポリシーの定義方法など、他のあらゆる点において、カスタムキーストアに保存されたキーは、他の AWS KMS カスタマー管理の KMS キーと同じ方法で管理されます。
Q: AWS 管理の KMS のキーを CloudHSM で保存できますか?
いいえ、CloudHSM にバックアップされた AWS KMS のカスタムキーストアに保存し、管理することができるのは、カスタマー管理の KMS キーのみです。データを暗号化するために AWS の他のサービスによって作成された AWS 管理の KMS キーは、常に AWS KMS のデフォルトのキーストアで生成され、保存されます。
Q: CloudHSM との統合は、KMS の暗号化 API の機能に影響を与えますか?
いいえ、AWS KMS に KMS キーを使用してデータの暗号化と復号化をするように要求する API は、同じように処理されます。認証と認可の処理は、キーが保存されている場所とは無関係に作動します。CloudHSM にバックアップされたカスタムキーストアでキーを使用するアクティビティはすべて、同じように CloudTrail にもログされます。ただし、実際の暗号化操作は、カスタムキーストアまたはデフォルトの AWS KMS キーストアのいずれか一方でのみ生じます。
Q: カスタムキーストアでのキーの使用を監査するにはどうすればよいですか?
AWS KMS が CloudTrail にログするアクティビティに加えて、カスタムキーストアの使用には、3 種類以上の監査メカニズムがあります。まず、CloudHSM はクラスターの作成や HSM の追加および削除など、すべての API アクティビティも CloudTrail にログを記録しています。第 2 に、各クラスターもまた、ユーザーとキー管理アクティビティを記録するために、独自のローカルログを残します。第 3 に、CloudHSM インスタンスは、ローカルユーザーとキー管理アクティビティログを AWS CloudWatch にコピーします。
Q: CloudHSM を使用することで、キーの可用性にどのような影響があるのでしょうか?
AWS KMS カスタムキーストアを使用すると、キーを AWS KMS で使用できるかどうかを検証する責任はお客様が負うことになります。CloudHSM の設定でエラーになったり、CloudHSM クラスター内のキーマテリアルを削除したりすると、可用性に影響が出る場合があります。使用する HSM の数とアベイラビリティーゾーン (AZ) の選択も、クラスターの復旧に影響します。どんなキー管理システムの場合でも、キーの利用可能性がどのように、暗号化されたデータのリカバリーに影響する可能性があるかを把握するのは重要です。
Q: CloudHSM に関係がある性能の制限はなんでしょう?
AWS KMS API コール経由で使用できる CloudHSM にバックアップされた AWS KMS カスタムキーストアにキーが保存される比率は、デフォルトの AWS KMS キーストアにキーが保存される比率よりも低くなります。現在の性能の制限については、AWS KMS デベロッパーガイドを参照してください。
Q: CloudHSM にバックアップされたカスタムキーストアの使用に関連するコストは何ですか?
AWS KMS の料金にはカスタムキーストアの使用による影響はありません。ただし、各カスタムキーストアを使用するには、AWS CloudHSM クラスターに少なくとも 2 つの HSM が必要となります。こうした HSM は、標準の AWS CloudHSM 料金を請求されます。カスタムキーストアの使用に追加料金はかかりません。
Q: CloudHSM の設定をするのに、どんなスキルとリソースが追加で必要となりますか?
カスタムキーストアを使用したい AWS KMS ユーザーは、AWS CloudHSM クラスターを設定し、HSM を追加し、HSM ユーザーを管理する必要があり、バックアップから HSM のリストアを行う場合もあります。これらはセキュリティ性の高い作業なので、適切なリソースと組織的コントロールがすべて整っていることを確認することができます。
Q: カスタムキーストアにキーをインポートすることはできますか?
いいえ、独自のキーマテリアルを AWS KMS カスタムキーストアにインポートする機能はサポートされていません。カスタムキーストアに保存されたキーは、お使いの CloudHSM クラスターを形成する HSM でのみ生成できます。
Q: デフォルトの AWS KMS キーストアとカスタムキーストアの間でキーを移動できますか?
いいえ、種類の違う AWS KMS キーストアの間でキーを移動する機能は、現在サポートされていません。独自のキーマテリアルをデフォルトの AWS KMS キーストアにインポートする場合を除いて、キーはすべて使用するキーストアで作成する必要があります。
Q: カスタムキーストアに保存されたキーを更新できますか?
AWS KMS カスタムキーストアのキーマテリアルを自動的に更新する機能はサポートされていません。キーの更新は、新しいキーを作成し、将来の暗号化操作でその新しいキーを使用するために、アプリケーションコードで使用される AWS KMS キーエイリアスを再マッピングすることで、手動で実施する必要があります。
Q: CloudHSM クラスターを他のアプリケーションに使用できますか?
はい、AWS KMS だけで CloudHSM クラスターを独占的に利用する必要はありません。既にクラスターを所有している場合は、カスタムキーストアとして使用しながら、他のアプリケーションでもそのクラスターを継続して使用できます。ただし、お使いのクラスターが AWS KMS 以外に大きなワークロードをサポートしている場合、カスタムキーストアで KMS キーを使用する操作を行う際にスループットの低下が発生する可能性があります。同様に、カスタムキーストアへの AWS KMS リクエストの比率が高いと、他のアプリケーションに影響が出る可能性があります。
Q: AWS CloudHSM の詳細を知るにはどのようにすればよいですか?
サービスの概要については、AWS CloudHSM ウェブサイトをアクセスしてください。サービスの設定と使用の詳細については、AWS CloudHSM ユーザーガイドを参照してください。
外部キーストア
Q: 外部キーストア (XKS) とは何ですか?
外部キーストアとは、お客様が所有し、AWS の外部で管理する外部キー管理インフラストラクチャに支えられたカスタムキーストアです。外部キーストア内の KMS キーを使用するすべての暗号化または復号化操作は、お客様の管理下にある暗号キーと操作でお客様のキーマネージャーで実行され、AWS に物理的にアクセスできません。
Q: なぜ外部キーストアを使用するのですか?
XKS は、お客様の管理下にある AWS の外部で暗号キーを保管および使用する必要がある規則や規制への準拠に役立ちます。
Q: AWS KMS はどのように私の外部キーマネージャに接続するのですか?
お客様に代わって統合されたAWSサービスやお客様独自のアプリケーションから AWS KMS へのリクエストは、お客様のネットワーク内の XKS Proxy と呼ばれるコンポーネントに転送されます。XKS Proxy はオープンソースの API 仕様で、お客様とキー管理ベンダーが、これらのリクエストを受け付け、キー管理インフラストラクチャに転送し、そのキーを使用して暗号化および復号化を行うサービスを構築するのに役立ちます。
Q: XKS Proxy 仕様をサポートしている外部ベンダーは?
Thales、Entrust、Salesforce、T-Systems、Atos、Fortanix、HashiCorpが、XKS Proxy 仕様と統合するソリューションの開発に着手しています。これらのベンダーのソリューションの利用可能性、料金、使用方法については、それぞれのドキュメントを参照してください。キー管理インフラストラクチャのパートナーとともに、オープンソースの XKS Proxy 仕様を活用し、ニーズに合ったソリューションを構築することをお勧めします。XKS Proxy の API 仕様は、こちらで公開されています。
Q: どの AWS KMS 機能が外部キーをサポートしていますか?
外部キーは、以下の対称暗号化操作をサポートしています。Encrypt、ReEncrypt、Decrypt、GenerateDataKey。
Q: データ暗号化のために AWS KMS と統合している AWS サービスで、XKS はどのように動作しますか?
XKS のキーは、カスタマー管理のキーを使用して、AWS KMS と統合するすべての AWS サービス内のデータを暗号化するために使用することができます。サポートの対象になっているサービスのリストについてはこちらをご覧ください。AWS サービスは AWS KMS GenerateDataKey API を呼び出し、お客様のデータを暗号化するための一意の平文データキーを要求します。平文のデータキーは、暗号化されたデータと一緒に保存されるデータキーの暗号化されたコピーと一緒にサービスに返されます。データキーの暗号化されたコピーを作成するために、まず平文データキーは、お客様の AWS アカウントに固有の AWS KMS に保存されているキーで暗号化されます。この暗号化されたデータキーは、外部キーマネージャに接続された XKS Proxy 実装に転送され、外部キーマネージャで定義したキーの下で 2 回目の暗号化が行われます。生成された二重暗号化されたデータキーは、GenerateDataKey API リクエストのレスポンスとして返されます。
Q: 二重暗号化とはどのようなもので、どのように機能するのですか?
AWS KMS、XKS Proxy 実装、外部キーマネージャ間のネットワーク接続は、TLS のようなポイントツーポイントの暗号化プロトコルで保護されている必要があります。しかし、AWS KMS から外部キーマネージャに届くまでのデータを保護するために、AWS KMS はまず外部キーストアで定義された各 KMS キーに特化したあなたのアカウントで内部管理された KMS キーで暗号化します。その結果、暗号文は外部キーマネージャに転送され、外部キーマネージャのキーを使用して暗号化されます。二重暗号化により、外部キーマネージャーのキーマテリアルを使用しない限り、暗号文は決して復号化されないというセキュリティコントロールが得られます。また、AWS ネットワークから出る暗号文は、FIPS 140 認証を受けた AWS KMS HSM を使用して暗号化されているというセキュリティ制御も提供します。外部キーマネージャーはデータを復号するために使用する必要があるため、AWS KMS へのアクセスを無効にすると、基盤となる暗号化されたデータにはアクセスできなくなります。
Q: クライアント側の暗号化を実装した独自のアプリケーションで XKS キーを使用できますか?
はい。AWS KMS をキープロバイダーとして使用するクライアント側の対称暗号化ソリューションを使用する場合、XKS キーは独自のアプリケーション内から使用することも可能です。AWS Encryption SDK、S3 Encryption Client、DynamoDB Encryption Client などの AWS オープンソースのクライアント側の暗号化ソリューションが XKS キーをサポートしています。
Q: 私はすでに標準の KMS キー、インポートされた KMS キー、または私の CloudHSM クラスターに保存されたキーで AWS KMS を使用してきました。これらの KMS キーを XKS に移行したり、XKS キーの下で暗号化された既存のキーを再暗号化することは可能ですか?
すべての XKS キーは、KMS で新しいキーとして作成する必要があります。既存の KMS キーを外部キーマネージャーでホストされている XKS キーに移行することはできません。
AWS サービスまたはお客様自身のアプリケーションがそのアクションをサポートしていると仮定すれば、新しく生成された XKS キーの下で既存のデータを再暗号化することができます。多くの AWS サービスは、暗号化されたリソースをコピーし、そのコピーを暗号化するために使用する新しい KMS キーを指定するのに役立ちます。AWS サービスが提供する COPY コマンドで、XKS キーを設定することができます。KMS ReEncrypt API を呼び出して XKS キーを設定することで、クライアント側の暗号化データを独自のアプリケーションで再暗号化することができます。
Q: XKS は KMS でどのように料金設定されますか?
他のカスタマーマネージャーキーと同様に、XKS キーは削除されるまで 1 キーあたり月額 1 USD で販売されます。XKS キーの下でのリクエストは、他の AWS KMS 対称キーと同じレートで課金されます。料金についての詳細は、AWS KMS の料金ページをご覧ください。
Q: XKS キーで自動キーローテーションは可能ですか?
いいえ。AWS KMS が提供する自動キーローテーションは、XKS キーではサポートされていません。これは、AWS KMS がお客様に代わって新しいキーマテリアルを生成できないためです。お客様は、すべてのキー生成と保管を行う外部のキーマネージャを管理しているからです。AWS KMS で XKS キーをローテーションさせるには、外部キーマネージャで真新しい XKS キーを作成し、そのキーを AWS KMS を使用して作成した新しい KMS キーに設定する必要があります。その後、AWS サービスまたはクライアント側の暗号化アプリケーションを設定して、今後の暗号化操作に新しい XKS キーを使用することができます。以前の暗号文の作成に使用された以前の XKS キーが AWS KMS でまだ有効で、外部キーマネージャで利用可能である限り、それらの XKS キーで正常に Decrypt API リクエストを行うことができます。
Q: 外部キーストアでキーを無効化、ブロック、削除した場合、私のデータはクラウドのどこにアクセスできるようになりますか?
キーをキャッシュしないサービスの場合、この XKS KMS キーを使用した次の API コールは失敗します。サービスによっては、パフォーマンス、レイテンシー、KMS コスト管理のために、データキーのキャッシュやその他のキー導出スキームを実装しているものがあります。これらのキーのキャッシュは、5 分から 24 時間までさまざまです。現在使用中の保護されたリソース (RDS データベースや EC2 インスタンスなど) は、キーへのアクセスを拒否した後、異なる反応を示します。詳細については、関連する AWS サービスのドキュメントを参照してください。
Q: AWS KMS から外部キーマネージャーへの XKS プロキシリクエストを認証するにはどうしたらいいですか?
外部キーストアプロキシへの認証を行うために、AWS KMS はプロキシ上で設定し KMS に提供する AWS SigV4 認証情報を使用してプロキシへのすべてのリクエストに署名します。AWS KMS は、サーバーサイドの TLS 証明書を使用して外部キーストアプロキシーを認証します。オプションとして、プロキシは相互 TLS を有効にし、AWS KMS からのリクエストのみを受け入れることをさらに保証することができます。
Q: XKS キーのために、どのような種類の認証ポリシーを構築できますか?
IAM ポリシー、AWS KMS キーポリシー、グラントなど、他の KMS キーで使用する通常の AWS KMS 認証メカニズムはすべて、外部キーストア内の KMS キーでも同じように機能します。
さらに、AWS KMS から XKS Proxy に送信される各リクエストに含まれるリクエストメタデータに基づく認可制御の二次レイヤーを実装する機能が、お客様やお客様の外部キーマネージャのパートナーにあります。このメタデータには、呼び出した AWS ユーザー/ロール、KMS キー ARN、リクエストされた特定の KMS API が含まれています。これにより、AWS KMS からのリクエストを単純に信頼するだけでなく、外部キーマネージャでキーを使用する際にきめ細かい認証ポリシーを適用することができます。これらのリクエスト属性を用いたポリシー適用の選択は、個々の XKS Proxy の実装に委ねられています。
Q: XKS でのログ記録と監査はどのように機能しますか?
XKS キーを含む AWS KMS に受信するすべてのリクエストに対して生成された一意の ID は、XKS プロキシにも転送されます。XKS プロキシまたは外部キーマネージャからのログデータ (利用可能な場合) を使用して、AWS KMS へのリクエストと外部キーマネージャに行われたリクエストを照合することができます。この機能により、外部キーマネージャのキーを使用するすべてのリクエストが、直接または統合された AWS サービスを通じて AWS KMS に開始した呼び出しから発生したことを確認することができます。
Q: AWS KMS で生成、保存された標準的な KMS キーを使用する代わりに XKS を選択した場合、どのようなリスクを受け入れることになりますか?
可用性のリスク:
XKS Proxy と外部キーマテリアルの可用性については、お客様の責任となります。このシステムは、暗号化されたリソースを復号化したり新しいデータを暗号化するためにXKSキーが必要なときはいつでも、AWS KMS が XKS プロキシに正常に接続でき、それ自体がキーを使用して必要な暗号操作を完了するためにお客様の外部キーマネージャに接続できることを検証するため、高い可用性を有していなければなりません。例えば、XKS キーを使って EBS ボリュームを暗号化し、EC2 インスタンスを起動してその暗号化ボリュームをアタッチしたいとします。EC2 サービスは、そのボリュームに固有の暗号化されたデータキーを AWS KMS に渡して復号化し、そのボリュームに対する読み取り/書き込み操作を復号化して暗号化するために、Nitro Card の揮発性メモリにプロビジョニングすることができるようにします。XKS Proxy や外部キーマネージャーがボリュームキーの復号化に利用できない場合、EC2 インスタンスは起動に失敗します。このようなタイプの失敗の場合、AWS KMS は XKS Proxy が利用できないことを示す KMSInvalidStateException を返します。KMS から提供されるエラーメッセージに基づいて、XKS Proxy とキーマネージャーを利用できない理由を判断するのは、お客様次第です。
耐久性リスク: キーは AWS 外のシステムで管理されるため、作成したすべての外部キーの耐久性については、お客様が単独で責任を負うことになります。XKS キーの外部キーが永久に失われたり削除された場合、XKS キーの下で暗号化されたすべての暗号文は回復不可能です。
パフォーマンスリスク: お客様は、XKS Proxy および外部キーストアインフラストラクチャが、利用者のニーズを満たすのに十分なパフォーマンス特性を持つように設計されていることを確認する責任があります。XKS キーを使用するすべてのリクエストは外部キーストアへの接続を必要とするため、AWS KMS からのリクエスト率が XKS Proxy または外部キーマネージャがサポートできるリクエスト率を超えると、XKS プロキシがボトルネックとなる可能性があります。また、AWS KMS から XKS Proxy への 1 回のリクエスト (1 回の再試行を含む) の経過時間が 500 ミリ秒* を超える場合、AWS KMS は呼び出し元のクライアントに 400 エラーを返し、XKS キーが利用できないため呼び出し元のクライアントは再試行しないよう効果的に伝えます。この動作は、インフラストラクチャへの接続性の問題によって引き起こされる散発的な過度のレイテンシーに対応しなければならない上流の AWS サービスまたはお客様自身のアプリケーションのリスクを最小限に抑えるために設計されています。
*AWS KMS は、250 ミリ秒かかるリクエストに対して 1 回の再試行を試みます。再試行のリクエストも 250 ミリ秒以上かかる場合、400 エラーが呼び出し側のクライアントに返されます。
Q: 外部キーストアを使用した場合の Service Level Availability (SLA) の影響は?
AWS は、AWS KMS とお客様の外部キーストアインフラストラクチャ間の接続のエンドツーエンドの可用性を制御できないため、私たちは特に XKS の使用をパブリック KMS 可用性 SLA で除外しています。また、XKS キーは、XKS キーがサービス内のデータを暗号化するため、お客様によって設定されるすべての AWS サービスの可用性 SLA に除外されています。