$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバーレス化を支える認証認可の話
Search
Takuro SASAKI
January 13, 2018
Technology
15
8.5k
サーバーレス化を支える認証認可の話
サーバレスアーキテクチャで構築する際の認証認可、アクセス制限のパターンを何となく説明しています
Takuro SASAKI
January 13, 2018
Tweet
Share
More Decks by Takuro SASAKI
See All by Takuro SASAKI
技術書を書く技術 JAWS DAYS 2024
takuros
17
5.7k
パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)
takuros
2
1.3k
Storage-JAWS第0回 昔話で振り返るAWSの歴史 ~ストレージ編~
takuros
1
3.7k
エンジニアとしての自分とマネージャーとしての自分の狭間で、どう成長していくのか?(AWS DevDay 2023登壇資料)
takuros
32
14k
AWSで作るデータ分析基盤サービスの選定と設計のポイント
takuros
5
6.6k
JAWSUG初心者支部 IAMの「あ」の話
takuros
4
8.6k
Security-JAWS-Speciality-Study
takuros
0
5.6k
CloudFormation StackSets with AWS Organizations
takuros
3
6k
AWS認定セキュリティ - 専門知識 AWSのサービスを使って楽してセキュリティ向上!!
takuros
5
5.3k
Other Decks in Technology
See All in Technology
AI with TiDD
shiraji
1
240
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
170
Knowledge Work の AI Backend
kworkdev
PRO
0
100
AI駆動開発の実践とその未来
eltociear
1
470
ZOZOの独自性を生み出す「似合う4大要素」の開発サイクル
zozotech
PRO
0
110
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
340
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
250
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
350
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
2k
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
220
高度サイバー人材育成専科資料(前半)
nomizone
0
500
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
470
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Designing Experiences People Love
moore
143
24k
The Cult of Friendly URLs
andyhume
79
6.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
710
Color Theory Basics | Prateek | Gurzu
gurzu
0
140
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
26
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
For a Future-Friendly Web
brad_frost
180
10k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
160
Speed Design
sergeychernyshev
33
1.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
91
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
͝੩ௌɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