全般

AWS Key Management Service (KMS) とは何ですか?
AWS KMS は、データ暗号化の手間を軽減する管理型の暗号化サービスです。AWS KMS では、可用性の高いキーの保存、管理、監査ソリューションを提供し、AWS のサービス全体で、また独自のアプリケーション内でのデータの暗号化を可能にします。

なぜ AWS KMS を使用するのですか?
アプリケーション内のデータを暗号化する必要がある開発者は、AWS KMS のサポートを利用して AWS SDK を使用することをお勧めします。これにより、暗号化キーを簡単に使用および保護できます。開発者と増え続けるアプリケーションをサポートするためにスケーラブルなキー管理インフラストラクチャを必要としている IT 管理者は、AWS KMS を使用してライセンスコストと運用の負担を軽減できます。規制またはコンプライアンスに合わせてデータセキュリティを証明する必要があるお客様は、AWS KMS を使用して、データが使用および保存されているアプリケーション全体で一貫して暗号化されていることを確認できます。

AWS KMS の使用を開始するにはどのようにすればよいのですか?
AWS KMS の使用を開始する最も簡単な方法は、サポートされている AWS サービス内のデータを暗号化するチェックボックスを選択し、各サービスのアカウント内に作成されるデフォルトキーを使用することです。これらのキーをさらに厳密に管理する場合は AWS KMS でキーを作成し、サポートされている AWS サービスで暗号化リソースを作成するときに使用するために割り当てたり、独自のアプリケーションに直接使用したりできます。AWS KMS は、ウェブベースの場合は AWS Identity and Access Management (IAM) コンソールの [Encryption Keys] セクションから、プログラムの場合は AWS KMS コマンドラインインターフェイスまたは AWS Software Development Kit からアクセスできます。詳細は、開始方法のページをご覧ください。

KMS はどのリージョンで利用できますか?
利用可能なリージョンの一覧は、世界中を網羅した製品およびサービス一覧 (リージョン別) ページでご覧いただけます。

AWS KMS ではどんなキー管理機能が利用できますか?
AWS KMS では以下のキー管理機能を実行できます。

  • 単一のエイリアスおよび説明を付けたキーを作成する
  • 独自のキーをインポートする
  • どの IAM ユーザーおよびロールがキーを管理できるか定義する
  • どの IAM ユーザーおよびロールがキーを使用してデータを暗号化および復号化できるか定義する
  • AWS KMS が 1 年ごとに自動でキーを更新するように設定する
  • 誰にもキーが使用されないように、一時的に無効にする
  • 無効にしたキーを再度有効にする
  • 使用しなくなったキーを削除する
  • AWS CloudTrail でログを調査してキーの使用を監査する

AWS KMS はどのように機能しますか?
AWS KMS を使用すれば、キーの一元管理および安全な保存が可能です。AWS KMS でキーを生成すること、またはキー管理インフラストラクチャからインポートすることが可能です。これらのキーは独自のアプリケーション内でまたはサポートされている AWS のサービスから使用してデータを保護できますが、キーが AWS KMS 外へ送信されることはありません。管理しているキーで暗号化または復号化するように、データを AWS KMS に送信します。どのユーザーがキーを使用してデータを暗号化および復号化できるかを定義する使用ポリシーをキーに設定できます。キーの使用リクエストはすべて AWS CloudTrail に記録されるため、誰が、いつ、どのキーを使用したかを把握できます。

AWS KMS を使用した場合、データはどこで暗号化されるのですか?
AWS KMS を使用して独自のアプリケーションでローカルに暗号化することも、サポートされている AWS のサービスで暗号化することもできます。AWS KMS のサポートを利用して AWS SDK を使用することで、アプリケーションが実行されている場所を問わず暗号化できます。また、サポートされている AWS のサービスにリクエストして、保存されている場所でデータを暗号化できます。AWS CloudTrail は、それぞれの状況でキーがどのように使用されているかを監査できるようにログにアクセスできます。

Q: どの AWS クラウドサービスが AWS KMS と統合されていますか?
AWS KMS は AWS の他のいくつかのサービスとシームレスに統合されており、それらのサービスでは簡単にデータを暗号化できます。お客様は、チェックボックスをオンにして、使用するマスターキーを選択するだけです。現在 AWS KMS と統合されている AWS のサービスのリストについては、特徴ページをご覧ください。統合されているサービス内で使用したキーはすべて AWS CloudTrail ログに出力されます。統合されているサービスで AWS KMS が使用される方法の詳細については、「AWS KMS 開発者ガイド」を参照してください。

