AWS Key Management Service の特徴
概要
AWS Key Management Service (KMS) を利用すると、データ保護に使用される暗号化キーを元管理できます。AWS KMS では、キーのライフサイクルと権限の一元管理ができます。いつでも新しいキーを作成でき、キーを使用できるユーザーとは別に、キーを管理できるユーザーを制御できます。AWS の他のサービスと統合されているため、これらのサービスに格納されているデータの暗号化と、こうした暗号を復号するキーへのアクセス制御がより容易になります。また、AWS KMS は AWS CloudTrail とも統合されており、誰がどのキーを、どのリソースで、いつ使用したかを監査できます。デベロッパーは AWS KMS を使用すると、暗号化機能やデジタル署名機能をアプリケーションコードに直接または AWS SDK を使用してより簡単に追加できます。AWS Encryption SDK は、アプリケーション内でローカルにデータを暗号化または復号化する必要があるデベロッパー向けのキープロバイダーとして AWS KMS をサポートします。
主な特徴
すべて開くAWS アカウントで AWS CloudTrail を有効にしている場合、AWS KMS への各リクエストはログファイルに記録されます。このログファイルは、AWS CloudTrail を有効にしたときに指定した Amazon Simple Storage Service (Amazon S3) のバケットに配信されます。記録される情報には、ユーザーの詳細、時間、日付、API アクション、関連する場合には使用されるキーが含まれます。
AWS KMS は、完全マネージド型サービスです。暗号化の使用が増加すると、ニーズに合わせてサービスが自動的にスケールされます。AWS KMS なら、アカウント内の数万規模の KMS キーを管理し、いつでも使用できます。AWS KMS では、キーの数と要求レートのデフォルト制限が定義されていますが、必要に応じて制限を増やすようにリクエストできます。
ユーザー本人が作成したか、他の AWS のサービスが作成を代行した KMS キーはサービスからエクスポートできないため、AWS KMS がその耐久性に責任を負います。キーおよびデータの可用性を確認するために、AWS KMS は 99.999999999% の耐久性を持つように設計されたシステムに、キーの暗号化されたバージョンの複数のコピーを格納します。
リージョン間を移動する暗号化されたデータまたはデジタル署名ワークフロー (ディザスタリカバリ、マルチリージョンの高可用性アーキテクチャ、DynamoDB Global Tables、グローバルに分散された一貫性のあるデジタル署名) の場合、KMS マルチリージョンキーを作成できます。KMS マルチリージョンキーは、同じキー素材とキー ID を持つ相互運用可能なキーのセットで、複数のリージョンに複製することができます。
AWS KMS は、リージョンの API エンドポイントで高可用性サービスとして設計されています。ほとんどの AWS サービスが暗号化と復号化のためにこれに依存しているため、AWS KMS は可用性のレベルを提供するように設計されています。この可用性は AWS の残りの部分をサポートし、AWS KMS サービスレベルアグリーメントによって支えられています。
AWS KMS では、AWS の従業員を含めて誰もこのサービスからプレーンテキストのキーを取得できないように設計されています。このサービスでは、米国国立標準技術研究所 (NIST) の連邦情報処理規格 (FIPS) 140-3 暗号モジュール検証プログラムで継続的に検証されているハードウェアセキュリティモジュール (HSM) を使用し、キーの機密性と完全性を保護します。AWS KMS HSM は KMS キーを保護するための暗号ルートオブトラストです。これにより、KMS で行われるすべての暗号化操作に対して、ハードウェアで保護された安全な境界が確立されます。AWS KMS HSM 内で生成された KMS キーのすべてのキーマテリアルと、復号化された KMS キーマテリアルを必要とするすべてのオペレーションは、これらの HSM の FIPS 140-3 セキュリティレベル 3 の境界内で厳密に行われます。AWS KMS HSM ファームウェアの更新は、Amazon 内の独立したグループによって監査およびレビューされるマルチパーティーアクセスコントロールによって制御されます。FIPS 140 の要件に従い、KMS HSM へのファームウェアの変更はすべて NIST 認定ラボに提出され、FIPS 140-3 セキュリティレベル 3 に準拠しているかどうかの検証を受けます。
ユーザーのプレーンテキストキーがディスクに書き込まれることはなく、ユーザーがリクエストする暗号化操作の実行に必要な時間に HSM の揮発性メモリでのみ使用されます。これは、AWS KMS にキーの作成をリクエストするか、サービスにインポートするか、カスタムキーストア機能を使用して AWS CloudHSM クラスターにキーを作成するかどうかに関係なく当てはまります。単一リージョンキーを作成するか、マルチリージョンキーを作成するかを選択します。単一リージョンキーは、作成された AWS リージョンの外部に送信されることはなく、作成されたリージョン内でのみ使用できます。
AWS KMS がどのように構築されるか、およびキーを保護するために使用される暗号化の詳細については、AWS KMS の暗号化の詳細ホワイトペーパーを参照してください。
* Beijing Sinnet Technology Co., Ltd. (「Sinnet」) Sinnet により運営される AWS 中国 (北京) リージョンおよび Ningxia Western Cloud Data Technology Co., Ltd. (「NWCD」) NWCD により運営される AWS 中国 (寧夏) リージョンでは、HSM は中国政府承認済み (FIPS 140-3 検証なし) であり、上記の Cryptographic Details ホワイトペーパーは適用されません。
AWS KMS は、非対称 KMS キーとデータキーペアの作成と使用に役立ちます。KMS キーを、署名キーペア、暗号化キーペア、またはキー合意キーペアとして使用するために指定できます。これらの KMS キーを使用したキーペアの生成と非対称の暗号化処理は HSM 内で行われます。非対称 KMS キーの公開部分の使用はローカルアプリケーションでリクエストできますが、非公開部分は必ず AWS KMS でリクエストする必要があります。非対称キーのプライベート部分は、独自のキー管理インフラストラクチャからインポートできます。
AWS KMS に非対称データキーペアの生成をリクエストすることもできます。リクエストすると、パブリックキーとプライベートキー、および ユーザーが指定する対称タイプの KMS キーで暗号化されたプライベートキーのコピーのプレーンテキストコピーが返されます。このプレーンテキストのパブリックまたはプライベートキーはローカルアプリケーションで使用できます。また、将来使用するためにプライベートキーの暗号化コピーを保存することもできます。
* 非対称キーはカスタムキーストアでサポートされていません。
AWS KMS の FIPS 140-3 検証済み HSM 内から Hash-based Message Authentication Code (HMAC) を生成して検証することができます。HMAC は暗号化ビルディングブロックであり、ハッシュ関数内にシークレットキーの素材を組み込んで、一意の鍵付きメッセージ認証コードを作成します。HMAC KMS キーは、キーマテリアルが完全に AWS KMS 内で生成および使用されるため、アプリケーションソフトウェアからの HMAC と比較して、メリットがあります。また、キーに設定したアクセスコントロールに従います。AWS KMS が使用する HMAC KMS キーと HMAC アルゴリズムは、RFC 2104 で定義されている業界標準に準拠しています。HMAC KMS キーは、FIPS 140-3 暗号化モジュール検証プログラムの認証を受けた AWS KMS ハードウェアセキュリティモジュールで生成され、AWS KMS を暗号化しない状態にしておくことはありません。独自のキー管理インフラストラクチャから独自の HMAC キーをインポートすることもできます。
* AWS KMS HMAC キーはカスタムキーストアでサポートされていません。
** FIPS 140-3 は、Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンの AWS KMS には適用されません。代わりに、中国リージョンの HSM は、中国政府によって使用が承認されています。
- AWS System and Organization Controls (SOC) レポート (SOC 1、SOC 2、および SOC 3)。これらのレポートのコピーは AWS Artifact からダウンロードできます。
- クラウドコンピューティングコンプライアンスコントロールカタログ (C5)。ドイツ政府が支援する認証スキーム C5 の詳細をご覧ください。
- Payment Card Industry Data Security Standard (PCI DSS) レベル 1。AWS における PCI DSS 準拠のサービスについては、PCI DSS のよくある質問を参照してください。
- 連邦情報処理規格 (FIPS) 140-3。 AWS KMS 暗号化モジュールは、米国国立標準技術研究所 (NIST) により FIPS 140-3 セキュリティレベル 3 で検証されています。詳細は、AWS KMS HSM に対する FIPS 140-3 の証明書と関連するセキュリティポリシーを参照してください。
- 連邦リスクおよび認可管理プログラム (FedRAMP)。AWS FedRAMP コンプライアンスの詳細については、FedRAMP 準拠を参照してください。
- 「医療保険の相互運用性と説明責任に関する法令 (HIPAA)」の指定範囲によります。詳細については、HIPAA コンプライアンスのウェブページをご覧ください。
AWS KMS のセキュリティコントロールと品質管理は、以下のコンプライアンス制度によって検証および認定されています。
AWS KMS は、こちらに記載されている他のコンプライアンス制度に対して検証され、認定されています。
* FIPS 140-3 は、Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンの AWS KMS には適用されません。代わりに、中国リージョンの HSM は、中国政府によって使用が承認されています。
カスタムキーストアは、AWS KMS の便利で包括的なキー管理インターフェイスと、キーマテリアルや暗号化処理が行われるデバイスを所有し管理する機能を兼ね備えています。その結果、暗号キーの可用性と耐久性、および HSM の運用について、より大きな責任を負うことになります。AWS KMS は、2 種類のカスタムキーストアを提供しています。
CloudHSM バックドキーストア
AWS CloudHSM カスタムキーストアに KMS キーを作成することができます。すべてのキーは、お客様が所有し管理する AWS CloudHSM クラスターに生成され保存されます。カスタムキーストアで KMS キーを使用する場合、そのキーに基づく暗号化処理は AWS CloudHSM クラスターのみで実行されます。
カスタムキーストアの使用には AWS CloudHSM クラスターの追加コストが伴い、当該クラスター内のキーマテリアルの可用性についてはユーザーが責任を負うことになります。カスタムキーストアが要件に適しているかどうかについては、こちらのブログを参照してください。
外部キーストア
暗号キーをオンプレミスまたは AWS クラウド外で保管し使用する規制要件がある場合、AWS KMS 外部キーストア (XKS) で KMS キーを作成し、すべてのキーはお客様が所有および管理する AWS 外部の外部キーマネージャで生成および保管されます。XKS を使用する場合、キーマテリアルが HSM から離れることはありません。
標準的な KMS キーや CloudHSM カスタムキーストア内のキーとは異なり、外部キーストアを使用する場合、キーマテリアルの耐久性、可用性、レイテンシー、パフォーマンス、セキュリティと外部キーの暗号操作に責任を持つ必要があります。KMS 運用のパフォーマンスと可用性は、使用する XKS インフラのハードウェア、ソフトウェア、またはネットワークコンポーネントの影響を受けることがあります。XKS の詳細については、こちらの AWS ニュースブログをご覧ください。
* Sinnet 運営の AWS 中国 (北京) リージョン、NWCD 運営の AWS 中国 (寧夏) リージョンではカスタムキーストアは使用できません。
** カスタムキーストアは、非対称 KMS キーでは利用できません。
*** CodeArtifact は、XKS の KMS キーをサポートしていません。
- AWS Encryption SDK は、すべてのタイプのデータに対して暗号化および復号化操作を実装するためのクライアント側の汎用暗号化ライブラリです。
- AWS Database Encryption SDK は、データベースに保存されている機密データを保護するのに役立つ暗号化ライブラリであり、暗号化されたデータの検索とクエリに関する追加機能を提供します。
- Amazon S3 暗号化クライアントは、S3 バケットに保存されているオブジェクトを暗号化および復号化するための暗号化ライブラリです。
AWS KMS をクライアント側の暗号化ライブラリと共に使用することで、AWS 上のアプリケーション内、またはハイブリッド環境やマルチクラウド環境でデータを直接保護できます。これらのライブラリを使用してデータを暗号化してから、AWS のサービス、またはその他のストレージメディアや必要なサードパーティサービスに保存できます。これらのライブラリは、業界標準とベストプラクティスを使用してデータを暗号化および復号化するのに役立つように設計されています。暗号化ライブラリを使用すると、データを暗号化および復号化する方法にではなく、アプリケーションのコア機能に集中できます。
詳細については、AWS Crypto Tools のドキュメントをご覧ください。
大規模な量子コンピュータはまだ公開されていませんが、十分に強力な量子コンピュータができれば、今日のデータを保護するためにパブリックキー暗号アルゴリズムで使用されているスキームの解決が加速するでしょう。AWS ではすでに、ポスト量子世界へ向けての準備を進めています。AWS Key Management Service (KMS) は、ポスト量子暗号を AWS KMS 接続用のポスト量子 TLS およびポスト量子署名の 2 つの方法でサポートしています。KMSへのTLSエンドポイント接続を保護するために、これは Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) を介して行われます。デジタル署名については、AWS KMS は FIPS 204 Module-Lattice Digital Signature Standard (ML-DSA) をサポートしています。これは、組織がデジタル署名に関する新たな量子コンピューティングの脅威に対処できるように設計された量子耐性アルゴリズムです。ML-KEM と ML-DSA はどちらも、暗号に関連する量子コンピュータが登場した後を含め、近い将来にわたって機密情報を保護するために NIST が標準化したアルゴリズムです。
AWS のサービスの統合
AWS KMS は AWS のサービスと統合され、それによって保管中のデータを暗号化でき、AWS KMS キーを利用して署名や検証が容易になります。保管中のデータを保護するには、統合された AWS のサービスでエンベロープ暗号化を使用します。この暗号化では、データキーが使用され、データキー自体が AWS KMS に保存される KMS キーに基づいて暗号化されます。署名や検証にあたっては、統合された AWS のサービスでは、AWS KMS の非対称 RSA または ECC KMS キーのキーペアを使用します。統合されたサービスで AWS KMS を使用する方法の詳細については、AWS のサービスに関するドキュメントをご覧ください。
サービス統合テーブル
|
|
サービス名
|
サービス名
|
サービス名
|
サービス名
|
サービス名
|
|---|---|---|---|---|---|
|
サービス統合
|
Alexa for Business[1]
|
Amazon EMR
|
Amazon Managed Workflows for Apache Airflow (MWAA)
|
Amazon WorkSpaces Secure Browser
|
AWS GameLift
|
- [1] AWS マネージドキーのみをサポートします。
- [2] AWS KMS は、AWS CloudHSM クラスターによってバックアップされたカスタムキーストアをサポートしています。
- [3] Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンでの AWS KMS と統合されたサービスの一覧については、中国での AWS KMS サービスの統合をご覧ください。
上記に記載されていない AWS サービスは、各サービスが所有および管理するキーを使用してお客様のデータを暗号化します。