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 IAMポリシーのConditionを書くときの勘所
Search
MasahiroKawahara
July 25, 2022
Technology
7.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS IAMポリシーのConditionを書くときの勘所
IAMポリシーのConditionを使うことで柔軟な権限設計を実現できます。今回はこの Conditionを書くときに意識したい「キーの可用性」の話をします。
MasahiroKawahara
July 25, 2022
More Decks by MasahiroKawahara
See All by MasahiroKawahara
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
600
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
2
2.7k
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
20
48k
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
33k
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
4k
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
2.1k
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
2.6k
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
1.7k
Amazon DevOps Guru のベースラインを整備して1ヶ月ほど運用してみた #jawsug_asa / Amazon DevOps Guru trial
masahirokawahara
3
900
Other Decks in Technology
See All in Technology
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.2k
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
530
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.5k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
地域 SRE コミュニティ最前線 / SRE NEXT 2026 Discussion Night Track C
muziyoshiz
0
220
貴方はどのエンジニアリングを磨くのか
hatyibei
0
130
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
180
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
120
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
270
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
100
AICoEでAIネイティブ組織への進化
yukiogawa
0
170
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
1
360
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
Become a Pro
speakerdeck
PRO
31
6k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
560
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Test your architecture with Archunit
thirion
1
2.3k
Fireside Chat
paigeccino
42
4k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
The untapped power of vector embeddings
frankvandijk
2
1.8k
Transcript
*".ϙϦγʔͷ $POEJUJPOΛॻ͘ͱ͖ͷצॴ dΩʔͷՄ༻ੑͷd "84ࣄۀຊ෦ ݪେ
ఆࢹௌऀ Ø *".ϢʔβʔϩʔϧͷݖݶཧΛ͍ͯ͠Δਓ ü $POEJUJPOΛͬͨॊೈͳݖݶઃܭΛݕ౼த Ø "84Λֶश͍ͯ͠Δਓ ü ϕʔγοΫͳ*".ϙϦγʔॻ͍ͨ͜ͱ͕͋Δ ü
$POEJUJPOͷࡉ͔͍͍ํΛѲ͍ͨ͠ 3
࣍ લఏࣝ ΩʔՄ༻ੑͷ $POEJUJPOઃܭͷ 4
5 લఏࣝ ✎τϐοΫ✎ *".ϙϦγʔ ϦΫΤετίϯςΩετ ݅Ωʔ ϙϦγʔม $POEJUJPO۟
6 *".ϙϦγʔ
*".ϙϦγʔͱ ݖݶΛఆΊͨͷɻ+40/ܗࣜͰॻ͘ Ø ୭͕ <1SJODJQBM> Ø ͲͷϦιʔεʹରͯ͠ <3FTPVSDF> Ø ͲͷΞΫγϣϯΛ
<"DUJPO> Ø ҙ Ͳͷ݅ԼͰ <$POEJUJPO>˞ࠓͷτϐοΫ Ø ڐՄڋ൱͢Δ͔ <&GGFDU> 7
*".ϙϦγʔཁૉͷΠϝʔδ ը૾"84ʹ͓͚Δ"#"$ͷخ͠͞ɺਏ͞ΛޠΓ·ͨ͠ ",*#""84c%FWFMPQFST*0 8
9 ϦΫΤετίϯςΩετ
ϦΫΤετίϯςΩετͱ ϦΫΤετʹؔ͢ΔใΛ·ͱΊͨͷ ڐՄڋ൱Λܾఆ͢ΔͨΊͷΠϯϓοτ 10
ϦΫΤετίϯςΩετͷΩʔ ݅Ωʔ ͱ ಛఆཁૉΛࢦͨ͢ΊͷΩʔ ݅ΩʔͱݺͿ ओʹ$POEJUJPO۟Ͱ͏ͨΊ 11
12 ݅Ωʔ
݅Ωʔͷछྨ छྨ͋Δ Ø άϩʔόϧ݅Ωʔ ྫ aws:username Ø αʔϏεݻ༗ͷ݅Ωʔ ྫ ec2:Vpc
13
άϩʔόϧ݅Ωʔ 14 AWS グローバル条件コンテキストキー - AWS Identity and Access Management
αʔϏεݻ༗ͷ݅Ωʔ ˞Ϧιʔε୯Ґ ͘͠ ΞΫγϣϯ YϦιʔε୯Ґ 15 AWS のサービスのアクション、リソース、および条件キー - サービス認証リファレンス
16 ϙϦγʔม
ϙϦγʔม ʮϦΫΤετίϯςΩετͷΩʔͷʯΛࢦ͢ͷ ͜ΕΛ*".ϙϦγʔͷʹࢦఆͰ͖Δ 17
18 $POEJUJPO۟
*".ϙϦγʔͷ$POEJUJPO۟ ϙϦγʔ͕ద༻ ڐՄڋ൱ ͞ΕΔ݅Λهड़Ͱ͖Δ 19
$POEJUJPO׆༻ͷྫ Ø ݅Ωʔ Ø ݅Ωʔͷ Ø ݅ԋࢉࢠ 20
$POEJUJPO׆༻ͷྫ ݅Ωʔ Ø ݅Ωʔ Ø ݅Ωʔͷ Ø ݅ԋࢉࢠ 21 ϦΫΤετίϯςΩετͷΩʔ
$POEJUJPO׆༻ͷྫ ݅Ωʔͷ Ø ݅Ωʔ Ø ݅Ωʔͷ Ø ݅ԋࢉࢠ 22 ۩ମతͳจࣈྻɺ͘͠
ϙϦγʔม
$POEJUJPO׆༻ͷྫ ݅ԋࢉࢠ Ø ݅Ωʔ Ø ݅Ωʔͷ Ø ݅ԋࢉࢠ 23 ʮ݅Ωʔͷʯͱʮ࣮ࡍͷϦ
ΫΤετίϯςΩετͷʯΛ Ͳͷج४Ͱൺֱ͢Δ͔
݅ԋࢉࢠͷྫ Ø จࣈྻͷൺֱ StringEquals/StringNotEquals Ø ͷൺֱ NumericLessThan/NumericGreaterThan Ø ݅Ωʔͷ༗ແνΣοΫNull Ø
ͳͲ 24
ࢀߟ ͲΕ͕݅ΩʔʁͲΕ͕ϙϦγʔมʁ Ø ݅Ωʔ Ø $POEJUJPO۟Ͱ͏ Ø +40/ͷʮΩʔʯ෦Ͱ͏ Ø ϙϦγʔม
Ø $POEJUJPO۟ ͘͠ 3FTPVSDF۟Ͱ͏ Ø +40/ͷʮΩʔͷʯ෦Ͱ͏ Ø ${} ͰׅΔ 25
ࢀߟ ϙϦγʔͷධՁཧ"/% 03 26 ը૾4όέοτϙϦγʔͷ۩ମྫͰֶͿ"84ͷ1PMJDZυΩϡϝϯτ c%FWFMPQFST*0
27 ΩʔՄ༻ੑͷ ✎τϐοΫ✎ ΩʔͷՄ༻ੑ ݅Ωʔ͕ແ͍ͱ͖ͷڍಈ ϙϦγʔม͕ແ͍ͱ͖ͷڍಈ
͡Ίʹ·ͱΊ Ø ϦΫΤετίϯςΩετͷΩʔʹՄ༻ੑ͕͋Δ Ø ࢦఆͨ݅͠Ωʔ͕ແ͍ͱ͖ɺෆҰக GBMTF ͱ͠ ͯѻΘΕΔ ü ූ߸సܥͷ݅ԋࢉࢠͷ߹ɺUSVFʹͳΔ
Ø ࢦఆͨ͠ϙϦγʔม͕ແ͍ͱ͖ɺͦͷεςʔτ ϝϯτແޮʹͳΔ 28
29 ΩʔͷՄ༻ੑ
ΩʔͷՄ༻ੑʁ ϦΫΤετͷ༰࣍ୈͰɺಛఆΩʔ͕ ଘࡏ͢Δέʔεɺଘࡏ͠ͳ͍έʔε͕͋Δ 30
ΩʔͷՄ༻ੑͷௐํ άϩʔόϧ݅Ωʔ υΩϡϝϯτʹهࡌ 31 AWS グローバル条件コンテキストキー #aws:ResourceTag - AWS Identity
and Access Management
ΩʔͷՄ༻ੑͷௐํ αʔϏεݻ༗ͷ݅Ωʔ Ϧιʔε୯Ґ ͘͠ΞΫγϣϯ º Ϧιʔε୯ҐͰՄ༻ੑ͕ܾఆ 32 AWS のサービスのアクション、リソース、および条件キー -
サービス認証リファレンス
Ωʔແ͍ͱ͖ͷڍಈΛѲ͠Α͏ Ø ࢦఆͨ͠ʮ݅Ωʔʯ͕ແ͍ͱ͖ Ø ࢦఆͨ͠ʮϙϦγʔมʯ͕ແ͍ͱ͖ 33
Ωʔແ͍ͱ͖ͷڍಈΛѲ͠Α͏ Ø ࢦఆͨ͠ʮ݅Ωʔʯ͕ແ͍ͱ͖ Ø ࢦఆͨ͠ʮϙϦγʔมʯ͕ແ͍ͱ͖ 34
ࢦఆͨ͠ʰ݅Ωʔʱ͕ແ͍ͱ͖ͷڍಈ ෆҰக GBMTF ͱͯ͠ѻΘΕΔ 35
ࢦఆͨ͠ʰ݅Ωʔʱ͕ແ͍ͱ͖ͷڍಈ ⾠ ͨͩ͠ʮNot ݅ԋࢉࢠʯͷ߹ USVF ʹͳΔ 36
Ωʔແ͍ͱ͖ͷڍಈΛѲ͠Α͏ Ø ࢦఆͨ͠ʮ݅Ωʔʯ͕ແ͍ͱ͖ Ø ࢦఆͨ͠ʮϙϦγʔมʯ͕ແ͍ͱ͖ 37
ࢦఆͨ͠ʰϙϦγʔมʱ͕ແ͍ͱ͖ͷڍಈ ⾠ εςʔτϝϯτ͕ແޮʹͳΔ 38
39 ͜͜Ͱ
͜͜Ͱ ʲέʔεʳ ʲέʔεʳ %FOZ͞ΕΔ PS͞Εͳ͍ʁ 40
͜͜Ͱ ʲέʔεʳ ʲέʔεʳ %FOZ͞ΕΔ PS͞Εͳ͍ʁ 41 ʮϓϦϯγύϧ ϩʔϧ ͷ 1SPKFDUλάʯͱ
ʮϦιʔε &$ ͷ 1SPKFDUλάʯ͕ Ұக͠ͳ͍ͱ͖ʹ &$ΠϯελϯεͷىಈఀࢭΛڋ൱͢Δ
͜͜Ͱ ʲέʔεʳ ʲέʔεʳ %FOZ͞ΕΔ PS͞Εͳ͍ʁ 42 ʲέʔεʳ ϩʔϧʹ1SPKFDUλάΛ͚Εͨ
͜͜Ͱ ʲέʔεʳ ʲέʔεʳ %FOZ͞ΕΔ PS͞Εͳ͍ʁ 43 ʲέʔεʳ Πϯελϯεʹ1SPKFDUλάΛ͚Εͨ
͜͜Ͱ ʲέʔεʳ ʲέʔεʳ %FOZ͞ΕΔ PS͞Εͳ͍ʁ 44
·ͣ͑ ʲέʔεʳ%FOZ͞ΕΔ ʲέʔεʳ%FOZ͞Εͳ͍ 45
ʲέʔεʳ%FOZ͞ΕΔ ݅Ωʔ͕ແ͍ঢ়ଶͳͷͰ ෆҰக GBMTF ѻ͍ ‑ ͨͩɺ݅ԋࢉࢠ StringNotEquals ‑ ූ߸సͷ݅ԋࢉࢠͳͷͰɺ
USVF ʹͳΔ ‑ ϙϦγʔ࣮ߦ %FOZ 46
ʲέʔεʳ%FOZ͞Εͳ͍ ϙϦγʔม͕ແ͍ঢ়ଶ ‑ εςʔτϝϯτແޮ ‑ ϙϦγʔ࣮ߦ͞Εͳ͍ %FOZ͞Εͳ͍ 47
48 $POEJUJPOઃܭͷ ✎τϐοΫ✎ IfExists, Null, ϙϦγʔมͷσϑΥϧτ
49 ݅ΩʔΛߟྀͨ͠ $POEJUJPOઃܭ
݅Ωʔͷ߹ Ωʔ͕ແ͍ͱ͖ͷʮϙϦγʔΛ࣮ߦ͢Δ͠ͳ͍ʯΛ ίϯτϩʔϧ͠Α͏ʂ Ø USVF ϙϦγʔΛ࣮ߦ͢Δ ͱ͍͔ͨ͠ Ø GBMTF ϙϦγʔΛ࣮ߦ͠ͳ͍
ͱ͍͔ͨ͠ 50
ʮ݅Ωʔ͕ແ͍ʯͱ͖ʹ USVF ʹ͢Δ ...IfExists ݅ԋࢉࢠΛ͓͏ʂ Ø NullΛআ͘ શͯͷ݅ԋࢉࢠͷඌʹՃՄೳ ü ݅Ωʔ͕ແ͍ͱ͖ʹ
USVF ͱͳΔ 51 ✎ϙΠϯτ✎ ʮ݅ԋࢉࢠʹࠨӈ͞Εͳ͍ʯ
ʮ݅Ωʔ͕ແ͍ʯͱ͖ʹ GBMTF ʹ͢Δ “Null”: {“key”: false} Λه͠Α͏ʂ Ø Null ݅ΩʔͷଘࡏఆͰ͑Δ݅ԋࢉࢠ
ü USVF Ωʔ͕ଘࡏ͠ͳ͍ ·ͨ GBMTF Ωʔ͕ଘࡏ͢Δ 52 ✎ϙΠϯτ✎ ʮ݅ԋࢉࢠʹࠨӈ͞Εͳ͍ʯ
53 ϙϦγʔมΛߟྀͨ͠ $POEJUJPOઃܭ
ϙϦγʔมͷ߹ Ωʔ͕ແ͍ͱ͖ͷڍಈΛίϯτϩʔϧ͠Α͏ʂ Ø σϑΥϧτͷࢦఆ Ø Null ͷ໌ࣔతͳهࡌ 54
ϙϦγʔมͷ σϑΥϧτ ࢦఆ Ωʔ͕ແ͍ͱ͖ͷσϑΥϧτΛࢦఆՄೳ ॻ͖ํ${key,‘default-value’} 55 ✎ϙΠϯτ✎ ʮεςʔτϝϯτແޮԽΛճආʯ
Null ͷ໌ࣔతͳهࡌ Null Λ໌ࣔతʹهࡌͯ͠ ʮΩʔ͕͋ΔલఏͷεςʔτϝϯτʯΛࣔ͢ 56 ✎ϙΠϯτ✎ ʮϙϦγʔ࣮ߦ݅Λ໌ࣔతʹهࡌʯ
Null ͷ໌ࣔతͳهࡌ 57 ➥Ωʔ͕ͳ͍ͱ͖ Ø /VMMͷ෦Ͱ GBMTFͱͳΔ Ø ͜ͷ࣌Ͱ $POEJUJPO෦͕
GBMTFʹͳ Δ͜ͱ͕֬ఆ͢Δ˞ Ø ϙϦγʔ࣮ߦ͞Εͳ͍ ➥Ωʔ͕ͳ͍ͱ͖ Ø ϙϦγʔมʹࢦఆͨ͠Ωʔ͕ແ͍ Ø εςʔτϝϯτ͕ແޮʹͳΔ Ø ϙϦγʔ࣮ߦ͞Εͳ͍ ˞$POEJUJPOશ݅ͷ"/%Ͱ ධՁ͞ΕΔͨΊ
58 ·ͱΊ
·ͱΊ ΩʔͷՄ༻ੑͱڍಈͷ Ø ϦΫΤετίϯςΩετͷ ΩʔʹՄ༻ੑ͕͋Δ Ø ݅Ωʔ͕ແ͍ͱ͖ ෆҰக GBMTF ü
/PUܥͷ߹ USVF Ø ϙϦγʔม͕ແ͍ͱ͖ εςʔτϝϯτແޮ 59 ϙϦγʔม ੍ޚͷ Ø σϑΥϧτͷࢦఆ Ø Nullͷ໌ࣔతͳهࡌ ݅Ωʔ ੍ޚͷ Ø USVFʹ͍ͨ͠ͱ͖ IfExists Ø GBMTFʹ͍ͨ͠ͱ͖ Null
None
ࢀߟ • "84 • "84άϩʔόϧ݅ίϯςΩετΩʔ "84*EFOUJUZBOE"DDFTT.BOBHFNFOU • "84ͷαʔϏεͷΞΫγϣϯɺϦιʔεɺ͓Αͼ݅Ωʔ
αʔϏεೝূϦϑΝϨϯε • *".+40/ϙϦγʔཁૉ݅ԋࢉࢠ "84*EFOUJUZBOE"DDFTT.BOBHFNFOU • ϙϦγʔͷཁૉมͱλά "84*EFOUJUZBOE"DDFTT.BOBHFNFOU • %FWFMPQFST*0 • 4όέοτϙϦγʔͷ۩ମྫͰֶͿ"84ͷ1PMJDZυΩϡϝϯτ c%FWFMPQFST*0 • ʲ"84*".ʳ$POEJUJPOͷ݅ΩʔϙϦγʔมՄ༻ੑΛҙࣝ͠Α͏ʂͱ͍͏ c %FWFMPQFST*0 • খωλ"84*".ϙϦγʔͷ $POEJUJPOͰ͑Δ݅ԋࢉࢠ l/VMMzͷ͍ΈͪΛߟ͑Δ c %FWFMPQFST*0 • "84ʹ͓͚Δ"#"$ͷخ͠͞ɺਏ͞ΛޠΓ·ͨ͠ ",*#""84c%FWFMPQFST*0 61