Q: AWS クラウドサービスでは、データを暗号化するためにキーがどのように使用されますか?
AWS KMS と統合されている AWS クラウドサービスは、データを保護するためにエンベロープ暗号化と呼ばれる方法を使用します。エンベロープ暗号化は、2 つの異なるキーを使用したデータの暗号化に最適化された方法です。データキーが生成され、AWS サービスはそれを使用して、データまたはリソースの各要素を暗号化します。データキーは AWS KMS でお客様が定義したマスターキーによって暗号化されます。暗号化されたデータキーは AWS のサービスに保存されます。AWS のサービスによってデータを復号する必要がある場合、暗号化されたデータキーは AWS KMS に渡され、データキーを暗号化したマスターキーで復号されます。これにより、サービスはデータを復号できるようになります。

Q: なぜ AWS KMS に直接データを送信して暗号化するのではなく、 エンベロープ暗号化を使用するのですか?
AWS KMS は 4 KB 未満のデータ送信をサポートしていますが、エンベロープ暗号化にはパフォーマンス面で多大なメリットがあります。AWS KMS で直接データを暗号化する場合、データをネットワーク経由で送信する必要があります。エンベロープ暗号化では、アプリケーションまたは AWS クラウドサービスのネットワーク負荷を軽減できます。ネットワークを経由する必要があるのは、AWS KMS を使用したデータキーのリクエストおよび受理のみです。データキーは常に暗号化されたフォームで保存されるため公開される心配がなく、必要な場所に安全かつ簡単に配信できます。暗号化されたデータキーは AWS KMS に送られ、マスターキーで復号されます。これにより、データの解読が可能になります。データキーはアプリケーション内で直接使用できるため、データブロック全体を AWS KMS に送信する必要がなく、ネットワークレイテンシーも発生しません。

自分で作成するキーと、AWS クラウドサービスで使用するために作成されるデフォルトのマスターキーの違いは何ですか?
AWS のサービスがお客様に代わってデータを暗号化する場合に、お客様は使用する特定のマスターキーを選択できます。初めて暗号化リソースを作成する際に、各サービスに向けたデフォルトマスターキーがアカウント内に参考用として作成されます。キーは AWS KMS によって管理されますが、AWS CloudTrail でいつでも使用状況を監査できます。また、独自のアプリケーションで、またはサポートされている AWS のサービスから使用できるお客様専用のマスターキーも AWS KMS で作成できます。AWS は必要に応じてデフォルトマスターキーのポリシーをアップデートし、サポートされているサービスの新機能を自動的に有効にします。AWS は、お客様が作成したキーのポリシーは変更しません。

なぜ専用のマスターキーを作成するべきなのですか?
AWS KMS でキーを作成すると、デフォルトのサービスマスターキーを使用するよりさらに厳重な管理ができます。お客様のマスターキーを作成する際は、お客様に代わって AWS KMS により生成されたキーマテリアルを使用するか、またはAWS KMS により生成されたキーマテリアルがベースとなっている場合は、独自のキーマテリアルをインポートし、エイリアスと説明を定義し、キーが 1 年に 1 回自動的にローテーションされるように設定するかを選択できます。また、権限を設定してキーを使用および管理できるユーザーを制限できます。キーに関する管理および使用の状況は AWS CloudTrail で監査できます。

Q: AWS KMS にキーをインポートすることはできますか?
はい。独自のキー管理インフラストラクチャから AWS KMS にキーのコピーをインポートして、統合された AWS のサービスで、または独自のアプリケーションでそれを使用できます。

Q: インポートされたキーはどのような場合に使用するのですか?
インポートされたキーを使用して、AWS KMS におけるキーの作成、ライフサイクル管理、および耐久性をより確実にコントロールできます。インポートされたキーは、コンプライアンス要件を満たすように設計されています。これには、インフラストラクチャのキーの安全なコピーを生成および維持する機能、および不要になった際に、AWS インフラストラクチャからオンデマンドでキーのインポートのコピーを削除する機能が含まれます。

Q: どのようなキーの種類をインポートできますか?
256 ビットの対称キーをインポートできます。

Q: AWS KMS にインポートされるキーは転送中に保護されていますか?
インポートするキーは、2 つの RSA PKCS#1 スキームのいずれかを使用して、AWS KMS が提供するパブリックキーで覆う必要があります。こうすれば、暗号化キーは AWS KMS 以外では復号できなくなります。

