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
6.5k
AWS IAMポリシーのConditionを書くときの勘所
IAMポリシーのConditionを使うことで柔軟な権限設計を実現できます。今回はこの Conditionを書くときに意識したい「キーの可用性」の話をします。
MasahiroKawahara
July 25, 2022
Tweet
Share
More Decks by MasahiroKawahara
See All by MasahiroKawahara
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
470
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
290
AWS CLIとシェルスクリプト、いつ使う?活用できる場面とTips紹介 #devio2024 / AWS CLI and Shell Tips
masahirokawahara
0
1k
EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev
masahirokawahara
2
1.4k
SSM Inventory を使って便利に EC2 棚卸し(ハマりどころを添えて)
masahirokawahara
2
980
ここが嬉しいABAC ここが辛いよABAC #再解説+補足編
masahirokawahara
1
520
疲弊しない!AWSセキュリティ統制の考え方 #devio_osakaday1
masahirokawahara
6
8.1k
セキュリティ系アップデートの全体像とSecurity Hub深掘り #AWSreInvent #cmregrowth
masahirokawahara
0
1.6k
AWSのマルチアカウント管理を始めよう #AWSSummit
masahirokawahara
1
1.3k
Other Decks in Technology
See All in Technology
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
200
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
450
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
4
5.3k
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
C++26 エラー性動作
faithandbrave
2
730
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.3k
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
410
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Optimising Largest Contentful Paint
csswizardry
33
3k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Faster Mobile Websites
deanohume
305
30k
4 Signs Your Business is Dying
shpigford
181
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Typedesign – Prime Four
hannesfritz
40
2.4k
Done Done
chrislema
181
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Code Reviewing Like a Champion
maltzj
520
39k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
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