0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

S3 オブジェクトの暗号化

Posted at

概要

S3ではオブジェクトを暗号化して安全に保存することが可能。
暗号化する場所とキーによって使い分けを行う。

暗号化の場所

暗号化の場所は以下の2箇所で実施できる

  • クライアントサイド暗号化(CSE:Client Side Encryption)
  • サーバーサイド(SSE:Server Side Encryption)

以下、それぞれを詳しく整理する。

クライアントサイド暗号化

実施方法

オブジェクトをS3へ保存する際に暗号化を行う。
アップロードをリクエストする際にパラメータとして指定して実施する。

キーの種類

キーは自由に選択できる。
オンプレミスのキー、AWS KMSので管理するキーでも暗号化が可能。

サーバーサイド暗号化

実施方法

オブジェクトをS3へアップロードする前に暗号化を行う。
EC2やLambda、オンプレミスのアプリケーションなどで処理にて暗号化を実施する実施する。

キーの種類

以下の3種類がある。

キー 管理場所 説明 操作 使用時
SSE-S3 S3 オブジェクトにアクセスできる権限があればキーへのアクセスは可能。 - s3:PutObject:アップロード
- s3:GetObject:複合されたオブジェクトがダウンロード可能
オブジェクトが実際に保存されているディスク上で暗号化されていれば良い場合
SSE-KMS AWS KMSのCMK(Customer Master Key) ローテーション、無効化、削除などの操作が可能。
CMKにアクセスできるユーザーは以下で制御ができる。
- リソースベースのキーポリシー
- AIMポリシー
アップロード時には以下の制御が必要
- s3:PutObject
- kms:GenerateDataKeyの許可
ダウンロード時には以下の制御が必要
- s3:GetObject
- kms:Decryptの許可
暗号化キーの管理、制御が必要な場合
SSE-C オンプレミス オンプレミスで生成したキーを使用してS3が暗号化を実施 - アップロード時:リクエストで暗号化に使用するキーを指定
- ダウンロード時:リクエストで暗号化に使用したキーを指定
- 組織のポリシーで独自に生成したキーを使用する必要がある
- AWSには暗号化キーを保存したくない場合
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?