概要

AWS Key Management Service (KMS) を利用すると、データ保護に使用される暗号化キーを元管理できます。AWS KMS では、キーのライフサイクルと権限の一元管理ができます。新しいキーはいつでも作成でき、誰がキーを管理できるか、誰がキーを使用できるかを個別に制御できます。このサービスは他の AWS サービスと統合されているため、これらのサービスに保存するデータを簡単に暗号化し、それを復号するキーへのアクセスを制御できます。また、AWS KMS は AWS CloudTrail とも統合されており、誰がどのキーを、どのリソースで、いつ使用したかを監査できます。デベロッパーは AWS KMS を使用すると、暗号化機能やデジタル署名機能をアプリケーションコードに直接または AWS SDK を使用してより簡単に追加できます。AWS Encryption SDK は、アプリケーション内でローカルにデータを暗号化または復号化する必要があるデベロッパー向けのキープロバイダーとして AWS KMS をサポートします。

Page Topics

主な特徴

主な特徴

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-2 暗号モジュール検証プログラムで継続的に検証されているハードウェアセキュリティモジュール (HSM) を使用し、キーの機密性と完全性を保護します。AWS KMS HSM は KMS キーを保護するための暗号ルートオブトラストです。これにより、KMS で行われるすべての暗号化操作に対して、ハードウェアで保護された安全な境界が確立されます。AWS KMS HSM 内で生成された KMS キーのすべてのキーマテリアルと、復号化された KMS キーマテリアルを必要とするすべてのオペレーションは、これらの HSM の FIPS 140-2 セキュリティレベル 3 の境界内で厳密に行われます。AWS KMS HSM ファームウェアの更新は、Amazon 内の独立したグループによって監査およびレビューされるマルチパーティーアクセスコントロールによって制御されます。FIPS 140 の要件に従い、KMS HSM へのファームウェアの変更はすべて NIST 認定ラボに提出され、FIPS 140-2 セキュリティレベル 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-2 検証なし) であり、上記の Cryptographic Details ホワイトペーパーは適用されません。 

AWS KMS は、非対称 KMS キーとデータキーペアの作成と使用に役立ちます。KMS キーを、署名キーペア、暗号化キーペア、またはキー合意キーペアとして使用するために指定できます。これらの KMS キーを使用したキーペアの生成と非対称の暗号化処理は HSM 内で行われます。非対称 KMS キーの公開部分の使用はローカルアプリケーションでリクエストできますが、非公開部分は必ず AWS KMS でリクエストする必要があります。非対称キーのプライベート部分は、独自のキー管理インフラストラクチャからインポートできます。

AWS KMS に非対称データキーペアの生成をリクエストすることもできます。リクエストすると、パブリックキーとプライベートキー、および ユーザーが指定する対称タイプの KMS キーで暗号化されたプライベートキーのコピーのプレーンテキストコピーが返されます。このプレーンテキストのパブリックまたはプライベートキーはローカルアプリケーションで使用できます。また、将来使用するためにプライベートキーの暗号化コピーを保存することもできます。

* 非対称キーはカスタムキーストアでサポートされていません。

AWS KMS の FIPS 140-2 検証済み HSM 内から Hash-based Message Authentication Code (HMAC) を生成して検証することができます。HMAC は暗号化ビルディングブロックであり、ハッシュ関数内にシークレットキーの素材を組み込んで、一意の鍵付きメッセージ認証コードを作成します。HMAC KMS キーは、キーマテリアルが完全に AWS KMS 内で生成および使用されるため、アプリケーションソフトウェアからの HMAC と比較して、メリットがあります。また、キーに設定したアクセスコントロールに従います。AWS KMS が使用する HMAC KMS キーと HMAC アルゴリズムは、RFC 2104 で定義されている業界標準に準拠しています。HMAC KMS キーは、FIPS 140-2 暗号化モジュール検証プログラムの認証を受けた AWS KMS ハードウェアセキュリティモジュールで生成され、AWS KMS を暗号化しない状態にしておくことはありません。独自のキー管理インフラストラクチャから独自の HMAC キーをインポートすることもできます。

* AWS KMS HMAC キーはカスタムキーストアでサポートされていません。
** FIPS 140-2 は、Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンの AWS KMS には適用されません。代わりに、中国リージョンの HSM は、中国政府によって使用が承認されています。

AWS KMS のセキュリティコントロールと品質管理は、以下のコンプライアンス制度によって検証および認定されています。

  • 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-2。 AWS KMS 暗号化モジュールは、米国国立標準技術研究所 (NIST) により FIPS 140-2 セキュリティレベル 3 で検証されています。詳細は、AWS KMS HSM に対する FIPS 140-2 の証明書と関連するセキュリティポリシーを参照してください。
  • 連邦リスクおよび認可管理プログラム (FedRAMP)。AWS FedRAMP コンプライアンスの詳細については、FedRAMP 準拠を参照してください。
  • 「医療保険の相互運用性と説明責任に関する法令 (HIPAA)」の指定範囲によります。詳細については、HIPAA コンプライアンスのウェブページをご覧ください。

AWS KMS は、こちらに記載されている他のコンプライアンス制度に対して検証され、認定されています。

