Slide 1

Slide 1 text

そのS3暗号化ちょっと待って (SSE-S3とSSE-KMSの違いと注意点) 氏名:笹野 拳太郎

Slide 2

Slide 2 text

目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ

Slide 3

Slide 3 text

自己紹介 名前:笹野拳太郎 Qiita:https://qiita.com/kaburagi_ 仕事内容:AWS基盤の設計・保守 最近興味:セキュリティ系サービス

Slide 4

Slide 4 text

• 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ

Slide 5

Slide 5 text

はじめに ◆S3のサーバーサイド暗号化キーは何を使用していますか? • 暗号化キーに対する特別な要件が無い場合、 SSE-S3が第一候補に挙がるかと思います S3 Managed DataKey 暗号化キーの要件ないし、 何となくデフォルトでええやろの精神 Amazon S3 Object

Slide 6

Slide 6 text

はじめに AWS KMS key 暗号化キーの要件ないし、 何となくデフォルトでええやろ Amazon S3 ◆S3のサーバーサイド暗号化キーは何を使用していますか? • 暗号化キーに対する特別な要件が無い PJ の場合、 SSE-S3が第一候補に挙がるかと思います • ただ、何となくデフォルト設定であるSSE-S3を選択していませんか? 今日はこの何となくを少しでも 解消できたらと思います。

Slide 7

Slide 7 text

目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ

Slide 8

Slide 8 text

ざっくりサーバサイド暗号化振り返る ◆ざっくりサーバサイド暗号化をおさらい • 名前の通りサーバー(ストレージ)側で暗号/復号化される暗号方式 • 利用者側で鍵管理は不要、データ格納時にサーバ側で自動的に暗号化され、 利用時には自動的に復号化 Encrypted data put object Data key 利用者(クライント)

Slide 9

Slide 9 text

ざっくりサーバサイド暗号化振り返る Encrypted data put object Data key 利用者(クライント) ストレージに対する盗難や発生不正アクセ スから防御してくれることが目的 攻撃者 通信の暗号化は別途検討が必要 ◆盗難や不正アクセスから防御

Slide 10

Slide 10 text

目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ

Slide 11

Slide 11 text

S3で利用できる暗号化キーの説明/特徴 ◆S3 におけるサーバーサイド暗号化オプションは、 以下 5 パターンに分類できます。 • SSE-S3 • SSE-KMS(AWS マネージドキー) • SSE-KMS(カスタマーマネージドキー) • SSE-C • DSSE-KMS

Slide 12

Slide 12 text

S3で利用できる暗号化キーの説明/特徴 ◆今回は利用が限定的な「SSE-C」「DSSE-KMS」は除外した上で、 それぞれの特徴を確認します。 • SSE-S3 • SSE-KMS(AWS マネージドキー) • SSE-KMS(カスタマーマネージドキー) • SSE-C • DSSE-KMS

Slide 13

Slide 13 text

S3で利用できる暗号化キーの説明/特徴 ◆SSE-S3 • デフォルトで設定される暗号方式 • Amazon S3がキーの生成・管理・保管を行う • 透過的に暗号化・復号化されるため、S3 へのアクセス権があれば暗号・復号が可能 S3 Managed DataKey Amazon S3 Object Encrypted Object put object 利用者(クライント) Encryot

Slide 14

Slide 14 text

S3で利用できる暗号化キーの説明/特徴 SSE-S3:監視/明示的な制御はできないけど安価なマネージドキー ◆コスト • 利用料無料 ◆監査 • いつ/誰がキーを利用したのか追跡不可 ◆アクセス制御 • S3 へのアクセス権限がある場合、 透過的(リクエスト側設定不要)に利用できるため制御不可 ◆拡張性 • 設定追加/変更不可能 ◆運用性 • AWS マネージドにつき運用不要、不定期で自動ローテーション

Slide 15

Slide 15 text

S3で利用できる暗号化キーの説明/特徴 ◆SSE-KMS(AWS マネージドキー) • RDSなどでもお馴染み「aws/{サービス名}」形式の名前 • AWS KMS がキーの生成・管理・保管を行う • 鍵の利用証跡が確認可能 DataKey Amazon S3 Object Encrypted Object put object 利用者(クライント) AWS KMS) AWS Cloud Encryot オブジェクトごとに異なる 暗号鍵 を生成

Slide 16

Slide 16 text

S3で利用できる暗号化キーの説明/特徴 SSE-KMS(AWS マネージドキー): 監査ができて明示的な制御ができないマネージドキー ◆コスト • 作成・保管無料だがAPI リクエストごとに料金発生 ◆監査 • 利用時はKMSに関連する API が発行されるため、CloudTrail より確認可能 ◆アクセス制御 • AWS 側がサービス単位で利用を制限するキーポリシーを付与(ポリシー変更不可) ◆拡張性 • 設定追加/変更不可 ◆運用性 • AWS マネージドにつき運用不要、1年単位で自動ローテーション

