投稿

S3 暗号化が SSE-S3 のみで SSE-KMS 未使用だと、何が『できていない』のか

S3 暗号化が SSE-S3 のみで SSE-KMS 未使用だと、何が『できていない』のか

まとめ

  • SSE-S3 のみの運用は「暗号化されている」が「鍵管理は統制されていない」状態
  • SSE-S3 が守るのは物理層レベルの脅威のみ。運用面の漏洩には寄与しない
  • SSE-KMS 未使用 = 鍵レベル多重防御・鍵利用ログ・顧客主導キーローテーション・クロスアカウント鍵制御・コンプライアンス対応がすべて欠落

前提:S3 の at-rest 暗号化方式

方式 鍵管理 デフォルト
SSE-S3 AWS 完全管理 (AES-256) 2023年1月以降、全バケット自動有効
SSE-KMS 顧客管理 (KMS Customer Managed Key) 明示設定が必要
SSE-C クライアント側で鍵を管理 クライアント側完全制御
DSSE-KMS KMS 二重暗号化 規制要件向けの強化版

「SSE-S3 のみ運用」とは、暗号化はされているが、鍵に対して顧客側が触れる手段が一切ない状態を指す。

SSE-S3 で守れているもの・守れていないもの

SSE-S3 で守れるのは限られる:

  • 物理ディスクの盗難・廃棄時のデータ漏洩
  • ストレージ機構レベルでの不正アクセス(仮想シナリオ)

SSE-S3 で守れないもの:

  • IAM 権限を持つユーザー/ロールからのアクセス(API 経由は透過的に復号される)
  • バケットポリシー・ACL の設定ミスによる漏洩
  • アプリケーション層の脆弱性経由の漏洩

つまり、運用上の漏洩シナリオに対してはほぼ寄与しない。「ディスクが盗まれても大丈夫」レベルの保証しか提供していない。

SSE-KMS 未使用で『できていない』こと

1. 鍵レベルの多重防御(kms:Decrypt の独立した関門)

SSE-S3 では、IAM/Bucket Policy で s3:GetObject を許可された主体は 無条件で復号できる。鍵側のチェックが存在しない。

SSE-KMS の場合、s3:GetObject だけでは足りず、KMS キーポリシーでも kms:Decrypt が許可されている必要がある。

[SSE-S3]
  s3:GetObject 許可 → 復号成功

[SSE-KMS]
  s3:GetObject 許可 AND kms:Decrypt 許可 → 復号成功
  s3:GetObject 許可 AND kms:Decrypt 拒否 → 復号失敗

IAM 設定ミスで s3:GetObject が広めに付与されてしまっても、KMS キーポリシー側で実質的な復号権限を絞れる。多層化された認可境界を構成できないのが SSE-S3 のみの運用。

2. 鍵利用の CloudTrail ログ(誰がいつ何を復号したか)

SSE-S3 では s3:GetObject の API ログは取れるが、復号イベント自体のログは存在しない。AWS が裏側で透過的に復号しているため、鍵利用の粒度では追えない。

SSE-KMS なら CloudTrail に Decrypt イベントが記録される(プリンシパル / 時刻 / KMS キー / 暗号化コンテキスト経由のリソース特定)。「あのオブジェクトは過去 90 日に誰が読んだか」に答えられるかどうかが分かれ目。

3. 顧客主導のキーローテーション・無効化

SSE-S3 の鍵ローテーションは AWS 側で透過的に実施されるが、顧客側から制御できない。

SSE-KMS の Customer Managed Key (CMK) なら:

  • 自動年次ローテーションの有効/無効を顧客が選べる
  • 手動ローテーションを任意のタイミングで発動できる
  • 緊急時に DisableKey で全関連オブジェクトを一時的に読めなくする運用が可能

最後の点は事故対応で重要。漏洩疑いがあるバケットに対して鍵レベルで一斉に「読めなくする」操作ができるかどうかは即応力に直結する。

4. クロスアカウント・きめ細かいアクセス制御

SSE-KMS のキーポリシーは IAM とは独立した認可レイヤなので、クロスアカウント共有時に「アカウント A のロールには許可、アカウント B のロールには拒否」という鍵単位の制御が組める。SSE-S3 にはこのレイヤが存在しない。

5. コンプライアンス要件への対応

金融・医療系の規制で「顧客管理鍵での暗号化」が要件化されているケースがある。SSE-S3 はクラウド事業者の管理鍵なので、この要件を満たせない。SOC2 / ISO27001 の鍵管理統制セクション、PCI-DSS の鍵管理要件等で問われる。

SSE-KMS 採用判断のポイント

観点 SSE-S3 で十分 SSE-KMS が必要
データの機密度 公開予定/低機密 個人情報・金融情報
監査要件 内部のみ 外部監査・規制対応
インシデント対応 IAM レベルで十分 鍵単位で封鎖したい
クロスアカウント 単一アカウント 複数アカウント共有
復号ログ要件 API ログで足りる 鍵利用粒度で追跡

KMS には費用が発生する点(リクエスト課金)と、KMS 障害時に S3 操作も巻き込まれる点はトレードオフとして考慮する。

トレンドのタグ