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
Security-JAWS IAMの設計を言語化する
Search
Takuro SASAKI
November 11, 2019
Technology
11
6.1k
Security-JAWS IAMの設計を言語化する
2019年11月11日にSecurity-JAWSで発表した資料です
https://s-jaws.doorkeeper.jp/events/99569
Takuro SASAKI
November 11, 2019
Tweet
Share
More Decks by Takuro SASAKI
See All by Takuro SASAKI
技術書を書く技術 JAWS DAYS 2024
takuros
16
4.8k
パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)
takuros
2
1k
Storage-JAWS第0回 昔話で振り返るAWSの歴史 ~ストレージ編~
takuros
1
3.3k
エンジニアとしての自分とマネージャーとしての自分の狭間で、どう成長していくのか?(AWS DevDay 2023登壇資料)
takuros
30
13k
AWSで作るデータ分析基盤サービスの選定と設計のポイント
takuros
4
5.6k
JAWSUG初心者支部 IAMの「あ」の話
takuros
4
8.4k
Security-JAWS-Speciality-Study
takuros
0
5.3k
CloudFormation StackSets with AWS Organizations
takuros
3
5.5k
AWS認定セキュリティ - 専門知識 AWSのサービスを使って楽してセキュリティ向上!!
takuros
5
4.9k
Other Decks in Technology
See All in Technology
AWS Step Functionsのタスク入出力に秩序を与えよう
haku__hime
0
140
MOSH_companydeck_202410
mosh_inc
0
120
エンジニアのドメイン知識獲得コストを低減するアプリケーションデザイン
ryo_nagata_
3
180
dbt-coreで実現するCore DataMartsのデータモデリング〜dbt編〜 / Core DataMarts Modeling with dbt-core
i125
0
180
Demystifying Vite Internals
nozomuikuta
3
920
本番のトラフィック量でHudiを検証して見えてきた課題
joker1007
2
290
いまからでも遅くない!コンテナでWebアプリを動かしてみよう入門(2-2)WebAPIハンズオン
nomu
0
130
生成AI入門
shukob
0
170
20241015 Toranomon Tech Hub#1 Service Catalog使ってみた
hiashisan
0
230
API開発健全性 〜 持続可能で高品質なAPIのためのアプローチ 〜
nagix
2
140
Reality is not an End-to-End Prediction Problem: Applied NLP in the Age of Generative AI
inesmontani
PRO
0
230
KongによるAPIライフサイクル マネジメント
hashitokyo
1
160
Featured
See All Featured
A Tale of Four Properties
chriscoyier
156
22k
It's Worth the Effort
3n
183
27k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.8k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
4.9k
Optimizing for Happiness
mojombo
376
69k
The Invisible Side of Design
smashingmag
297
50k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
BBQ
matthewcrist
85
9.2k
Transcript
*".ͷઃܭΛݴޠԽ͢Δ /3*ωοτίϜגࣜձࣾɹ ࠤʑ 4FDVSJUZ+"84ɹୈճ #secjaws
ࠤʑ CMPHIUUQTCMPHUBLVSPTOFU 5XJUUFS!ELGK ࣗݾհ #secjaws
+BQBO"1/"NCBTTBEPS બग़͞Ε·ͨ͠ ࣗݾհ #secjaws
ࠓ͢ςʔϚ̐ͭ ྨ্ͨ͠ͰݴޠԽ͢ΔͱԿͱͳ͘ղ͔Δ ઃܭ͢Δ্Ͱɺ·ͣσβΠϯύλʔϯΛ࡞Δ ۩ମతͳϙϦγʔͷઃܭྫ *".ͷ౾ࣝ #secjaws
"84ͱηΩϡϦςΟ
"84ͱηΩϡϦςΟ #secjaws ͍Ζ͍ΖΔ͜ͱ͕ଟͯ͘ɺ ͍͜͠ͱࢥͬͨ͜ͱ͋Γ·ͤΜ͔ શମ૾ΛѲ͢ΔͨΊʹɺͬ͘͟Γͱ ྨͯ͠Έ·͠ΐ͏
"84ͱηΩϡϦςΟ #secjaws "84ͷηΩϡϦςΟͭͷ࣠Ͱߟ͑Δ ᶃ"84ʹߏஙͨ͠ωοτϫʔΫͱαʔόʔͷηΩϡϦςΟ ᶄ"84ͷαʔϏε܈ͷઃܭɾઃఆ ᶅ"84ૢ࡞ʹؔ͢Δݖݶʢ*".ʣ ᶆηΩϡϦςΟΛҡ࣋ཧ͢ΔͨΊͷ"84αʔϏε AWS Management Console
Role VPC AWS Cloud Subnet Internet gateway Amazon Simple Storage Service (S3) VPN gateway Endpoints User ૢ࡞ݖݶ Instance Instance Instance AWS Lambda Role ᶅ ᶄ ᶃ AWS Command Line Interface AWS Config AWS Systems Manager AWS Service Catalog AWS Trusted Advisor AWS CloudTrail ᶆ ηΩϡϦςΟΛҡ࣋ ཧ͢ΔαʔϏε
ᶃ"84ʹߏஙͨ͠ωοτϫʔΫͱ αʔόʔͷηΩϡϦςΟ #secjaws ڞ༗Ϟσϧͷͷ෦ ઃܭͷߟ͑ํΦϯϓϨͱେ͖͘ҧΘͳ͍͕ɺઃఆͷ ํ"84ͷྲّྀʹै͏ඞཁ͕͋Δ IUUQTBXTBNB[PODPNKQDPNQMJBODFTIBSFESFTQPOTJCJMJUZNPEFM
ᶄ"84ͷαʔϏε܈ͷઃܭɾઃఆ #secjaws ͍ΘΏΔϚωʔδυαʔϏε ϢʔβʔࣗͰΧόʔ͢Δൣғগͳ͍͕ɺαʔϏε͝ ͱʹಛੑΛཧղ͢Δඞཁ͕͋Δ 㱺·ͣɺ͏ͷ͚֮ͩ͑Εྑ͍ IUUQTXXXTMJEFTIBSFOFU"NB[PO8FC4FSWJDFT+BQBOBXTXIJUFCFMUPOMJOFTFNJOBSBXT
ᶅ"84ͷૢ࡞ʹؔ͢Δݖݶʢ*".ʣ #secjaws "84ͷηΩϡϦςΟͷத֩ͷҰͭ ͲΜͳʹωοτϫʔΫαʔόʔͷηΩϡϦςΟઃఆΛ͠ ͍ͯͯɺ"84Λૢ࡞͞ΕΔͱ͕݀։͚ΒΕΔ ࠓͷςʔϚͰ͢ʂʂ
ᶆηΩϡϦςΟΛҡ࣋ཧ͢Δ ͨΊͷ"84αʔϏε #secjaws "84ಠࣗͷ෦ ར༻͠ͳͯ͘γεςϜΛηΩϡΞͳঢ়ଶΛҡ࣋Ͱ͖Δ͕ɺ ্ख͘׆༻͢ΔͱࣗྗͰΔΑΓഒָʹͳΔ ͷ+"846(ઍ༿Ͱɺ͜ͷςʔϚͰ͢༧ఆͰ͢ IUUQTKBXTVHDIJCBEPPSLFFQFSKQFWFOUT
ྨ͠ݴޠԽ͢Δ͜ͱʹΑΓ ཧղ͕ਐΉ #secjaws @kaitendaentais https://twitter.com/kaitendaentai/status/1052689241744896001
*".ͷઃܭΛݴޠԽ͢Δ
*".ͷϚχΞοΫͳͷհ https://takuros.booth.pm/items/1563844
*".ͷϚχΞοΫͳɹ࣍ ͡Ίʹ ୈষ"84ͱ*". ୈষ*".ͷػೳ ୈষ*".νϡʔτϦΞϧ ୈষ*".ϙϦγʔͷσβΠϯύλʔϯ ୈষ*".άϧʔϓͷσβΠϯύλʔϯ ୈষ*".ͱηΩϡϦςΟ ୈষ*".ͷӡ༻ ୈষ*".ͱ$MPVE'PSNBUJPO
ୈষ*".ͷςϯϓϨʔτू ୈষ*".Ҏ֎ͷ"84αʔϏεͷ׆༻ "ΞΧϯτ։ઃ࣌ͷઃఆνΣοΫϦετ #secjaws
*".ઃܭͷجຊํ
*".ઃܭͷجຊํ #secjaws कΔ͖جຊํ͚̎ͭͩ ೝূใΛ౪·Εͳ͍Α͏ʹ͢Δӡ༻ઃܭ ΞΫηεΩʔʗγʔΫϨοτΞΫηεΩʔͰͳ͘ϩʔϧͷར༻ HJUTFDSFUTͷར༻ ೝূใ͕౪·ΕͯඃΛ࠷খݶʹ͢Δݖݶઃܭ .'"ඞਢԽ*1੍ݶͳͲͷར༻੍ݶ ࠷খݖݶͷઃఆ
*".ϙϦγʔͷσβΠϯύλʔϯ
*".ϙϦγʔ *".ϙϦγʔͷσβΠϯύλʔϯ̏ͭ ϗϫΠτϦετɾύλʔϯ ϒϥοΫϦετɾύλʔϯ ϋΠϒϦοτɾύλʔϯ #secjaws
ڐՄ͢ΔݖݶͷΈ༩͍ͯ͘͠ύλʔϯɹɹ &$4ͱ͍ͬͨαʔϏε୯Ґɺߋʹࡉ͔͘ΞΫγϣϯ୯ҐͰ༩ "84ཧϙϦγʔɺ͋ΔҙຯϗϫΠτϦετύλʔϯ ˞Ͱɺͦͷ··͏ʹૈ͍ #secjaws ϗϫΠτϦετɾύλʔϯ FD %FTDSJCF 4UPQ 4UBSU
ಛఆͷαʔϏεɾΞΫγϣϯͷΈڐՄ ڋ൱ ڐՄ ڐՄ ڐՄ ڋ൱ ϝϦοτɹ ࠷খݖݶͷઃܭ͕Ͱ͖Δ ཧղͯ͠࡞ΕɺҰ൪ηΩϡΞ σϝϦοτɹ ઃܭ͕ਐ·ͳ͍ͱઃఆͰ͖ͳ͍ ཧෛՙ͕ߴ͍
ڋ൱ΛՃ͍ͯ͘͠ύλʔϯɹɹ ڐՄ͍͚ͯ͠ͳ͍ݖݶΛണୣ͍ͯ͘͠ #secjaws ϒϥοΫϦετɾύλʔϯ ڐՄ 4 &D *". ಛఆͷαʔϏεɾΞΫγϣϯͷΈڋ൱ ڐՄ
ڋ൱ ڋ൱ ڋ൱ ϝϦοτɹ ઃܭ͕࠷খݶʹͰ͖Δ ࣗ༝͕ߴ͍ σϝϦοτɹ ༧ظͤ͵αʔϏε͕ಥવ͑ΔΑ͏ ʹͳΔϦεΫ͕͋Δ
ϗϫΠτϦετɾϒϥοΫϦετͷΈ߹Θͤ ݖݶΛ༩্ͨ͠Ͱɺېࢭ͍ͨ͠ݖݶΛΔ ˞ݫີʹ͍͏ͱɺϒϥοΫϦετύλʔϯͯ͢ϋΠϒϦοτʹͳΔ #secjaws ϋΠϒϦοτɾύλʔϯ ڐՄ "ENJOJTUSBUPS "DDFTT &D ࠷ॳʹݖݶΛ༩ͯ͠ɺෆཁͳݖݶΛΔ
ϝϦοτɹ "84ཧϙϦγʔ͕͍͍͢ ࣗ༝͕ߴ͘ઃܭָ͕ σϝϦοτɹ ͋·Γແ͍ ɹ˞ॏͶ͕͚ํ๏ʹҙ *". ڋ൱
*".άϧʔϓͷσβΠϯύλʔϯ
*".άϧʔϓ *".άϧʔϓͷσβΠϯύλʔϯ̎ͭ ෳάϧʔϓʹॴଐ άϧʔϓʹෳͷϙϦγʔ #secjaws
Ϣʔβʔ͕ෳͷάϧʔϓʹଐ͢Δ͜ͱΛલఏʹݖݶઃఆɹ શࣾһ͚ͷڞ௨άϧʔϓͱׂผͷάϧʔϓ ֊ߏΛ࡞Γ͍͢ #secjaws ෳάϧʔϓʹॴଐ
Ϣʔβʔ͕ͭͷάϧʔϓʹଐ͢Δ͜ͱΛલఏʹݖݶઃఆ Ϣʔβ͔ΒΈΔͱγϯϓϧͳߏ ݖݶͷݟ௨͕͠ྑ͍ #secjaws άϧʔϓʹෳϙϦγʔ
ύλʔϯͷݪଇΛ౿·্͑ͨͰ ۩ମతͳઃܭʹམͱ͠ࠐΉ
ڞ௨Ͱར༻͢ΔϙϦγʔͰ·ͣݕ౼͢Δͷ͜ͷͭ .'"ඞਢԽඞͣ͢Δ͜ͱ *1੍ݶɺӡ༻ϙϦγʔͱ૬ஊɻ࡞ۀॴΛ੍ݶͰ͖Δͱ͍͏ޮՌ͕͋Δ #secjaws .'"ඞਢԽͱ*1੍ݶ \ &⒎FDU%FOZ "DUJPO
$POEJUJPO\ /PU*Q"EESFTT\ BXT4PVSDF*Q< > ^ ^ 3FTPVSDF ^ \ &⒎FDU%FOZ /PU"DUJPO< JBN > 3FTPVSDF $POEJUJPO\ #PPM*G&YJTUT\ BXT.VMUJ'BDUPS"VUI1SFTFOUGBMTF ^ ^ ^
"ENJOݖݶΛ༩্ͨ͠Ͱ੍ݶΛՃ͑Δ .'"ඞਢˍ*1ΞυϨε੍ݶ *1੍ݶΛͳͨ͘͢Ίͷཧऀ༻ϩʔϧ #secjaws ཧऀݖݶͷઃܭ 㱺εΠονલΛࢀরݖݶͷΈʹ͢Δͱ͍͏ઃܭΑ͋͘Δ
ϩάΠϯ࣌ࢀরݖݶͷΈ ࢀরݖݶͱ4XJUDI3PMFΛڐՄ͢ΔݖݶΛ༩ εΠονϩʔϧ͢Δ͜ͱʹΑΓཧऀݖݶ͕ར༻Մೳ ஈΫογϣϯΛஔ͘͜ͱʹΑΓɺΦϖϛεͷࢭޮՌΛૂ͏ #secjaws ཧऀݖݶͷ҆શઃܭ
৬ػೳͷ"84ཧϙϦγʔͷ׆༻ ಛఆͷ༻్͚ͷݖݶηοτʢ৬ػೳͷ"84ཧϙϦγʔʣ FDͷݖݶɺΠϯελϯεͷૢ࡞ͱωοτϫʔΫૢ࡞ؚ͕·Ε͍ͯΔͷͰ ҙ͕ඞཁ #secjaws ωοτϫʔΫཧऀͷઃܭ
౾ࣝT
1SJODJQBMΛߜΒͳ͍ͱɺશϢʔβʔ͕εΠονͰ͖Δ σϑΥϧτςϯϓϨʔτͷઃఆɺΞΧϯτͷϢʔβʔʹରͯ͠ ߜΔඞཁ͕͋ΓɺϢʔβʔࢦఆͰߜΔʢάϧʔϓͰ͖ͳ͍ʣ ผղͱͯ͠"TTVNF3PMFͷݖݶΛͯ͢ണୣͷ͏͑ͰɺඞཁͳϢʔβʔʹ ༩͢Δͱ͍͏ํ๏͋Δ #secjaws εΠονϩʔϧͷҙ \ 7FSTJPO
4UBUFNFOU< \ &⒎FDU"MMPX 1SJODJQBM\ "84BSOBXTJBN SPPU ^ "DUJPOTUT"TTVNF3PMF $POEJUJPO\^ ^ > ^ \ 7FSTJPO 4UBUFNFOU< \ &⒎FDU"MMPX 1SJODJQBM\ "84BSOBXTJBNVTFSUFTU VTFS ^ "DUJPOTUT"TTVNF3PMF $POEJUJPO\^ ^ > ^
ϕετϓϥΫςΟε͚ͩͲɻɻɻ ઃܭ͕ݻ·্ͬͨͰɺ*".ʹؔ͢Δߴͳ͕ࣝඞཁ ϓϩάϥϜతͳར༻ʹ͍͍ͯΔ͕ɺ"84ίϯιʔϧ͔Βͷར༻͍ ͍ͯͳ͍ ৽نαʔϏεͷՃʹऑ͍ ͦͦ"ENJOݖݶΛ͍࣋ͬͯΔਓ͔͠࠷খݖݶΛٻͰ͖ͳ͍ ઃܭɾӡ༻͕େ͖͍ ݱ࣮తͳӡ༻ ఆܕతͳ࡞ۀʢ-BNCEBɾόονʣͷΈ࠷খݖݶΛ༩ ਓؒܥͷ࡞ۀɺϒϥοΫϦετͷ׆༻ࢹʹ
ηΩϡϦςΟࣄނΛى͜͞ͳ͍ͱ͍͏؍Ͱ࠷খݖݶΛ୳ٻ #secjaws ࠷খݖݶͷδϨϯϚ
#secjaws ͜Ε͚͓͚ͩͬͯ "84ΞΧϯτʹ࠷ݶɺԼهͷઃఆΛ͢Δ ϧʔτΞΧϯτͷ.'"ઃఆ ཧऀ༻ͷ*".άϧʔϓͱ*".Ϣʔβʔͷ࡞ *".ύεϫʔυϙϦγʔͷద༻ $MPVE5SBJMͱ$POpH (VBSE%VUZͷ༗ޮԽ 5SVTUFE"EWJTPUSͷ&ϝʔϧ௨ઃఆ $PTU6TBHF3FQPSUͷग़ྗ
*".ϢʔβʔͷٻใͷΞΫηεڐՄ ࢧ͍௨՟Λຊԁʹมߋ ίετλάͷઃఆ ସ࿈བྷઌͷઃఆ
#secjaws ͜ΕͬͪΌμϝ *".Ͱ͜ΕΛͬͪΌμϝ ϧʔτϢʔβʔͰӡ༻ ར༻ऀશһɺ"ENJOݖݶ ཧऀҎ֎ʹ*".ݖݶΛ༩ ڞ༻ͷ*".Ϣʔβʔͷ࡞ ෳͷ$-*ɾϓϩάϥϜ͔Βͷ*".Ϣʔβʔʗϩʔϧͷڞ༻ ιʔείʔυʹΫϨσϯγϟϧʢΞΫηεΩʔɾγʔΫϨοτΞ ΫηεΩʔʣͷຒΊࠐΈ
-BNCEB'VMM"DDFTTͷ༩ ωοτϫʔΫཧऀҎ֎ʹ&$'VMM"DDFTTͷ༩ 4ͷΞΫηείϯτϩʔϧΛ*".͚ͩͰߦ͏ʢόέοτϙϦγʔ ͷซ༻ඞਢʣ
·ͱΊ
ࠓͨ͠ςʔϚ ྨ্ͨ͠ͰݴޠԽ͢ΔͱԿͱͳ͘ղ͔Δ ઃܭ͢Δ্Ͱɺ·ͣσβΠϯύλʔϯΛ࡞Δ ۩ମతͳϙϦγʔͷઃܭྫ *".ͷ౾ࣝ #secjaws
͓·͚ *".ຊʢμϯϩʔυ൛ʣΛ ϓϨθϯτ #secjaws
એ పఈ׆༻(PPHMFΞφϦςΟΫε σδλϧϚʔέςΟϯάΛޭʹ ಋ͘ղੳɾվળͷͨΊͷૢ࡞ΨΠυ IUUQTBN[OUP181M #secjaws