Slide 17

Slide 17 text

S3で利用できる暗号化キーの説明/特徴 ◆SSE-KMS(カスタマーマネージド) • 任意のキーを用いて暗号化可能 • リソースポリシーによるアクセス制御可能 • 暗号/復号化の際にはKMSのアクセス権限が必要 DataKey Amazon S3 Object Encrypted Object put object 利用者(クライント) AWS KMS AWS Cloud Encryot オブジェクトごとに異なる 暗号鍵 を生成 管理者 キー生成/ポリシー等の設定

Slide 18

Slide 18 text

S3で利用できる暗号化キーの説明/特徴 SSE-KMS(カスタマーマネージドキー): カスタマイズ性が高いマネージドキー ◆コスト • 有料(1$/キー+リクエストごとの課金+オプションごとに別途課金) ◆監査 • 利用時は API が発行されるため、CloudTrail より確認可能 ◆アクセス制御 • キー自体の管理者設定/キーポリシーを用いて利用元を制限することも可能 ◆拡張性 • 任意のキー/暗号化タイプの変更などの設定可能 ◆運用性 • AWS マネージドにつき運用不要+オプションにより自動ローテーション可能 • キーローテーションで作成されたキーを用いてデータの再暗号化が行われないため、 旧/新キーを持ち続けることになる。そのためコストがバージョンごとに発生

Slide 19

Slide 19 text

S3で利用できる暗号化キーの説明/特徴 項目 SSE-S3 SSE-KMS(AWS マネージド) SSE-KMS(カスタマーマネージド) コスト 〇(利用料無料) △(リクエストごとに課金) × (1$/キー+リクエストごとのに 課金+オプションごとに別途課金) 監査証跡 ×(追跡不可) 〇(CloudTrail から確認可) 〇(CloudTrail から確認可) アクセス制御 ×(S3 へのアクセス権限があ る場合、制御不可) △(AWS 側キーポリシーを付与(ポリシー変更不可)、 ポリシー内容も 同一アカウント内のサービスからリクエス ト可能など、広く設定されている) 〇(キー自体の管理者設定/キーポリ シーを設定して利用元を制限する ことも可能) 拡張性 ×(設定追加/変更不可能) ×(設定追加/変更不可能) 〇(任意のキー/暗号化タイプの変更 などの設定可能) 運用性 〇(AWS マネージドにつき運 用不要、不定期で自動ロー テーション) 〇(AWS マネージドにつき運用不要+1年単位で自動ロー テーション) 〇(AWS マネージドにつき運用不要 +オプションにより自動ローテー ション可能) 特筆すべき注意点 ・監査不可につき、監査要件 がある場合は利用が厳しい - ・キーローテーションで作成され たキーを用いてデータの再暗号化 が行われないため、旧/新キーを持 ち続けることになる(コスト ↑)

Slide 20

Slide 20 text

S3で利用できる暗号化キーの説明/特徴 以下用途においてサポートされている、 バケット暗号化方式は「S3-SSE」一択となります ◆SSE-KMSが利用できないパターン • ALBアクセスログ出力先バケットとして使用する予定がある • NLBアクセスログ出力先バケットとして使用する予定がある • S3アクセスログの出力先バケットとして使用する予定がある • S3インベントリの出力先バケットとして使用する予定がある

Slide 21

Slide 21 text

S3で利用できる暗号化キーの説明/特徴 各AWSサービスからの出力先の暗号化要件はリファレンスを見ること ◆SSE-KMSが利用できないパターン • ALBアクセスログ出力先バケットとして使用する予定がある • NLBアクセスログ出力先バケットとして使用する予定がある • S3アクセスログの出力先バケットとして使用する予定がある • S3インベントリの出力先バケットとして使用する予定がある

Slide 22

Slide 22 text

目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ

Slide 23

Slide 23 text

まとめ 各キーの特徴を抑えて選択理由を説明できるように整理 暗号化キーに対する要件はなく、 アクセス制御はS3バケットポリシーにて行うので コストに秀でているSSE-S3を選択しました。 暗号化キー利用の監査要件がありますが、暗号化キー自体のアクセ ス制御要件はないためSSE-KMS(AWSマネージド)を選択しました。 ただ、コストが発生することとS3の用途によってはSSE-S3利用も 検討させてください。 暗号化キー監査/アクセス制御/任意のキーを使用する要件があるた め、SSE-KMS(カスタマーマネージド)を選択しました。 ただ、AWS KMS利用制限が要件的に困難であれば別の暗号化方式を 検討します。 SSE-S3を説明する人 SSE-KMS(AWSマネージド)を説明する人 SSE-KMS(カスタマーマネージド)を説明する人