Q: 自身がインポートしたキーと AWS KMS により生成されたキーはどう違うのですか?
自身がインポートしたキーと AWS KMS により生成されたキーには主に 2 つの違いがあります。

  1. KMS にキーをインポートする場合は、随時それを再インポートできるように、キーのコピーを安全にキー管理インフラストラクチャに維持する必要があります。AWS KMS により生成したキーの場合は、ユーザーがそのキーの削除を予定に入れるまで、AWS によりキーの可用性、セキュリティ、および耐久性が保証されます。
  2. インポートされたキーの有効期限を設定できます。そうすれば、有効期限が切れ次第、キーが AWS KMS から自動的に削除されます。また、基礎となるお客様のマスターキーを削除せずに、オンデマンドでインポートされたキーを削除することもできます。さらに、お客様のマスターキーとインポートされたキーを随時手動で無効化または削除することも可能です。AWS KMS により生成されたキーは、無効化または削除を予定することしかできません。このキーには、有効期限を設定することもできません。

Q: キーをローテーションできますか?
はい。AWS KMS により生成されたキーを毎年自動的にローテーションするように設定できます。インポートされたキーには、キーの自動ローテーションを設定することはできません。AWS KMS にキーをインポートした場合は、随時手動でローテーションできます。

Q: AWS KMS のキーがローテーションされたあと、再度暗号化する必要がありますか?
AWS KMS により生成されたキーを自動的にローテーションすることを選択した場合は、データを再暗号化する必要はありません。AWS KMS は過去のバージョンのキーを保管して、そのキーで暗号化されたデータを解読できるようにします。AWS KMS のキーに対する新しい暗号化リクエストは、すべて最新バージョンのキーで実行されます。

手動でキーをローテーションする場合は、アプリケーションの設定に応じて、データを再暗号化する必要があります。

Q: AWS KMS のキーを削除できますか?
はい。AWS KMS で作成したお客様のマスターキーと関連するメタデータは削除を予定できます。削除までの待機期間は 7 ~ 30 日の間に設定できます。この待機期間中に、キーを削除することによって、そのキーを使用しているアプリケーションとユーザーが受ける影響を確認できます。デフォルトの待機期間は 30 日です。待機期間中に削除をキャンセルすることもできます。削除を予定したキーを使用することはできません。ただし、待機期間中に削除をキャンセルした場合はその限りではありません。キーは、削除をキャンセルしない限り、待機期間 (設定可能) の最後に削除されます。削除されたキーは使用できなくなります。削除されたマスターキーで保護されているデータはすべてアクセスできなくなります。

お客様のマスターキーがインポートされたキーマテリアルの場合は、2 つの方法でお客様のマスターキー ID とメタデータを削除せずにキーマテリアルを削除できます。1 つは、待機期間なしで、オンデマンドでインポートされたキーマテリアルを削除する方法です。2 つ目は、お客様のマスターキーにキーマテリアルをインポートする際に、AWS でインポートされたキーマテリアルを使用できる有効期限を定義する方法です。再度使用する必要が発生した場合は、キーマテリアルをお客様のマスターキーに再インポートできます。

Q: インポートされたキーマテリアルの有効期限が切れた場合、または誤って削除した場合はどうすればよいですか?
元のお客様のマスターキーを使って、有効な有効期限が付いたキーマテリアルのコピーを AWS KMS に再インポートできます。そうすれば、再び使用できるようになります。

Q: キーを再インポートする必要性が発生した場合は、アラートが発せられますか?
はい。キーを一旦お客様のマスターキーにインポートすると、インポートされたキーの有効期限までの時間を知らせる Amazon CloudWatch メトリクスが数分ごとに届きます。また、お客様のマスターキーにインポートされたキーの有効期限が切れると、Amazon CloudWatch イベントが送信されます。可用性のリスクを回避するために、こうしたメトリクスとイベントに基づいて動作し、新しい有効期間で自動的にキーを再インポートするロジックを構築できます。

Q: AWS KMS を使用して、AWS クラウドサービス以外のデータ暗号化を管理できますか?
はい。AWS KMS は AWS SDK、AWS Encryption SDK、および Amazon S3 Encryption Client でサポートされており、実行されている場所を問わずお客様のアプリケーションのデータ暗号化を可能にします。Java、Ruby、.NET、PHP プラットフォームの AWS SDK では、AWS KMS API がサポートされています。詳しくは、「Developing on AWS」のウェブサイトをご覧ください。

Q: AWS KMS で作成できるキーの数に上限はありますか?
各リージョンのアカウントごとに最大 1,000 個のお客様のマスターキーを作成していただけます。有効および無効にされているお客様のマスターキーの合計数が上限に近づいたら、無効にされ使用しなくなったキーを削除することをお勧めします。AWS サービスで使用するためにお客様に代わって作成されるデフォルトマスターキーはこの数に含まれません。マスターキーで作成され、アプリケーションまたは AWS サービスでお客様に代わってデータを暗号化するデータキーの数に上限はありません。AWS サポートセンターで、お客様マスターキーの上限を引き上げるリクエストができます。

