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
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tessy
December 20, 2023
Technology
1
3.8k
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
ALBでmTLS認証を検証
tessy
December 20, 2023
Tweet
Share
More Decks by tessy
See All by tessy
Kindに頼らない!おうちで構築するマルチマスターKubernetes Cluster
tessy
0
130
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
350
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
900
TerraformでEC2 Auto Scaling構築してみた
tessy
4
1.1k
Other Decks in Technology
See All in Technology
フルスタックGoでスコア改ざんを防いだ話
ponyo877
0
520
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
1.7k
20260222ねこIoTLT ねこIoTLTをふりかえる
poropinai1966
0
200
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
340
AI Coding Agentの地殻変動 ~ ai-coding.info の定点観測 ~
kotauchisunsun
0
200
歴史に敬意を! パラシュートVPoEが組織と共同で立ち上がる信頼醸成オンボーディング
go0517go
PRO
0
190
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
74k
Microsoft Fabric のワークスペースと容量の設計原則
ryomaru0825
2
140
【Developers Summit 2026】Memory Is All You Need:コンテキストの「最適化」から「継続性」へ ~RAGを進化させるメモリエンジニアリングの最前線~
shisyu_gaku
5
710
Interop Tokyo 2025 ShowNet Team Memberで学んだSRv6を基礎から丁寧に
miyukichi_ospf
0
180
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
140
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
410
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
460
Building the Perfect Custom Keyboard
takai
2
700
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
130
Darren the Foodie - Storyboard
khoart
PRO
3
2.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
270
WCS-LA-2024
lcolladotor
0
470
The Mindset for Success: Future Career Progression
greggifford
PRO
0
250
Chasing Engaging Ingredients in Design
codingconduct
0
120
Transcript
ALBがついに対応したmTLS認証で トラストストア、パススルー を検証してみた ⽇本IBM ⼿嶋 達也 2023/12/20
⾃⼰紹介 @tterima 取得したAWS資格 2013年4⽉〜2022年4⽉ アプリ開発チームに所属 2022年5⽉〜現在 インフラ(AWS)チームに所属 ようやくAWS経験が2年を超えました。 全冠まで残り1つ
re:Invent 2023(の直前)でALBのmTLS認証が発表されました!! https://aws.amazon.com/jp/about-aws/whats-new/2023/11/application-load-balancer-authenticate-x509-certificate-based-identities/
mTLS認証(相互TLS認証)があると 何が嬉しいのか
mTLS認証(相互TLS認証)があると何が嬉しいのか 従来設定 サーバ証明書により、サーバの真正性のみ確認 ALB 特定のデバイスのみアクセスさせたいサイトを想定します。 IDを発⾏していますが、悪意がある攻撃者にID情報が漏洩しました。 ログイン 成功
mTLS認証設定 mTLS認証により、相互の真正性を確認 ALB ログイン 失敗 mTLS認証(相互TLS認証)があると何が嬉しいのか 従来設定 サーバ証明書により、サーバの真正性のみ確認 ALB 特定のデバイスのみアクセスさせたいサイトを想定します。
IDを発⾏していますが、悪意がある攻撃者にID情報が漏洩しました。 ログイン 成功
これまでのmTLS対応 これまでmTLS認証を⾏うためには以下の通り、NLBでHTTPS要求をパススルー してApache等でクライアント認証を⾏う必要がありました。 このため、ALBのパスベースルーティングなどが困難でした。 これからは、ALBが利⽤できますね。 さらに、ALBでクライアント認証検証が可能となるため、EC2を建てる必要もなく なります。(トラストストア検証の場合) NLB Instance
構築してみよう
mTLS認証⽅式について ALBのmTLS認証には、以下の2通りの⽅式があります。 • トラストストア認証 トラストストアとしてサーバ証明書を登録し、ALBがクライアント証明書を検証する⽅式 ALB ALB Instance • パススルー認証
バックエンドにHTTPヘッダーとしてクライアント証明書パススルーする⽅式
トラストストア検証⽅式
構築 - クライアント証明書の作成 opensslコマンドでクライアント証明書を作成します。 今回はいわゆるオレオレ証明書を作成します。(本番で使⽤できません) トラストストアに登録 クライアント証明書 として利⽤
構築 ‒ ルート証明書をトラストストアとして登録 S3に先ほど作成したrootCA_cert.pemをアップロードして、 トラストストアとして登録します。 作成したトラストストアをALBと紐づけることでmTLS認証が可能です。
構築 ‒ ルート証明書をALBのトラストストアとして登録 HTTPSリスナーの設定にmTLSの設定があるため、先ほどのトラストスト アを設定します。 ALBアクセス時には固 定レスポンスを返すよ うに設定しています。
アクセス確認 クライアント証明書を指定してアクセス クライアント証明書を指定せずアクセス 無事にクライアント証明書指定時だけアクセスさせることができました。 これで悪意があるユーザからの攻撃を防ぐことが可能になります。
パススルー⽅式
構築 ‒ パススルー設定 パススルーの場合はトラストストアのような設定は不要です。 パススルーを設定するだけでバックエンドにクライアント証明書が連携されます。 今回はLambdaを作成してヘッダーの様⼦を眺めます。 参考:https://dev.classmethod.jp/articles/aws-alb-mtls-pass-through/ ALB Lambda function
アクセス確認 ‒ クライアント証明書指定 クライアント証明書を 指定 HTTPヘッダーとしてクライアント証明書が バックエンドに送信
アクセス確認 ‒ クライアント証明書未指定 クライアント証明書が格納された HTTPヘッダーが存在しない。 クライアント証明書無しでもバックエンドに送信されるため、注意が必要です。 通常はバックエンドにApacheなどを配置して正当性を検証します。
まとめ • mTLS認証をALBだけで簡単に構築できた。 • トラストストア検証はお⼿軽で、バックエンドのクライアント認証処理を オフロード可能なため、今後主流になる予感 • パススルー⽅式もサポートされているため、NLBをALBに置き換え可能