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
tessy
December 20, 2023
Technology
3.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ALBがついに対応したmTLS認証でトラストストア、パススルーを検証してみた
ALBでmTLS認証を検証
tessy
December 20, 2023
More Decks by tessy
See All by tessy
Kindに頼らない!おうちで構築するマルチマスターKubernetes Cluster
tessy
0
160
Cloudflareで取得したドメインをRoute53+ACMで管理する
tessy
1
380
EC2 AutoScalingでスケーリングポリシー設定を失敗してうまく行かなった件とその対策
tessy
0
920
TerraformでEC2 Auto Scaling構築してみた
tessy
4
1.2k
Other Decks in Technology
See All in Technology
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
360
Rubyで音を視る
ydah
1
250
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
1.7k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
200
Rancherの紹介&Update情報(RancherJP Online Meetup #09)
yoshiyuki_kono
0
140
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
230
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
2
590
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.3k
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
800
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
270
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
140
スキルと MCP ツール、責務をどう分けるか? AI が迷わないインターフェース設計の戦略
cdataj
1
630
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
A better future with KSS
kneath
240
18k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
It's Worth the Effort
3n
188
29k
4 Signs Your Business is Dying
shpigford
187
22k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
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に置き換え可能