請求

Q: AWS KMS の利用料金の計算と請求はどのように行われるのですか?
AWS KMS については、お客様が使用した分に対してのみ料金が発生します。最低料金はありません。サービスの利用を開始するためのセットアップ料金や契約はありません。月末に、その月の使用料金が自動的にお客様のクレジットカードに請求されます。

作成したお客様のマスターキーすべて、および毎月のサービスに対して行われた API リクエストで無料利用枠を超過した分を請求できます。

価格情報については、AWS KMS の料金ページをご覧ください。

Q: 無料利用枠はありますか?
はい。AWS の無料利用枠を利用すれば、すべてのリージョンで AWS KMS の使用を無料で開始できます。お客様に代わって作成されるデフォルトマスターキーはアカウント内に無料で保存できます。使用に対しても無料利用枠があり、毎月無料で決められた数のリクエストを AWS KMS に発信できます。無料利用枠も含め、現在の料金情報は、AWS KMS の料金ページをご覧ください。

Q: 料金は税込み価格ですか?
別途記載がない限り、表示される料金に VAT、売上税を含む税金等および関税は一切含まれません。日本の居住者であるお客様が AWS サービスをご利用になった場合には、料金とあわせて別途消費税をご請求させていただきます。詳細については、こちらを参照してください。

セキュリティ

Q: AWS KMS では誰がキーを使用および管理できますか?
AWS KMS はお客様が定義した使用および管理ポリシーを実行します。お客様のアカウントまたは別のアカウントの AWS Identity and Access Management (IAM) のユーザーおよびロールに対してキーの使用および管理を許可できます。

Q: AWS は AWS KMS 内で作成したマスターキーのセキュリティをどのように確保するのですか?
AWS KMS は、誰も、AWS の従業員でさえサービスからプレーンテキストのキーを取得できないように設計されています。このサービスは FIPS 140-2 で検証されたハードウェアセキュリティモジュール (HSM) を使用して、ユーザーが自身に代わって AWS KMS が作成するようにリクエストしたキーでも、ユーザーがサービスにインポートしたキーでも、その機密性と整合性を保護します。ユーザーのプレーンテキストキーがディスクに書き込まれることはなく、ユーザーがリクエストする暗号化操作の実行に必要な時間に HSM の揮発性メモリでのみ使用されます。AWS KMS のキーは、作成された AWS リージョンから移動されることはありません。サービスホストのソフトウェアと AWS KMS HSM ファームウェアへのアップデートは、アマゾン内の独立したグループによる監査と確認がなされたマルチパーティーアクセスコントロールでコントロールされています。

セキュリティ管理に関する詳細は、「AWS KMS Cryptographic Details whitepaper」をご覧ください。AWS KMS HSM に対する FIPS 140-2 証明書は、関連するセキュリティポリシーと共に確認して、AWS KMS HSM がどのようにして FIPS 140-2 のセキュリティ要件を満たしているかの詳細を確認できます。さらに、AWS アーティファクトから Service Organization Controls (SOC) レポートのコピーをダウンロードすることで、AWS 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: AWS KMS HSM に対する FIPS 140-2 での検証には何が含まれていますか?
この検証に関する詳細は AWS KMS HSM に対する FIPS 140-2 証明書に、関連するセキュリティポリシーと共にあります。

Q: FIPS 140-2 で検証されたエンドポイントと、AWS KMS 内の FIPS 140-2 で検証された HSMとの違いは何ですか?
AWS KMS は 2 階層のサービスです。API エンドポイントは、完全な前方秘匿性をサポートする TLS 暗号スイートのみを用いた HTTPS 接続上でのクライアントリクエストを受け取ります。これらの API エンドポイントは、リクエストを AWS KMS HSM に暗号化操作のために送る前に、これを認証、承認します。

Q: AWS KMS への API リクエストを、FIPS 140-2 で検証されたエンドポイントを用いて行うにはどうすればいいですか?
お使いのアプリケーションを、リージョンのユニークな FIPS 140-2 で検証された HTTPS エンドポイントに接続するように設定します。AWS KMS FIPS 140-2 で検証された HTTPS エンドポイントは OpenSSL FIPS オブジェクトモジュールを用いています。OpenSSL モジュールのセキュリティポリシーは次で確認できます: https://www.openssl.org/docs/fips/SecurityPolicy-2.0.13.pdf。FIPS 140-2 で検証された API エンドポイントは、AWS KMS の提供されているすべての商用リージョンでご利用いただけます。

