1
0

More than 3 years have passed since last update.

【AWS】S3にしまう時に暗号化する

Posted at

はじめに

「好きなAWSサービス:S3」って書いてあると通っぽい雰囲気がでるなあ と思っています。
なので、S3をより好きになれるよう、理解した「S3でできること」を少しずつアウトプットしていきます。

S3のデータ保護

S3はストレージサービスなので、「格納するデータをどのように保護するか?」が重要です。
「サーバ側の暗号化」と「クライアント側の暗号化」の2つがあります。

クライアント側の暗号化

いわばデータを送る前の暗号化。
詳細は触れない。

サーバ側の暗号化

一言でいうと「S3にしまう時に暗号化する」という方法。
以下の方法がある。

S3管理キーによるサーバ側暗号化(SSE-S3)

S3が管理するキーで暗号化する。

設定は「デフォルトの暗号化」の選択で「S3キー」を選ぶだけ。
あとは裏側でよしなにやってくれるというわけ。
image.png

「本当に大丈夫なん?」と思ったら以下の記事がおすすめです。
https://dev.classmethod.jp/articles/behavior-when-s3-cannot-be-decrypted/

KMSのカスタマーマスターキー(CMK)によるサーバ側暗号化(SSE-KMS)

暗号化キー管理のサービス、KMSのCMKを使ってで暗号化します。
※CMKがどんなもんかは以下を参照。
https://www.slideshare.net/ssuser2c2bf2/encryption-with-raccon-dog-and-pear-242427386

S3キーでの暗号化とほとんど同じですが、以下のようなメリットがあります。
・CMK私用の個別アクセス許可を行える
・「CMKがいつ誰に使われたか」の証跡を残せる。

S3キーによる暗号化より選択肢が多いです。
各選択肢毎の違いは別記事で触れます。
image.png

利用者の指定したキーによるサーバ側暗号化(SSE-C)

言葉通り。
基本はAWS側でマネージしてくれるS3キーかKMSのCMKで暗号化すればよいと思う。

その他サーバ側の暗号化について覚えておくこと

・メタデータは暗号化されず、実データだけが暗号化される。
・同じオブジェクトに対し、異なる種類の暗号化は利用できない
・サーバ側の暗号化では、あくまで「しまう瞬間」の暗号化。
 S3に送信するまでの通信では、暗号化通信を利用するなどで別途ネットワークセキュリティを担保する必要がある。

感想

S3キーで暗号化するのが簡単だが、想像しづらい。
AWSの操作感と利便性をより肌で感じるためには、KMS使いながら勉強するのがよいのではないかと感じた。

参考

暗号化を使用したデータの保護
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingEncryption.html

サーバー側の暗号化を使用したデータの保護
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/serv-side-encryption.html

AWS Key Management Service (SSE-KMS) に保存された CMK によるサーバー側の暗号化を使ったデータの保護
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingKMSEncryption.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0