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
0
7.3k
AWS IAMポリシーのConditionを書くときの勘所
IAMポリシーのConditionを使うことで柔軟な権限設計を実現できます。今回はこの Conditionを書くときに意識したい「キーの可用性」の話をします。
MasahiroKawahara
July 25, 2022
Tweet
Share
More Decks by MasahiroKawahara
See All by MasahiroKawahara
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
1.7k
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
1.8k
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
1.1k
Amazon DevOps Guru のベースラインを整備して1ヶ月ほど運用してみた #jawsug_asa / Amazon DevOps Guru trial
masahirokawahara
3
470
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
2.3k
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
1k
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
560
AWS CLIとシェルスクリプト、いつ使う?活用できる場面とTips紹介 #devio2024 / AWS CLI and Shell Tips
masahirokawahara
0
1.5k
EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev
masahirokawahara
2
2.5k
Other Decks in Technology
See All in Technology
その意思決定、まだ続けるんですか? ~痛みを超えて未来を作る、AI時代の撤退とピボットの技術~
applism118
42
24k
生成AIが出力するテストコードのリアル よくあるコードと改善のヒント
starfish719
0
230
組織の“見えない壁”を越えよ!エンタープライズシフトに必須な3つのPMの「在り方」変革 #pmconf2025
masakazu178
1
930
AI駆動開発を実現するためのアーキテクチャと取り組み
baseballyama
17
13k
マルチドライブアーキテクチャ: 複数の駆動力でプロダクトを前進させる
knih
0
11k
LINEギフト・LINEコマース領域の開発
lycorptech_jp
PRO
0
390
経営から紐解くデータマネジメント
pacocat
3
480
.NET 10のEntity Framework Coreの新機能
htkym
0
120
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
2
530
クラウドネイティブ時代の 開発プロセス再設計 〜速さと品質を両立するには〜
moritamasami
0
120
Dev Containers と Skaffold で実現する クラウドネイティブ開発環境 ローカルのみという制約に挑む / Cloud-Native Development with Dev Containers and Skaffold: Tackling the Local-Only Constraint
bitkey
PRO
0
140
AI駆動開発2025年振り返りとTips集
knr109
1
110
Featured
See All Featured
Done Done
chrislema
186
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
940
The World Runs on Bad Software
bkeepers
PRO
72
12k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
Automating Front-end Workflow
addyosmani
1371
200k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Navigating Team Friction
lara
190
16k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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