* FIPS 140-2 は、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 KMS をクライアント側の暗号化ライブラリと共に使用することで、AWS 上のアプリケーション内、またはハイブリッド環境やマルチクラウド環境でデータを直接保護できます。これらのライブラリを使用してデータを暗号化してから、AWS のサービス、またはその他のストレージメディアや必要なサードパーティサービスに保存できます。これらのライブラリは、業界標準とベストプラクティスを使用してデータを暗号化および復号化するのに役立つように設計されています。暗号化ライブラリを使用すると、データを暗号化および復号化する方法にではなく、アプリケーションのコア機能に集中できます。

  • AWS Encryption SDK は、すべてのタイプのデータに対して暗号化および復号化操作を実装するためのクライアント側の汎用暗号化ライブラリです。
  • AWS Database Encryption SDK は、データベースに保存されている機密データを保護するのに役立つ暗号化ライブラリであり、暗号化されたデータの検索とクエリに関する追加機能を提供します。
  • Amazon S3 暗号化クライアントは、S3 バケットに保存されているオブジェクトを暗号化および復号化するための暗号化ライブラリです。

詳細については、AWS Crypto Tools のドキュメントをご覧ください。

AWS のサービスの統合

AWS KMS は AWS のサービスと統合され、それによって保管中のデータを暗号化でき、AWS KMS キーを利用して署名や検証が容易になります。保管中のデータを保護するには、統合された AWS のサービスでエンベロープ暗号化を使用します。この暗号化では、データキーが使用され、データキー自体が AWS KMS に保存される KMS キーに基づいて暗号化されます。署名や検証にあたっては、統合された AWS のサービスでは、AWS KMS の非対称 RSA または ECC KMS キーのキーペアを使用します。統合されたサービスで AWS KMS を使用する方法の詳細については、AWS のサービスに関するドキュメントをご覧ください。

Alexa for Business[1] Amazon FSx Amazon Rekognition AWS CodePipeline
Amazon AppFlow Amazon GuardDuty Amazon Relational Database Service (RDS) AWS Control Tower
Amazon Athena Amazon HealthLake Amazon Route 53 AWS Data Exchange
Amazon Aurora Amazon Inspector Amazon Simple Storage Service (Amazon S3)[3] AWS Database Migration Service
Amazon Chime SDK Amazon Kendra Amazon SageMaker AWS DeepRacer
Amazon CloudWatch Logs Amazon Keyspaces (Apache Cassandra 向け) Amazon Simple Email Service (SES)
AWS Elastic Disaster Recovery
Amazon CloudWatch Synthetics Amazon Kinesis Data Streams Amazon Simple Notification Service (SNS) AWS Elemental MediaTailor
Amazon CodeGuru Amazon Kinesis Firehose Amazon Simple Queue Service (SQS) AWS Entity Resolution
Amazon CodeWhisperer Amazon Kinesis Video Streams Amazon Textract AWS GameLift
Amazon Comprehend Amazon Lex Amazon Timestream AWS Glue
Amazon Connect Amazon Lightsail[1] Amazon Transcribe AWS Glue DataBrew
Amazon Connect Customer Profiles Amazon Location Service Amazon Translate AWS Ground Station
Amazon Connect Voice ID Amazon Lookout for Equipment Amazon WorkMail AWS IoT SiteWise
Amazon Connect Wisdom Amazon Lookout for Metrics Amazon WorkSpaces AWS Lambda
Amazon DocumentDB Amazon Lookout for Vision Amazon WorkSpaces シンクライアント AWS License Manager
Amazon DynamoDB Amazon Macie Amazon WorkSpaces Web AWS Mainframe Moderization
Amazon DynamoDB Accelerator (DAX)[1]
Amazon Managed Blockchain AWS AppConfig AWS Network Firewall
Amazon EBS Amazon Managed Service for
Prometheus
AWS AppFabric AWS Proton
Amazon EC2 Image Builder Amazon Managed Streaming for Kafka (MSK) AWS Application Cost Profiler AWS Secrets Manager
Amazon EFS Amazon Managed Workflows for Apache Airflow (MWAA) AWS Application Migration Service AWS Snowball 
Amazon Elastic Container Registry (ECR) Amazon MemoryDB AWS App Runner AWS Snowball Edge
Amazon Elastic Kubernetes Service (EKS) Amazon Monitron AWS Audit Manager AWS Snowcone
Amazon Elastic Transcoder Amazon MQ AWS Backup AWS Storage Gateway
Amazon ElastiCache Amazon Neptune AWS Certificate Manager[1] AWS Systems Manager
Amazon EMR Amazon Nimble Studio AWS Cloud9[1] AWS Supply Chain
Amazon EMR Serverless Amazon OpenSearch AWS CloudHSM[2] AWS Verified Access
Amazon EventBridge スケジューラ Amazon Omics AWS CloudTrail AWS X-Ray
Amazon FinSpace Amazon Personalize AWS CodeArtifact  
Amazon Forecast Amazon QLDB AWS CodeBuild  
Amazon Fraud Detector Amazon Redshift AWS CodeCommit[1]  

[1] AWS マネージドキーのみをサポートします。

[2] AWS KMS は、AWS CloudHSM クラスターによってバックアップされたカスタムキーストアをサポートしています。

[3] S3 Express 1 ゾーンは AWS KMS と統合されていませんが、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) はサポートされています。S3 Express ワンゾーンオブジェクト暗号化の詳細については、 S3 Express ワンゾーンデータ保護と暗号化をご覧ください

[4] Sinnet により運営される AWS 中国 (北京) リージョンおよび NWCD により運営される AWS 中国 (寧夏) リージョンでの AWS KMS と統合されたサービスの一覧については、中国での AWS KMS サービスの統合をご覧ください。

上記に記載されていない AWS サービスは、各サービスが所有および管理するキーを使用してお客様のデータを暗号化します。