AWS KMS のアイコン

AWS KMS

データの暗号化に使う鍵を安全に作成・管理できるマネージド暗号鍵サービス

何ができるか

AWS KMS (Key Management Service) は、データの暗号化に使用する暗号鍵を安全に作成、保管、管理するフルマネージドサービスです。S3、EBS、RDS、DynamoDB など多くの AWS サービスと統合されており、数クリックでデータの暗号化を有効にできます。鍵の作成、ローテーション、無効化、削除のライフサイクルを一元管理し、IAM ポリシーと鍵ポリシーによるきめ細かなアクセス制御を提供します。FIPS 140-2 検証済みのハードウェアセキュリティモジュール (HSM) で鍵を保護します。

どのような場面で使うか

S3 バケットや EBS ボリュームの保存データの暗号化、RDS や DynamoDB のデータベース暗号化、アプリケーションデータのクライアントサイド暗号化、デジタル署名の生成と検証、Secrets Manager や Parameter Store に保管するシークレットの暗号化など、データ保護が必要なあらゆる場面で利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

マンションの鍵管理室に例えるとわかりやすいでしょう。各部屋 (データ) の鍵 (暗号鍵) を管理室 (KMS) で一括管理し、許可された住人 (IAM ユーザー) だけが自分の部屋の鍵を使えます。鍵は定期的に交換 (ローテーション) され、紛失や盗難のリスクを最小化します。鍵そのものは金庫 (HSM) に保管され、外部に持ち出すことはできません。

KMS とは

AWS Key Management Service (KMS) は、暗号鍵のライフサイクルを管理するフルマネージドサービスです。暗号化はデータ保護の基本ですが、暗号鍵の安全な管理は複雑で専門知識が必要です。KMS はこの複雑さを抽象化し、API 呼び出しやコンソール操作で暗号鍵を簡単に作成・管理できるようにします。鍵は FIPS 140-2 レベル 3 認証を受けた HSM で保護され、AWS の従業員を含む誰も鍵の平文にアクセスできません。

暗号鍵の種類

KMS では主に 2 種類の鍵を扱います。KMS キー (旧称 CMK) は KMS 内で管理される暗号鍵で、データキーの生成や直接の暗号化・復号に使用します。データキーは KMS キーで暗号化された鍵で、大量のデータを暗号化する際に使用します。この仕組みをエンベロープ暗号化と呼び、KMS キーで直接データを暗号化するよりも効率的です。KMS キーには対称鍵 (AES-256) と非対称鍵 (RSA、ECC) があり、用途に応じて選択できます。

AWS サービスとの統合

KMS は 100 以上の AWS サービスと統合されています。S3 ではバケットのデフォルト暗号化に KMS キーを指定でき、アップロードされるオブジェクトが自動的に暗号化されます。EBS ではボリューム作成時に暗号化を有効にするだけで、ディスク上のデータが KMS キーで保護されます。RDS や Aurora ではデータベースインスタンスの暗号化に KMS キーを使用し、バックアップやスナップショットも自動的に暗号化されます。これらの統合はすべて透過的に動作し、アプリケーションの変更は不要です。

料金体系

KMS の料金は、KMS キーの保管料金と API リクエスト料金で構成されます。AWS マネージドキーは無料で、カスタマーマネージドキーは 1 キーあたり月額 1 USD です。API リクエストは 10,000 回あたり 0.03 USD です。AWS サービスが KMS を呼び出す場合も API リクエスト料金が発生しますが、大量のデータを暗号化する場合でもエンベロープ暗号化により KMS への API 呼び出しは最小限に抑えられます。

注意点

  • KMS キーの削除は 7-30 日の待機期間が設けられており、誤削除を防止する仕組みがある。削除すると暗号化されたデータが復号不能になるため、慎重に判断すること
  • カスタマーマネージドキーの自動ローテーションを有効にすると、年に 1 回新しい鍵素材が自動生成される。古い鍵素材は復号用に保持されるため、既存データへの影響はない

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。