Q: AWS KMSを使用して Payment Card Industry Data Security Standard (PCI DSS 3.1) に定められた暗号化とキー管理の要件に準拠することは可能ですか?
はい。AWS KMS は、暗号化とキー管理要件 (主に PCI DSS 3.1 のセクション 3.5 と 3.6 で言及されている) を満たすのに役立つ機能とセキュリティ管理を有していると検証されています。

AWS の PCI DSS 準拠サービスの詳細については、PCI DSS のよくある質問を参照してください。

Q: AWS KMS は、エクスポートしてアプリケーションで使用するデータキーをどのように保護するのですか?
お客様に返却してアプリケーションで使用できるデータキーを AWS KMS が生成するようにリクエストできます。データキーはお客様が AWS KMS で定義したマスターキーによって暗号化されます。そのため、暗号化されたデータキーは暗号化されたデータと合わせて安全に保存できます。暗号化されたデータキー (およびソースデータ) は、データキーの暗号化に使用されたオリジナルのマスターキーの使用許可を与えられたユーザーのみが解読できます。

Q: AWS KMS が生成するキーの長さはどのくらいですか?
AWS KMS のマスターキーの長さは 256 ビットです。データキーは 128 ビットまたは 256 ビットの長さで、お客様が定義したマスターキーで暗号化されます。また AWS KMS を使用すれば、暗号化に適したランダムデータをお客様が定義した長さで生成できます。

Q: AWS KMS からマスターキーをエクスポートして独自のアプリケーションで使用できますか?
いいえ。マスターキーは AWS KMS でのみ作成および使用することにより、セキュリティを固め、ポリシーを一貫して適用し、一元化した使用状況のログを作成できます。

Q: どの地理的リージョンにキーが保存されますか?
キーは作成されたリージョンでのみ保存および使用されます。他のリージョンに移動することはできません。たとえば、欧州中央 (フランクフルト) リージョンで作成されたキーは欧州中央 (フランクフルト) でのみ保存および使用できます。

Q: AWS KMS でキーを使用または設定変更したユーザーをどのように確認できますか?
AWS CloudTrail のログは、管理リクエスト (作成、更新、無効化、ポリシーの編集など) および暗号化リクエスト (暗号化または解読) など、マスターキーに対するリクエストを表示します。アカウントで AWS CloudTrail を有効にすればこのログを確認できます。

Q: AWS KMS と AWS CloudHSM にはどのような違いがありますか?
AWS CloudHSM では、Amazon Virtual Private Cloud (VPC) でのキーの保存と使用のために、FIPS 140-2 レベル 3 検証済みシングルテナント HSM クラスターを利用できます。ユーザーは、AWS とは独立した認証メカニズムで、ユーザーのキーがどのように使われるかについて自分だけのコントロールができます。ユーザーは、Amazon EC2 で実行するアプリケーションを操作するのと同様のやり方で、ユーザーの AWS CloudHSM クラスター内のキーを操作します。AWS CloudHSM を使用して様々なユースケースをサポートでき、これには Digital Rights Management (DRM)、パブリックキーインフラストラクチャー (PKI)、ドキュメントへの署名、また PKCS#11、Java JCE、またはMicrosoft CNG インターフェイスを用いた暗号化機能などを含みます。

AWS KMS では、アプリケーションおよびサポートされている AWS サービスが世界中の複数のリージョンで使用する暗号化キーを単一のコンソールから作成、制御できます。これらのサービスは FIPS 140-2 で検証された HSM を用いて、キーのセキュリティを保護します。AWS KMS ですべてのキーを一元管理することにより、キーを使用できるユーザーとその条件、更新する時期、管理できるユーザーを設定できます。AWS KMS は AWS CloudTrail との統合により、キーの使用状況の監視を可能にし、規制およびコンプライアンスを満たすために役立ちます。アプリケーションからの AWS KMS の操作は、直接サービス API を呼び出したい場合は AWS SDK を用いて、またはクライアント側の暗号化をしたい場合は AWS 暗号化 SDK を用いて行います。

Product-Page_Standard-Icons_01_Product-Features_SqInk
詳細については、料金表を参照してください

料金の例を参照し、コストを計算してください。

詳細はこちら 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
Product-Page_Standard-Icons_03_Start-Building_SqInk
AWS コンソールで構築を開始する

AWS コンソールで AWS Key Management Service の構築を開始する

サインイン