S3オブジェクト暗号化3兄弟「SSE-S3」「SSE-KMS」「SSE-C」について
date: 2020-10-25
S3のオブジェクトの暗号化に使われる方法が3つあったので、違いとか用途についてメモ
S3のAPIを使用するときファイルをS3に配置するタイミングで暗号化することが可能。 その暗号化には3つの種類がある。
結論
- SSE-S3
- S3側が勝手にキー生成管理をしてくれる
- 無料
- 暗号化、複合の証跡(CloudTrail)は残らない
- 暗号化キーと、暗号化キーを暗号化する「マスター暗号化キー」がある
- SSE-KMS
- AWS KMSがキーを管理
- 有料
- 暗号化、複合の証跡(CloudTrail)が残る
- SSE-C
- ユーザがキーを管理
SSE-S3
S3側でキー管理とか生成とかを行ってくれる。 無料のため大量に暗号化、複合する場合などに有効。
例えばアクセスログとか、アプリケーションのログとかを暗号化したい場合など。アクセスログなどはどうしても大量になるため、有料のSSE-KMSで暗号化するともったいない。
ただ、いつ誰がどのオブジェクトを暗号化した、複合したなどのログは残らない。だからあまりその辺を考慮しなくてよいアクセスログとかに使うと良い。 大量の画像とかを場合とかも良いかも?暗号化したい、でも証跡とかは残さなくて良い場合とか。
SSE-KMS
KMSを使ってキー管理を行い、暗号化してくれる。
CloudTrailを使って証跡を残せるので、認証情報などを管理している場合などは良いかも。 例えば部署でいろいろな認証情報を管理していて、それをS3にあげている場合。会社的には誰がいつどの認証情報にアクセスしたかどうかを知りたいはず。
ただ、KMSなので料金がかかる。
SSE-C
ユーザ自身がキーの生成、管理を行うもの。 とくに理由がなければ、面倒なので使わなくてよいかな。
参考: https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/serv-side-encryption.html
date: 2020-10-25