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
AWSを始めるにあたってのAWS IAM基礎 / jawsug-niigata-8
Search
kasacchiful
PRO
May 09, 2020
Programming
410
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSを始めるにあたってのAWS IAM基礎 / jawsug-niigata-8
JAWS-UG新潟#8で発表した資料です。
kasacchiful
PRO
May 09, 2020
More Decks by kasacchiful
See All by kasacchiful
上越のサメ食文化を訪ねて - 新潟市民の初体験レポ / ssmjp-shark
kasacchiful
PRO
1
57
Rust on AWS でデータ分析 / 20260523iotlt-niigata-rust-on-aws
kasacchiful
PRO
0
25
Step Functionsで始めるサーバーレス入門 〜 つないで動かすAWSサーバーレス
kasacchiful
PRO
0
53
Amazon Q Developer CLI (現Kiro CLI) で作った 新潟ランチマップWebアプリのこれまでとこれから / 20260207jawsug-tochigi
kasacchiful
PRO
0
96
Amazon SageMaker Catalogの、AIエージェントによる自動データ分類機能を試してみようとしたが、できなかったので、代わりに最近構築したデータ連携基盤を紹介します / 20260117jawsug-fukui
kasacchiful
PRO
0
96
データファイルをAWSのDWHサービスに格納する / 20251115jawsug-tochigi
kasacchiful
PRO
2
280
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
PRO
0
900
ワイがおすすめする新潟の食 / 20250912jasst-niigata-lt
kasacchiful
PRO
1
59
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
PRO
1
160
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.1k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
The NotImplementedError Problem in Ruby
koic
1
620
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
310
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
240
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
320
AIエージェントの隔離技術の徹底比較
kawayu
0
460
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
Oxcを導入して開発体験が向上した話
yug1224
4
290
今さら聞けないCancellationToken
htkym
0
220
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.4k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
460
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
200
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Bash Introduction
62gerente
615
210k
First, design no harm
axbom
PRO
2
1.2k
Building the Perfect Custom Keyboard
takai
2
780
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
How to Ace a Technical Interview
jacobian
281
24k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
Typedesign – Prime Four
hannesfritz
42
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
AWSΛ࢝ΊΔʹ͋ͨͬͯͷ AWS IAMجૅ 2020-05-09 JAWS-UG৽ׁ#8 @kasacchiful
ࣗݾհ • ּݪ (@kasacchiful) • ৽ׁࢢࡏॅͷιϑτΣΞΤϯδχΞ • ͖ͳݴޠ: Ruby
• ݱࡏΑ͘৮͍ͬͯΔAWSαʔϏε: WorkSpaces / Amplify
༰ • IAMͱԿ͔Λͬ͘͟Γઆ໌ • IAMϢʔβʔ / άϧʔϓ / ϙϦγʔ /
ϩʔϧ • ·ͣ͜Ε͚͓͖͍ͩͬͯͨ͜ͱ5ͭ
JAWS-UG৽ׁͷϋϯζΦϯͰ… • IAMϢʔβ࡞ͯ͠AdministratorAccessϙϦγʔΛIAM άϧʔϓʹΞλον͍ͯ͠ΔͷͰɺIAM͔ͳΓ৮͍ͬͯΔ IUUQTHJUIVCDPNLBTBDDIJGVMKBXTVHOJJHBUBCMPCNBTUFS@SFHJTUSBUJPONE
IAM is Կʁ
AWS Identity and Access Management (IAM) • AWSͷૢ࡞ΛΑΓηΩϡΞʹ͢ΔͨΊͷ Έ •
ೝূɾೝՄ • AWSΛૢ࡞͢ΔͨΊͷϢʔβʔʗάϧʔϓʗϩʔϧͷ࡞ • Ϣʔβʔຖͷೝূใͷઃఆ • Ϣʔβʔʗάϧʔϓʗϩʔϧʹର࣮ͯ͠ߦͰ͖Δૢ࡞Λઃఆ
IAMΛ͏ʹ • AWSϚωδϝϯτίϯιʔϧ͔Βૢ࡞͢Δ͜ ͱ͕ଟ͍ • CLISDK͔ΒΞΫηεՄೳ
IAMϢʔβʔʗάϧʔϓʗϙ Ϧγʔ
IAMϢʔβʔʗάϧʔϓʗϙϦγʔ • IAMϢʔβʔ: Ϣʔβʔͷ1୯Ґ • IAMάϧʔϓ: IAMϢʔβʔΛ·ͱΊͨͷ • IAMϙϦγʔ: ݖݶઃఆ
ରԠؔ *".Ϣʔβ " *".Ϣʔβ # *".Ϣʔβ $
ରԠؔ *".Ϣʔβ " *".Ϣʔβ # *".Ϣʔβ $ *".άϧʔϓ ཧऀ *".άϧʔϓ
։ൃऀ
ରԠؔ *".Ϣʔβ " *".Ϣʔβ # *".Ϣʔβ $ *".άϧʔϓ ཧऀ *".άϧʔϓ
։ൃऀ ϙϦ γʔ ϙϦ γʔ
ରԠؔ *".Ϣʔβ " *".Ϣʔβ # *".Ϣʔβ $ *".άϧʔϓ ཧऀ *".άϧʔϓ
։ൃऀ ϙϦ γʔ ϙϦ γʔ ϙϦ γʔ
ରԠؔ *".Ϣʔβ " *".Ϣʔβ # *".Ϣʔβ $ *".άϧʔϓ ཧऀ *".άϧʔϓ
։ൃऀ ϙϦ γʔ ϙϦ γʔ ϙϦ γʔ "84ΞΧϯτ
AWSΞΧϯτ (ϧʔτϢʔβʔ) جຊ༻͠ͳ͍ • AWSΞΧϯτͳΜͰͰ͖Δ͕Ώ͑ʹɺ ࿙Ӯͨ͠߹ɺऔΓฦ͠ͷ͔ͭͳ͍ࣄଶʹ • جຊతʹతʹԠͯ͡IAMϢʔβʔϩʔϧ Λ࡞ͯ͠ΞΫηε͢Δ͜ͱͰɺ֤ʑͷΞΫ ηεཧɾঝೝɾࠪ
(CloudTrail) ͢Δ͜ͱ ͕Մೳʹ
IAMϢʔβ࡞࣌ͷ AWSΞΫηεͷछྨͷબ "84$-*"844%,ɺ ϓϩάϥϜ͔Β"84ʹΞΫηε͢Δࡍʹඞཁ "84Ϛωδϝϯτίϯιʔϧʹ ΞΫηε͢Δࡍʹඞཁ
git-secretsͰΞΫηεΩʔ࿙Ӯ Λ͙ IUUQTHJUIVCDPNBXTMBCTHJUTFDSFUT
IAMϙϦγʔ • ͲͷAWSαʔϏεʢϦιʔεʣʹରͯ͠ • ͲͷΑ͏ͳΞΫγϣϯΛ • ڐՄ or ڋ൱ ͢Δ
ΛJSONܗࣜͰهड़ͨ͠ͷ
IAMϙϦγʔ • ͲͷAWSαʔϏεʢϦιʔεʣʹରͯ͠ • ͲͷΑ͏ͳΞΫγϣϯΛ • ڐՄ or ڋ൱ ͢Δ
ΛJSONܗࣜͰهड़ͨ͠ͷ 3FTPVSDF "DUJPO &⒎FDU
IAMϙϦγʔαϯϓϧ { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:*",
"Resource": "*", "Condition": { "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"}, "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"} } } } IUUQTEPDTBXTBNB[PODPNKB@KQ*".MBUFTU6TFS(VJEFSFGFSFODF@QPMJDJFT@FYBNQMFT@BXTEBUFTIUNM ಛఆͷͰΞΫηεΛڐՄ͢Δ
ϙϦγʔͷධՁ݁Ռ • Կ໌ࣔ͞Ε͍ͯͳ͚ΕɺσϑΥϧτͰ ʮڋ൱ʯ • ʮڐՄʯ͕͋ΕɺʮڐՄʯ • ໌ࣔతʹʮڋ൱ʯ͕͋Εɺͨͱ͑ʮڐՄʯ ͕͋Ζ͏ͱɺʮڋ൱ʯ
ϙϦγʔͷධՁ݁Ռ ڐՄͷεςʔτϝϯτهड़͕ ͋Δ ͳ͍ ڋ൱ͷεςʔ τϝϯτهड़ ͕ ͋Δ ڋ൱ ڋ൱
ͳ͍ ڐՄ ڋ൱ ʢσϑΥϧτʣ
IAMϙϦγʔͷछྨ • AWSཧϙϦγʔ • Α͘͏ݖݶઃఆΛAWS͕༻ҙ͍ͯ͠ΔϙϦγʔ • ΧελϚʔཧϙϦγʔ • զʑ͕ࣗ࡞ͨ͠ϙϦγʔ •
IAMϢʔβɺάϧʔϓɺϩʔϧʹΞλονͰ͖Δ • ΠϯϥΠϯϙϦγʔ • IAMϢʔβɺάϧʔϓɺϩʔϧʹॻ͖ࠐΜͩϙϦγʔ • ଞͷIAMϢʔβͳͲʹΞλονͰ͖ͳ͍͕ɺ1ର1ͷద༻ʹศར
IAMϙϦγʔͷछྨ • AWSཧϙϦγʔ • Α͘͏ݖݶઃఆΛAWS͕༻ҙ͍ͯ͠ΔϙϦγʔ • ΧελϚʔཧϙϦγʔ • զʑ͕ࣗ࡞ͨ͠ϙϦγʔ •
IAMϢʔβɺάϧʔϓɺϩʔϧʹΞλονͰ͖Δ • ΠϯϥΠϯϙϦγʔ • IAMϢʔβɺάϧʔϓɺϩʔϧʹॻ͖ࠐΜͩϙϦγʔ • ଞͷIAMϢʔβͳͲʹΞλονͰ͖ͳ͍͕ɺ1ର1ͷద༻ʹศར ͡Ίɺ"84ཧϙϦγʔ Λ͏·ͬͯ͘ઃఆͯ͠ΈΑ͏ ׳Ε͖ͯͨΒɺಠࣗʹϙϦγʔ Λ࡞ͯ͠ઃఆͯ͠ΈΑ͏
IAM Policy Generator *".1PMJDZΛ બ IUUQTBXTQPMJDZHFOTBNB[POBXTDPNQPMJDZHFOIUNM
IAMϩʔϧ
IAMϩʔϧ • ୈ3ऀʹʮݖݶΛҕৡʯ͢ΔͨΊʹ༻ • AWSϦιʔεIAMϢʔβʹϩʔϧΛ௨ͯ͠ݖݶΛ༩Ͱ ͖Δ • Α͘ΘΕΔྫ: • EC2ʹS3ΞΫηεՄೳͳIAMϩʔϧΛΞλον
• LambdaʹS3ΞΫηεՄೳͳIAMϩʔϧΛΞλον
JAWS-UG৽ׁͷϋϯζΦϯͰ… • EC2LambdaͷϋϯζΦϯͰIAMϩʔϧΛ༻ͯ͠ݖݶ Λ༩͍ͯ͠Δ IUUQTHJUIVCDPNLBTBDDIJGVMKBXTVHOJJHBUBCMPCNBTUFS@FD@BWBJMBCJMJUZNE IUUQKBXTVHOJJHBUBIBOETPOTXFCTJUFBQOPSUIFBTUBNB[POBXTDPN@MBNCEB@T@IBOETPOIUNM
Կ͕͏Ε͍͠ͷ͔ • ΞΫηεΩʔΛऔಘ͠ͳͯ͘ࡁΉͷͰɺηΩϡΞʹΞΫη εͰ͖ΔΑ͏ʹͳΔɻ IUUQTHJUIVCDPNLBTBDDIJGVMKBXTVHOJJHBUBCMPCNBTUFS@FD@BWBJMBCJMJUZNE IUUQKBXTVHOJJHBUBIBOETPOTXFCTJUFBQOPSUIFBTUBNB[POBXTDPN@MBNCEB@T@IBOETPOIUNM
ΫϩεΞΧϯτΞΫηε • ผͷAWSΞΧϯτʹ͋ΔϦιʔεΞΫη εΛҕ͢Δํ๏ͰɺIAMϩʔϧΛ༻͢Δ IUUQTEPDTBXTBNB[PODPNKB@KQ*".MBUFTU6TFS(VJEFUVUPSJBM@DSPTTBDDPVOUXJUISPMFTIUNM
·ͣ͜Ε͚͓͖ͩͬͯͨ ͍͜ͱ5ͭ
·ͣ͜Ε͚͓͖͍ͩͬͯͨ ͜ͱ5ͭ • IAMͷμογϡϘʔυʹܝࡌ͞Ε͍ͯΔ5ͭͷ߲Λશͯྃʹ͠ ͓͖͍ͯͨ • ͓·͚: IAMͷμογϡϘʔυʹܝࡌ͞Ε͍ͯΔIAMϢʔβʔͷα ΠϯΠϯϦϯΫΛΧελϚΠζ͓͖͍ͯͨ͠
ϧʔτΞΧϯτͷMFA༗ޮԽ • AWSΞΧϯτʢϧʔτΞΧϯτʣʹMFA ʢଟཁૉೝূʣΛઃఆ͓ͯ͜͠͏ • Google AuthenticatorɺAuthyͷԾMFA ΛઃఆͰ͖ΔΞϓϦΛ༻͢ΔͱศརͰ͢ɻ
ݸʑͷIAMϢʔβʔͷ࡞ & άϧʔϓΛ༻ͨ͠ΞΫηεڐՄͷׂΓͯ • IAMϢʔβ࡞ͯ͠ɺIAMάϧʔϓͬͯIAM ϙϦγʔΛׂΓͯ·͠ΐ͏
IAMύεϫʔυϙϦγʔͷద༻ • ύεϫʔυϙϦγʔΛઃఆ͠Α͏
ΞΫηεΩʔͷϩʔςʔγϣϯ • ϓϩάϥϜͰ༻͢ΔΞΫηεΩʔগͳͯ͘1ճมߋ͠· ͠ΐ͏ • ະ༻ͷΞΫηεΩʔআ͠·͠ΐ͏
͓·͚: IAMϢʔβʔͷαΠϯ ΠϯϦϯΫͷΧελϚΠζ • σϑΥϧτʮAWSΞΧϯτIDʯ͕ઃఆ͞Ε͍ͯΔ • ΧελϚΠζ͓ͯ͘͠ͱɺϚωδϝϯτίϯιʔϧͷαΠϯΠϯ ʹͯɺAWSΞΧϯταΠϯΠϯը໘ͱIAMϢʔβʔαΠϯΠϯ ը໘ΛΓସ͑͘͢ͳΔͣ ΧελϚΠζͨ͠จࣈྻ
ʢΞΧϯτΤΠϦΞεʣ
·ͱΊ
·ͱΊ • IAMɺೝূɾೝՄΛ࢘ΔେࣄͳαʔϏε • AWSΞΧϯτͰͳ͘ɺIAMϢʔβͰૢ࡞͠Α͏ • ·ͣηΩϡϦςΟεςʔλε5߲શ͓ͯྃͯ͜͠͏ • IAMαΠϯΠϯϦϯΫͷΧελϚΠζ͓ͯ͘͠ͱศར •
IAMϙϦγʔͰඞཁ࠷খݶͷݖݶΛઃఆͰ͖Εɺॳ৺ऀ͔Βதڃऀ Ұา౿Έग़ͤΔ • αʔϏεؒ࿈ܞʹIAMϩʔϧΛઃఆ͠Α͏
͓ΘΓ