Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバーレス化を支える認証認可の話
Search
Takuro SASAKI
January 13, 2018
Technology
8.7k
15
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバーレス化を支える認証認可の話
サーバレスアーキテクチャで構築する際の認証認可、アクセス制限のパターンを何となく説明しています
Takuro SASAKI
January 13, 2018
More Decks by Takuro SASAKI
See All by Takuro SASAKI
『生成AI時代のクレデンシャルとパーミッション設計 — Claude Code を起点に』の執筆企画
takuros
3
4k
技術書を書く技術 JAWS DAYS 2024
takuros
18
6.2k
パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)
takuros
2
1.6k
Storage-JAWS第0回 昔話で振り返るAWSの歴史 ~ストレージ編~
takuros
1
3.9k
エンジニアとしての自分とマネージャーとしての自分の狭間で、どう成長していくのか?(AWS DevDay 2023登壇資料)
takuros
32
14k
AWSで作るデータ分析基盤サービスの選定と設計のポイント
takuros
5
7k
JAWSUG初心者支部 IAMの「あ」の話
takuros
4
8.8k
Security-JAWS-Speciality-Study
takuros
0
5.9k
CloudFormation StackSets with AWS Organizations
takuros
3
6.2k
Other Decks in Technology
See All in Technology
[General] 개발자로 해외 기업에서 일하기
skydoves
1
250
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
130
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
100
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
370
キヨさん、67歳。AIコーディングエージェントに挑む
happysamurai294
0
130
AIで選択肢が広がった組織設計の理想と現実
konifar
16
7.4k
2拠点SRE活動始めてみた | sogaoh's LT @ ホンマでっかSRE勉強会 #3
sogaoh
PRO
0
230
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
540
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
150
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.7k
アクセラレーターで実現するServiceNow活用の高速化 / ServiceNow World Forum 2026
visional_engineering_and_design
0
110
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
First, design no harm
axbom
PRO
2
1.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
460
Claude Code のすすめ
schroneko
67
230k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
720
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
500
Visualization
eitanlees
153
17k
Leo the Paperboy
mayatellez
10
2.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
390
Being A Developer After 40
akosma
PRO
92
590k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
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
͝੩ௌɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