AWS Key Management Service(KMS)
AWS Key Management Service(KMS)はAWSが提供する暗号化キー管理サービスです。通常、暗号化を行う対象のサービス(S3やEBS、Redshiftなど)と連携して利用します。
主な機能
- 暗号化キーの作成と管理
データを暗号化・複合するためのキーを安全に作成・保存・管理できます。 - キーのローテーション
セキュリティを強化するために、暗号化キーを定期的に自動で更新できます。 - アクセス制御
IAMポリシーを使用して、誰がどのキーにアクセスできるかを詳細に制御できます。 - 監査と追跡
AWS CloudTrailと統合されており、すべてのキー使用を記録・監視できます。
暗号化の仕組み
エンベロープ暗号化
KMSキー、データキーと呼ばれる2種類の鍵を使用してデータの暗号化および複合を行う方式
KMSキーの種類
- AWSマネージド型
通常AWSによって作成・管理されるもの。ユーザーは削除できず連携したEBSやRedshiftなどのサービスで暗号化を利用したタイミングでAWSが作成します。 - カスタマーマネージド型
ユーザーが作成・削除および管理を行います。→作成した鍵を長期間利用するのはセキュリティ上危険なため、KMSでは鍵の自動ローテーションをサポート
キーポリシー
KMSキーへ適用するリソースベースのポリシーです。鍵に対して、IAMユーザーまたはIAMロール、他のAWSアカウントからの操作可能な権限を設定します。
使用シーン
クロスアカウント
あるAWSアカウントで暗号化されたリソースを別のAWSアカウントで復号したい場合、KMS(Key Management Service)の暗号化鍵を複数のAWSアカウントで使用できます。暗号化されたAMIやデータベースのスナップショットなどを他のAWSアカウントと共有する際に利用します。
鍵を共有するには、共有する対象のAWSアカウントIDを鍵の使用者として追加します。共有できる鍵はカスタマーマネージド型のKMSキーのみです。AWSマネージド型のKMSキーはキーポリシーを編集できないため他のAWSアカウントと共有できません。
AWS CloudHSM(Hardware Securty Module)
専用のハードウェアデバイスを用いて暗号化鍵を生成・管理します。貸し出されるハードウェアはFIPS 140-2認定のハードウェアベースのキー保管をサポートしているため信頼性が高いです。
KMSがフルマネージドであるのに対しCloudHSMでは鍵の生成や保管・削除などのライフサイクルはユーザー自身が行います。運用面においても他のAWSユーザーと分離するためにAmazon VPC内にプロビジョニングする必要があるなどKMSよりもセキュアな運用が求められます。また専用のハードウェアを使用する分利用料金が高価になります。法令や規制等の要件で認定を受けたハードウェアで暗号化鍵を管理する必要があるようなケースに使用します。