17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

S3の暗号化

Last updated at Posted at 2018-01-30

S3でのデータ保護は2パターン

  • 転送時(S3との間での送受信)
    • SSLを使用
    • クライアント側で暗号化
      • AWS KMSで管理されたCMK(カスタマーマスターキー)を使用
        • KMS CMK IDを使用
      • クライアント側のマスターキーを使用
  • 保管時(S3データセンター内のディスクに格納されている時)
    • S3で管理されたキーによるサーバー側の暗号化SSE-S3
      • キーが定期的に更新されるマスターキーで暗号化
      • AES-256を使用して暗号化
      • オブジェクトデータのみが暗号化。オブジェクトメタデータは暗号化されない
      • x-amz-server-side-encryptionというリクエストヘッダーを使用
    • KMSで管理されたキーによるサーバー側の暗号化SSE-KMS
      • SSE-S3と同様だが下記の利点がある
        • エンベロープキーを使用するための個別アクセス制限がある。
          エンベロープキー: データの暗号化キーを保護するキー
        • いつ、誰によってキーが使用されたか監査証跡も提供されている
        • 暗号化キーを自分で作成し管理したり、ユーザー、サービス、リージョンごとに一意のデフォルトキーを使用できる
    • 自前で用意した暗号化キーによるサーバー側の暗号化SSE-C
      • S3側でAES-256を使用し暗号化される
      • S3側で暗号化キーを保存しない。代わりにランダムなSALT値を付加したHMAC値を保存する。
      • httpsを使用する必要がある
      • レスポンスのETagはオブジェクトデータのMD5ではない
        • ETag(エンティティタグ): レスポンスヘッダの1つ。キャッシュの有効性確認の手段の1つ
      • 使用した暗号化キーと暗号化したオブジェクトのマッピングはクライアント側で行う
        • バージョニングが有効時、各バージョンに独自の暗号化キーを使用出来る。
      • コンソールでオブジェクトをアップロードした場合は使えない。またSSE-Cで保存したオブジェクトの更新をコンソールですることは出来ない。

SSE = Server Side Encryption
バケット内オブジェクトを一覧表示するときに、リストAPIは暗号化されていても表示する

17
13
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
17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?