Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
そのS3暗号化ちょっと待って(SSE-S3とSSE-KMSの違いと注意点)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
k_sasano
October 25, 2024
940
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
そのS3暗号化ちょっと待って(SSE-S3とSSE-KMSの違いと注意点)
k_sasano
October 25, 2024
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.1k
Building AI with AI
inesmontani
PRO
1
1.1k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
BBQ
matthewcrist
89
10k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Scaling GitHub
holman
464
140k
30 Presentation Tips
portentint
PRO
1
320
How to make the Groovebox
asonas
2
2.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Transcript
そのS3暗号化ちょっと待って (SSE-S3とSSE-KMSの違いと注意点) 氏名:笹野 拳太郎
目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 •
まとめ
自己紹介 名前:笹野拳太郎 Qiita:https://qiita.com/kaburagi_ 仕事内容:AWS基盤の設計・保守 最近興味:セキュリティ系サービス
• 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 • まとめ
はじめに ◆S3のサーバーサイド暗号化キーは何を使用していますか? • 暗号化キーに対する特別な要件が無い場合、 SSE-S3が第一候補に挙がるかと思います S3 Managed DataKey 暗号化キーの要件ないし、 何となくデフォルトでええやろの精神
Amazon S3 Object
はじめに AWS KMS key 暗号化キーの要件ないし、 何となくデフォルトでええやろ Amazon S3 ◆S3のサーバーサイド暗号化キーは何を使用していますか? •
暗号化キーに対する特別な要件が無い PJ の場合、 SSE-S3が第一候補に挙がるかと思います • ただ、何となくデフォルト設定であるSSE-S3を選択していませんか? 今日はこの何となくを少しでも 解消できたらと思います。
目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 •
まとめ
ざっくりサーバサイド暗号化振り返る ◆ざっくりサーバサイド暗号化をおさらい • 名前の通りサーバー(ストレージ)側で暗号/復号化される暗号方式 • 利用者側で鍵管理は不要、データ格納時にサーバ側で自動的に暗号化され、 利用時には自動的に復号化 Encrypted data put
object Data key 利用者(クライント)
ざっくりサーバサイド暗号化振り返る Encrypted data put object Data key 利用者(クライント) ストレージに対する盗難や発生不正アクセ スから防御してくれることが目的
攻撃者 通信の暗号化は別途検討が必要 ◆盗難や不正アクセスから防御
目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 •
まとめ
S3で利用できる暗号化キーの説明/特徴 ◆S3 におけるサーバーサイド暗号化オプションは、 以下 5 パターンに分類できます。 • SSE-S3 • SSE-KMS(AWS
マネージドキー) • SSE-KMS(カスタマーマネージドキー) • SSE-C • DSSE-KMS
S3で利用できる暗号化キーの説明/特徴 ◆今回は利用が限定的な「SSE-C」「DSSE-KMS」は除外した上で、 それぞれの特徴を確認します。 • SSE-S3 • SSE-KMS(AWS マネージドキー) • SSE-KMS(カスタマーマネージドキー)
• SSE-C • DSSE-KMS
S3で利用できる暗号化キーの説明/特徴 ◆SSE-S3 • デフォルトで設定される暗号方式 • Amazon S3がキーの生成・管理・保管を行う • 透過的に暗号化・復号化されるため、S3 へのアクセス権があれば暗号・復号が可能
S3 Managed DataKey Amazon S3 Object Encrypted Object put object 利用者(クライント) Encryot
S3で利用できる暗号化キーの説明/特徴 SSE-S3:監視/明示的な制御はできないけど安価なマネージドキー ◆コスト • 利用料無料 ◆監査 • いつ/誰がキーを利用したのか追跡不可 ◆アクセス制御 •
S3 へのアクセス権限がある場合、 透過的(リクエスト側設定不要)に利用できるため制御不可 ◆拡張性 • 設定追加/変更不可能 ◆運用性 • AWS マネージドにつき運用不要、不定期で自動ローテーション
S3で利用できる暗号化キーの説明/特徴 ◆SSE-KMS(AWS マネージドキー) • RDSなどでもお馴染み「aws/{サービス名}」形式の名前 • AWS KMS がキーの生成・管理・保管を行う •
鍵の利用証跡が確認可能 DataKey Amazon S3 Object Encrypted Object put object 利用者(クライント) AWS KMS) AWS Cloud Encryot オブジェクトごとに異なる 暗号鍵 を生成
S3で利用できる暗号化キーの説明/特徴 SSE-KMS(AWS マネージドキー): 監査ができて明示的な制御ができないマネージドキー ◆コスト • 作成・保管無料だがAPI リクエストごとに料金発生 ◆監査 •
利用時はKMSに関連する API が発行されるため、CloudTrail より確認可能 ◆アクセス制御 • AWS 側がサービス単位で利用を制限するキーポリシーを付与(ポリシー変更不可) ◆拡張性 • 設定追加/変更不可 ◆運用性 • AWS マネージドにつき運用不要、1年単位で自動ローテーション
S3で利用できる暗号化キーの説明/特徴 ◆SSE-KMS(カスタマーマネージド) • 任意のキーを用いて暗号化可能 • リソースポリシーによるアクセス制御可能 • 暗号/復号化の際にはKMSのアクセス権限が必要 DataKey Amazon
S3 Object Encrypted Object put object 利用者(クライント) AWS KMS AWS Cloud Encryot オブジェクトごとに異なる 暗号鍵 を生成 管理者 キー生成/ポリシー等の設定
S3で利用できる暗号化キーの説明/特徴 SSE-KMS(カスタマーマネージドキー): カスタマイズ性が高いマネージドキー ◆コスト • 有料(1$/キー+リクエストごとの課金+オプションごとに別途課金) ◆監査 • 利用時は API
が発行されるため、CloudTrail より確認可能 ◆アクセス制御 • キー自体の管理者設定/キーポリシーを用いて利用元を制限することも可能 ◆拡張性 • 任意のキー/暗号化タイプの変更などの設定可能 ◆運用性 • AWS マネージドにつき運用不要+オプションにより自動ローテーション可能 • キーローテーションで作成されたキーを用いてデータの再暗号化が行われないため、 旧/新キーを持ち続けることになる。そのためコストがバージョンごとに発生
S3で利用できる暗号化キーの説明/特徴 項目 SSE-S3 SSE-KMS(AWS マネージド) SSE-KMS(カスタマーマネージド) コスト 〇(利用料無料) △(リクエストごとに課金) ×
(1$/キー+リクエストごとのに 課金+オプションごとに別途課金) 監査証跡 ×(追跡不可) 〇(CloudTrail から確認可) 〇(CloudTrail から確認可) アクセス制御 ×(S3 へのアクセス権限があ る場合、制御不可) △(AWS 側キーポリシーを付与(ポリシー変更不可)、 ポリシー内容も 同一アカウント内のサービスからリクエス ト可能など、広く設定されている) 〇(キー自体の管理者設定/キーポリ シーを設定して利用元を制限する ことも可能) 拡張性 ×(設定追加/変更不可能) ×(設定追加/変更不可能) 〇(任意のキー/暗号化タイプの変更 などの設定可能) 運用性 〇(AWS マネージドにつき運 用不要、不定期で自動ロー テーション) 〇(AWS マネージドにつき運用不要+1年単位で自動ロー テーション) 〇(AWS マネージドにつき運用不要 +オプションにより自動ローテー ション可能) 特筆すべき注意点 ・監査不可につき、監査要件 がある場合は利用が厳しい - ・キーローテーションで作成され たキーを用いてデータの再暗号化 が行われないため、旧/新キーを持 ち続けることになる(コスト ↑)
S3で利用できる暗号化キーの説明/特徴 以下用途においてサポートされている、 バケット暗号化方式は「S3-SSE」一択となります ◆SSE-KMSが利用できないパターン • ALBアクセスログ出力先バケットとして使用する予定がある • NLBアクセスログ出力先バケットとして使用する予定がある • S3アクセスログの出力先バケットとして使用する予定がある
• S3インベントリの出力先バケットとして使用する予定がある
S3で利用できる暗号化キーの説明/特徴 各AWSサービスからの出力先の暗号化要件はリファレンスを見ること ◆SSE-KMSが利用できないパターン • ALBアクセスログ出力先バケットとして使用する予定がある • NLBアクセスログ出力先バケットとして使用する予定がある • S3アクセスログの出力先バケットとして使用する予定がある •
S3インベントリの出力先バケットとして使用する予定がある
目次 • 自己紹介 • はじめに • ざっくりサーバサイド暗号化振り返る • S3で利用できる暗号化キーの説明/特徴 •
まとめ
まとめ 各キーの特徴を抑えて選択理由を説明できるように整理 暗号化キーに対する要件はなく、 アクセス制御はS3バケットポリシーにて行うので コストに秀でているSSE-S3を選択しました。 暗号化キー利用の監査要件がありますが、暗号化キー自体のアクセ ス制御要件はないためSSE-KMS(AWSマネージド)を選択しました。 ただ、コストが発生することとS3の用途によってはSSE-S3利用も 検討させてください。 暗号化キー監査/アクセス制御/任意のキーを使用する要件があるた
め、SSE-KMS(カスタマーマネージド)を選択しました。 ただ、AWS KMS利用制限が要件的に困難であれば別の暗号化方式を 検討します。 SSE-S3を説明する人 SSE-KMS(AWSマネージド)を説明する人 SSE-KMS(カスタマーマネージド)を説明する人