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
サーバーレス化を支える認証認可の話
Search
Takuro SASAKI
January 13, 2018
Technology
15
8.4k
サーバーレス化を支える認証認可の話
サーバレスアーキテクチャで構築する際の認証認可、アクセス制限のパターンを何となく説明しています
Takuro SASAKI
January 13, 2018
Tweet
Share
More Decks by Takuro SASAKI
See All by Takuro SASAKI
技術書を書く技術 JAWS DAYS 2024
takuros
17
5.5k
パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)
takuros
2
1.2k
Storage-JAWS第0回 昔話で振り返るAWSの歴史 ~ストレージ編~
takuros
1
3.6k
エンジニアとしての自分とマネージャーとしての自分の狭間で、どう成長していくのか?(AWS DevDay 2023登壇資料)
takuros
30
13k
AWSで作るデータ分析基盤サービスの選定と設計のポイント
takuros
5
6.5k
JAWSUG初心者支部 IAMの「あ」の話
takuros
4
8.6k
Security-JAWS-Speciality-Study
takuros
0
5.5k
CloudFormation StackSets with AWS Organizations
takuros
3
5.8k
AWS認定セキュリティ - 専門知識 AWSのサービスを使って楽してセキュリティ向上!!
takuros
5
5.2k
Other Decks in Technology
See All in Technology
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
100
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
230
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.5k
2025年になってもまだMySQLが好き
yoku0825
8
4.6k
ガチな登山用デバイスからこんにちは
halka
1
240
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
120
2025年夏 コーディングエージェントを統べる者
nwiizo
0
140
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
200
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
230
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
540
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Site-Speed That Sticks
csswizardry
10
810
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
How GitHub (no longer) Works
holman
315
140k
Code Review Best Practice
trishagee
70
19k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Art, The Web, and Tiny UX
lynnandtonic
302
21k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Transcript
αʔόʔϨεԽΛࢧ͑Δ ೝূೝՄͷ /3*ωοτίϜגࣜձࣾɹ ࠤʑ +"846(͍ͨ͞·ࢧ෦ɹୈճษڧձ ʙॳΊຊͰҰ൪ૣ͍SF$BQ৽ձʙ
ࠤʑ ϫΠϯ͖ͳ"84ΤϯδχΞ CMPHIUUQCMPHUBLVSPTOFU UXJUUFS!ELGK ࣗݾհ
ͪΐͬͱએ "NB[PO8FC4FSWJDFT ۀγεςϜઃܭɾҠߦΨΠυ Ұ൪େͳࣝͱٕज़͕ʹͭ͘ IUUQBN[OUPNK0*B9 ݄ൃച։࢝ʂʂ
͏̍ͭએ "NB[PO8FC4FSWJDFT ύλʔϯผߏஙɾӡ༻ΨΠυ Ұ൪େͳࣝͱٕज़͕ʹͭ͘ IUUQBN[OUP#-J:D0 "84ͷೋ൪ʹް͍ຊ ʢେ༰ྔϖʔδʣ
·ͩ·ͩએ "NB[PO8FC4FSWJDFT ΫϥυωΠςΟϒɾΞϓϦέʔγϣϯ։ൃٕ๏ Ұ൪େͳࣝͱٕज़͕ʹͭ͘ IUUQBN[OUP3ZZ-Z "84ͷΞϓϦຊ ʢେ༰ྔϖʔδʣ
αʔόϨεΞʔΩςΫνϟͰߏங͢Δࡍͷ ೝূೝՄɺΞΫηε੍ݶͷύλʔϯΛ Կͱͳ͍ͬͯ͘·͢ ࠓͷత
αʔόϨεΞʔΩςΫνϟʁ ར༻Ͱ͖ΔਓΛ੍ݶ͍ͨ͠߹ʁ API Gateway Lambda DynamoDB ΫϥΠΞϯτ ϞόΠϧ CloudFront S3
ίϯςϯπͷ औಘ ϩδοΫ WebαΠτΛαʔόϨεԽͨ͠ྫ
ೝূೝՄͱΞΫηε੍ݶ
ᶃ*% 1BTTXPSE ར༻ऀ ᶄਖ਼ੑͷ֬ೝ ೝূہ ᶅຊਓੑͷอূ ᶆϦιʔεͷׂ αʔϏε ೝূ ʢ"VUIFOUJDBUJPOʣ
ೝՄ ʢ"VUIPSJ[BUJPOʣ ೝূͱೝՄ ࣮ࡍɺೝূೝՄ͕ηοτʹͳ͍ͬͯΔࣄ͕ଟ͍ ୭Ͱ͋Δ͔ʁ ୭͕୭ʹ ԿͷݖݶΛ༩͑Δ͔
"1*ͷੈքͰʁ τʔΫϯͷӡ༻ΛͲ͏͢Δ͔ɺ৭ʑͳઃܭํ๏͕͋Δ ೝূɾೝՄγεςϜ "1*܈ ར༻ऀ ᶃ*% 1BTTXPSE ᶄΞΫηετʔΫϯ ᶅʙϦΫΤετXJUIτʔΫϯ ॳճΞΫηεɿ*%
1BTTXPSE ೋճҎ߱ɹɿτʔΫϯ 㱺ೝূ࿈ܞʢϑΣσϨʔγϣϯʣ
*%࿈ܞٕज़ʢ0"VUI 0QFO*% 4".-ʣ 0QFO*%ೝূͷϓϩτίϧ *EFOUJUZ "VUIFOUJDBUJPO 0"VUI0QFO*%$POOFDU 0"VUIೝՄͷϓϩτίϧ اۀͷγεςϜؒ࿈ܞɺ
4".-͕ଟ͍
ͪΌΜͱΓ͍ͨਓɺ͜ΕΛಡΜͰ͍ͩ͘͞ IUUQTXXXTMJEFTIBSFOFUULVEPPBVUIPJEDBQJTFDVSJUZZV[BXBXT
ΞΫηε੍ݶ ΞΫηεݩใʹΑΔΞΫηε੍ݶ ɾ*1"EESFTT ɾϔομʔใʢϢʔβʔΤʔδΣϯτʣ ɾભҠݩʹΑΔ੍ݶʢϦϑΝϥʔʣ ɾFUD ϢʔβʔೝূʹΑΔΞΫηε੍ݶ ɾ*%ɺύεϫʔυ ɾτʔΫϯ ɾFUD
ຊਓೝূͳ͠ͰɺϦιʔεͷར༻Λ੍ݶ͢Δ͜ͱ͋Δ
"84ͷ߹ͷ࣮ݱํ๏ʁ ·ͣɺ"1*(BUFXBZͱ$PHOJUPͷ ػೳհ
$PHOJUP ೝূೝՄͷαʔϏεɻ "1*ͱ૬ੑͽͬͨΓ $PHOJUP6TFS1PPM Ϣʔβʔཧʢ%#ʣαʔϏε αΠϯΠϯɾαΠϯΞτͳͲೝূΛ୲ .'"ύεϫʔυϙϦγʔɺҰ௨Γͷػೳ͕ଗ͍ͬͯΔ $PHOJUP'FEFSBUFE*EFOUJUJFT ೝূ෦ɺ֎෦ϓϩόΠμʹҠৡɻೝՄͷαʔϏε ֎෦ϓϩόΠμͱͯ͠ɺ'BDFCPPL5XJUUFS͕ར༻Մೳ
ೝূͨ͠ϢʔβʔʹҰ࣌తͳ"84ͷར༻ݖݶΛ༩ "84454Λ؆୯ʹ͑ΔΑ͏ʹͨ͠ͷ
*EFOUJUZ1SPWJEFST 'BDFCPPL (PPHMF 5XJUUFS FUD ΫϥΠΞϯτ *% 1BTTXPSE τʔΫϯ
$PHOJUP Ұ࣌తূ໌ͷ ༩ τʔΫϯ*% Ұ࣌త ར༻ݖݶ "84ͷ ֤छϦιʔε ݖݶʹԠͯ͡ ར༻Մೳ ೝՄ ೝূ $PHOJUPͷಈ࡞Πϝʔδ
"1*(BUFXBZ 8FC"1*ͷ࡞ɾอޢɾӡ༻ͱ ެ։Λཧ͢ΔαʔϏε 3&45"1*ͷ࡞αʔϏε -BNCEB )5511SPYZ "841SPYZ -BNCEBݺͼग़͠ API Gateway
Lambda EC2 )5511SPYZ "841SPYZ AWSαʔϏε ֤छ
"1*(BUFXBZͷೝূػೳ ೝূํ๏ "*".ΞΫηεݖݶ #ΧελϜΦʔαϥΠβʔ $$PHOJUPϢʔβʔϓʔϧ API Gateway Lambda Cognito User
Pool ΫϥΠΞϯτ "*".ΞΫηεݖݶ #ΧελϜ ΦʔαϥΠβʔ $$PHOJUP Ϣʔβʔϓʔϧ
"1*(BUFXBZͷΞΫηε੍ݶ ੍ݶํ๏ "ΫϥΠΞϯτূ໌ॻ #"1*Ωʔ $ϦΫΤετͷݕূ API Gateway ΫϥΠΞϯτ "ΫϥΠΞϯτূ໌ॻ #"1*Ωʔ
vKC5ZoO1tz7WH H6dfuZdd3zq9ShZ TnJzaCNONs9v $ϦΫΤετݕূ ϔομʔɺ ຊจ etc
"1*(BUFXBZͷ*1ΞυϨεʹΑΔ੍ݶ "848"' $MPVE'SPOU 8"'ͷ*1.BUDI$POEJUJPOΛར༻ 8"'Λར༻͢ΔͨΊʹɺ$MPVE'SPOUར༻ API Gateway ΫϥΠΞϯτ WAF CloudFront
ΫϥΠΞϯτ *1.BUDI$POEJUJPOͰఆ 999:::;;;""" """:::;;;999 ̋ ❌ $MPVE'SPOU "1*(BUFXBZͱ͍͏ແବͳଆ໘
"1*(BUFXBZͷ*1ΞυϨεʹΑΔ੍ݶᶃ *".ʹΑΔ੍ݶ "1*(BUFXBZͷೝূͰɺ*".Λར༻͢Δ *".ͷ$POEJUJPOͰɺ*1੍ݶΛֻ͚Δ ར༻ऀ͕"84ϢʔβͷΈͰ͋Εखஈͷ̍ͭ API Gateway ΫϥΠΞϯτ ಛఆͷॴͷΈ༗ޮͳ伴
Ϣʔεέʔε͝ͱͷ ΞʔΩςΫνϟ $PHOJUPฤ
৽نͰαʔϏεͷ্ཱͪ͛ $PHOJUP6TFS1PPM͕͓קΊ "1*(BUFXBZͷೝূͰɺ*".Λར༻͢Δ *".ͷ$POEJUJPOͰɺ*1੍ݶΛֻ͚Δ API Gateway ΫϥΠΞϯτ Cognito User Pool
Lambda ೝূ ॲཧ
طଘͷγεςϜʹ"1*Ճ ΧελϜΦʔαϥΠβʔͰطଘ%#Λࢀর -BNCEBͰࣗલͰೝূॲཧΛ࣮ طଘγεςϜʹ*%ɾύεϫʔυͷਖ਼ੑΛ͍߹Θͤ API Gateway ΫϥΠΞϯτ ΧελϜ ΦʔαϥΠβʔ ೝূ
طଘγεςϜ ͍߹Θͤ Lambda ॲཧ
طଘγεςϜΛ$PHOJUP6TFS1PPMʹҠߦ͍ͨ͠ ͭΒ͍ $PHOJUP6TFS1PPMʹɺσʔλΠϯϙʔτػೳ͋Δ ͨͩ͠ɺύεϫʔυҠߦͰ͖ͳ͍ ύεϫʔυͷ࠶ൃߦͷΈͰɺॳճϩάΠϯ࣌มߋΛଅ͢ େنҠߦͷ࣌ʹɺͭΒ͍ ΞϓϦͷ࡞ΓࠐΈͰɺճආ͢Δํ๏͋Δͷͷɻɻɻɻ Ͳ͏ͨ͠Βྑ͍ͷͰ͠ΐ͏Ͷʁ
$PHOJUP6TFS1PPMͷσʔλΛόοΫΞοϓ͍ͨ͠ Ͱ͖ͳ͍ ݱࡏɺ6TFS1PPMͷόοΫΞοϓʗΤΫεϙʔτ͕Ͱ͖ͳ͍ σʔλ"84͕࣋ͬͯकͬͯΔͱ ඞਢͷ߹ɺ%ZOBNP%#ʹϢʔβใΛอଘ "84͞Μɺ͓ئ͍ʂʂ
8PSME8JEFͳαʔϏεͰ$PHOJUP͍͍ͨ ݱঢ়ͷ$PHOJUPϦʔδϣϯؒͰͷϨϓϦέʔγϣϯػೳͳ͠ 8PSME8JEFͰ୯Ұͷ$PHOJUPͩͱೝূͷϨΠςϯγ͕ %ZOBNP%#ΫϩεϦʔδϣϯϨϓϦέʔγϣϯͰղܾʁ ϢʔβʔσʔλΛ%ZOBNP%#ʹอଘ ඞཁͳϦʔδϣϯʹ$PHOJUP'FEFSBUFE*EFOUJUJFTΛ༻ҙ͢Δ "84͞Μɺ͓ئ͍ʂʂ
"1*(BUFXBZͰͷࠔΓࣄ ͱ͍͏͔Ξϯνύλʔϯ
4/*ඇରԠΫϥΠΞϯτʹରԠ͢Δ "1*(BUFXBZͷ4/*ϕʔεͷ44-5-4 ݹ͍ϒϥβɺϓϩάϥϜݴޠ4/*ʹରԠ͍ͯ͠ͳ͍߹ ʹͳΓ͍͢ͷɺ+BWBҎલ ରԠࡦ "1*(BUFXBZͰͳ͘ɺ-BNCEBΛݺͼग़͢ "1*(BUFXBZͷલʹɺ&-#&$Λ͓͘ ࣅͨΑ͏ͳʹɺIUUQͰ"1*(BUFXBZʹΞΫηε͍ͨ͠ͱ͔ ͲΕΠϚΠνͳͷͰɺΫϥΠΞϯτଆͷߋվ͕ྑ͍
71$Ͱར༻͍ͨ͠ "1*(BUFXBZɺ71$ʹஔग़དྷͳ͍ -BNCEBɺ71$ͰىಈՄೳ 4UFQ'VODUJPOTͱซ༻ͰτϦοΩʔͳىಈՄೳ 71$ϦϯΫ /-#Ͱɺ71$ͷϦιʔε͕ར༻Մೳ API Gateway Step Functions
Lambda Network Load Balancer VPCϦϯΫ
"1*(BUFXBZܦ༝ͰόονతॲཧΛΩοΫ͍ͨ͠ "1*(BUFXBZͷ౷߹ͷλΠϜΞτඵ όοΫΤϯυͷॲཧ͕͍߹ҙ ۩ମతʹɺόονతͳॲཧΛݺͼग़͢߹ ରԠࡦ όοΫΤϯυͱͷ౷߹Λඇಉظܕʹ͢Δ ݺͼग़͠ޭ࣌ʹɺϦΫΤετ*%Λฦ٫͢Δ ͦͦ"1*(BUFXBZ͔ΒΩοΫ͢Δඞཁ͕͋Δͷ͔ߟ͑Δ API Gateway
AWSͷ֤छϦιʔε ᶃϦΫΤετ ᶄϨεϙϯε ΫϥΠΞϯτ ᶅඇಉظݺͼग़͠
$PHOJUPɺ"1*(BUFXBZ Ԟ͕ਂ͍
ిࢠॻ੶ɺࣥචͷػӡ IUUQTUPHFUUFSDPNMJ
SF$BQ
͝੩ௌɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