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.4k
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
17
5.4k
パフォーマンスとコスト制約から考えるアーキテクチャ設計(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.4k
JAWSUG初心者支部 IAMの「あ」の話
takuros
4
8.5k
Security-JAWS-Speciality-Study
takuros
0
5.5k
CloudFormation StackSets with AWS Organizations
takuros
3
5.7k
AWS認定セキュリティ - 専門知識 AWSのサービスを使って楽してセキュリティ向上!!
takuros
5
5.1k
Other Decks in Technology
See All in Technology
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
400
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
1
230
M3 Expressiveの思想に迫る
chnotchy
0
110
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
320
Delegating the chores of authenticating users to Keycloak
ahus1
0
120
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
210
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
120
本が全く読めなかった過去の自分へ
genshun9
0
550
エンジニア向け技術スタック情報
kauche
1
270
Wasm元年
askua
0
150
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
250
【PHPカンファレンス 2025】PHPを愛するひとに伝えたい PHPとキャリアの話
tenshoku_draft
0
120
Featured
See All Featured
Navigating Team Friction
lara
187
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Music & Morning Musume
bryan
46
6.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Thoughts on Productivity
jonyablonski
69
4.7k
Why Our Code Smells
bkeepers
PRO
337
57k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Rails Girls Zürich Keynote
gr2m
94
14k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
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