talomina
@talomina

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

S3のデータを暗号化をする意味

Discussion

Closed

解決したいこと

AWSのS3へデータ保管することを検討しており、その中で疑問に思って検索しても解決できなかったので投稿します。

バケットの設定の中でデータを暗号化する選択肢があります。このS3の暗号化はどのようなリスクからデータを守るために行うのでしょうか?

例えばSSE-S3形式で暗号化した場合、S3に保管する時に暗号化され、取り出すときに自動で複合されます。保管中のみ暗号化されているということになりますが、これは保管中のS3データを他人に見られるというリスクがあるということなのでしょうか?

0

AWSといえどもどこかのデータセンターのサーバーで動いているわけですから、

(1) データセンターへの侵入、サーバー盗難
(2) AWS基盤の脆弱性を利用した攻撃

などにより、S3のデータを直接読み出されてしまう危険性はあります。SSE-S3を利用して暗号化しておけば、正規のルート以外でデータを盗み出そうとしてもそれを防ぐことができます。

ただし暗号化・復号は透過的に行われますので、

(3) S3へのアクセス権限を持ったAWSのアクセストークンが盗まれた
(4) IAM Roleを持ったEC2に不正ログインされた

といったケースではSSE-S3暗号化によって得られる利益はありません。こちらは懸念されている通りです。

さらにSSE-KMSを利用すると、

  • KMS自体が厳重に保護されたシステムである(とAWSが主張している)こと
  • KMSを利用した履歴はCloudTrailに残せること
  • KMSの利用権限はS3とは別個に設定できること

といった点からこの保護をもう1段階高めることができます。

また、(これは保護の話からは外れますが)S3から不要なデータを完全に消去したいと思ったとき、データ削除に加えて暗号化に使ったカスタマーマスターキー(CMK)を削除することでデータ消去をより確実にする、といった使い道もあります。AWSを信頼するならば実質的な意味はあまりないのですが、仮にデータがAWSのどこかに残っていたとしても誰にも復号できないようにしますよ、ということですね。
自治体案件などでは時々「解約時にはデータを完全に消去したという証明書が欲しい」といった要望を受けますが、この辺りを丁寧に説明すると納得いただけることもあります。納得いただけないこともありますが……(先方の立場を考えればやむを得ないところではあります)

5Like

@netebakari 様、丁寧な回答ありがとうございます。非常にスッキリしました。またカスタマーキーをデータ削除の証明に使うという話もとても興味深いです。

0Like

Your answer might help someone💌