Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
minimum-guardrails-by-aws-iam
Search
chadain
August 17, 2021
Technology
2.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
minimum-guardrails-by-aws-iam
Minimum Guardrails by AWS IAM
chadain
August 17, 2021
More Decks by chadain
See All by chadain
AWS Control Towerと HashiCorp Terraformでいい感じにマルチアカウント管理をしよう
chazuke4649
1
4.8k
Account Factory for Terraform (AFT) 入門
chazuke4649
1
2.7k
"Are you Well-Architected?" Introducing about Cloud Optimization Aseesment
chazuke4649
0
1.1k
re:GrowthOSAKA2019-CoreServicesUpdate(IAM.S3.EC2)
chazuke4649
0
1.8k
How to think about Acsess controll of Amazon S3 simply
chazuke4649
1
2.2k
Other Decks in Technology
See All in Technology
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
140
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
800
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
410
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
420
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
340
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
170
Oracle Database Security 詳細解説
oracle4engineer
PRO
2
260
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
1
160
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
1
210
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
420
企画からFlutter実装まで、1つの機能を一貫して開発したプロセスと成果物
khiroyuki1003
1
160
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
560
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
433
67k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
560
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Six Lessons from altMBA
skipperchong
29
4.6k
Building Applications with DynamoDB
mza
96
7.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
600
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
390
Transcript
AWS IAMだけでなんとかする、 最低限のガードレール クラスメソッド株式会社 コンサルティング部 ちゃだいん
目次 • そもそもガードレールとは • 最低限防ぎたいこと • 実装方法のフローチャート • 1. MFAの強制
• 2. 特定のアクションを禁止する • 3. IAMロール作成はOK、IAMユーザー作成はNG
自己紹介 • 名前: ちゃだいん • 所属: AWS事業本部 コンサルティング部 • 役割:
ソリューションアーキテクト • ジョイン: 2019.1~ • Fav: クラフトビール(IPA)、茶碗蒸し
そもそもガードレールとは
ガードレール? • セキュリティ・ガバナンスに関する新めの概念(守り→攻め) • ゲートからガードレールへ ◦ いままで:ゲート(都度関所のように止めていた) ◦ これから:ガードレール(基本自由、でも立ち入り禁止区域には入れない) •
ビジネスや開発のスピードを止めず、必要十分なセキュリティ・ガバナンスを担保す る方法 • むしろ、ガードレールがない道路より、ガードレールがある道路の方がスピードを出 せるはず(崖から落ちる心配をしないでOK)
• 予防的ガードレール ◦ 禁止事項を未然に防止する ◦ IAMポリシー ◦ SCP • 発見的ガードレール
◦ 禁止事項を事後検出する ◦ Security Hub ◦ Configルール 2つのガードレールの概念
最低限防ぎたいこと
• アクセスキーの漏洩 • 基本設定の変更・削除 • クラウド破産 • 権限昇格 • ...
ワークロード、ユースケース、組織文化によって様々 最低限防ぎたいことの例
実装方法のフローチャート
超カンタンなフローチャート マルチアカウント戦略 やりたい? or Organizations 使いたい? No Yes • IAMポリシー
• パーミッションバウンダリー • スイッチロール • Organizations • SCP • AWS SSO マルチアカウントじゃない or マルチアカウントだけど、Organizations使わない(使えない) マルチアカウントで、 Organizations使いたい
今回紹介するのはこちら マルチアカウント戦略 やりたい? or Organizations 使いたい? No Yes • IAMポリシー
• パーミッションバウンダリー • スイッチロール • Organizations • SCP • AWS SSO マルチアカウントじゃない or マルチアカウントだけど、Organizations使わない(使えない) マルチアカウントで、 Organizations使いたい
ただし... マルチアカウント戦略 やりたい? or Organizations 使いたい? No Yes • IAMポリシー
• パーミッションバウンダリー • スイッチロール • Organizations • SCP • AWS SSO マルチアカウントじゃない or マルチアカウントだけど、Organizations使わない(使えない) マルチアカウントで、 Organizations使いたい 正直、今回やる「最低限のガードレール」は、 Organizations/SCP/AWS SSOを使う方がカンタン&オススメ。 ただし、全ての利用者で Organizationsが利用できる訳ではない ので、今回のパターン( IAMだけでなんとかする パターン) をご 紹介します。
Organizations使わないで IAMだけでなんとかするパターン
元ネタのブログ 「最低限のガードレールを考慮したシンプルな IAM 設計を CloudFormation でデプロイ する | DevelopersIO」より引用 https://dev.classmethod.jp/articles/build-simple-guardrail-iam-design-pattern-by-
cfn/
構成図
構成図(シンプル版)
技術要素 • IAM ポリシー • パーミッションバウンダリー • スイッチロール
最低限防ぎたいこと 1. MFAの強制 2. 特定のアクションを禁止する(例:Config/CloudTrailの変更・削除) 3. IAMロール作成はOK、IAMユーザー作成はNG
1. MFAの強制
1. MFAの強制 IAMロールに付与する信頼ポリシーに条件を追加し、 MFA認証済みのIAMユーザーのみスイッチロールできるようにする 開発者には、ログイ ン時の仮想MFAを設 定をしてもらう
1. MFAの強制
1. MFAの強制
1. MFAの強制
2. 特定のアクションの禁止
2. 特定のアクションを禁止する(例:Config/CloudTrail) IAMロールに付与するユーザーポリシーにフルアクセス、 パーミッションバウンダリーに特定のアクション禁止を記述する
パーミッションバウンダリー(Permissions Boundary) 引用元)IAM エンティティのアクセス許可の境界 - AWS https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_boundaries.html
Tips: IAMポリシーの基本(権限の勝ち負け)
2. 特定のアクションを禁止する(例:Config/CloudTrail) IAMロールに付与するユーザーポリシーにフルアクセス、 パーミッションバウンダリーに特定のアクション禁止を記述する
2.1 パーミッションバウンダリーで特定のアクションを禁止 パーミッションバウンダリー パーミッションバウンダリー
2.1 パーミッションバウンダリーで特定のアクションを禁止 パーミッションバウンダリー ①全て「許可」 ②一部のIAMアクションを 「禁止」 ③一部のIAM以外の アクションを「禁止」 ②一部のIAMアクションを「禁 止」
パーミッションバウンダリー
2.1 パーミッションバウンダリーで特定のアクションを禁止 パーミッションバウンダリー ①全て「許可」 ③一部のIAM以外の アクションを「禁止」 パーミッションバウンダリー
2.1 パーミッションバウンダリーで特定のアクションを禁止 パーミッションバウンダリー ①全て「許可」 パーミッションバウンダリー
2.1 パーミッションバウンダリーで特定のアクションを禁止 パーミッションバウンダリー ③一部のIAM以外の アクションを「禁止」
2.2 IAMロールのユーザーポリシーにフルアクセスを許可 実行権限(管理ポリシー)
2.3 パーミッションバウンダリーをアタッチ 実行権限(管理ポリシー)
2. 特定のアクションを禁止する(例:Config/CloudTrail)
2. 特定のアクションを禁止する(例:Config/CloudTrail) • EC2の起動 → OK • Config/CloudTrailの設定変更 → NG
• ...
3. IAMロール作成はOK、IAMユーザー作成はNG
なぜ? • IAM系のリソース作成を全て禁止しちゃうと管理者大変・業務スピード低下 • IAMロールは自由に作れるようにしたい • IAMユーザーは禁止したい(作れると最低限のアクション制限が崩壊) • 権限昇格も防ぎたい →管理者が開発者などへ一部IAM権限を移譲することで業務効率化を図る
3. IAMロール作成はOK、IAMユーザー作成はNG パーミッションバウンダリーに 「IAMロール作成はOK・IAMユーザー作成はNG」をを記述する
3. IAMロール作成はOK、IAMユーザー作成はNG パーミッションバウンダリー ①全て「許可」 ②一部のIAMアクションを 「禁止」 ③一部のIAM以外の アクションを「禁止」 ②一部のIAMアクションを「禁 止」
パーミッションバウンダリー
3. IAMロール作成はOK、IAMユーザー作成はNG パーミッションバウンダリー ②一部のIAMアクションを 「禁止」 ②一部のIAMアクションを「禁 止」 パーミッションバウンダリー
3. IAMロール作成はOK、IAMユーザー作成はNG パーミッションバウンダリー ②-1 ②-3 パーミッションバウンダリー ②-2 ②-4
②-1 IAMユーザーの作成、変更などを禁止
②-2 パーミッションバウンダリーのないIAMロール作成禁止 言い換えると、 パーミッションバウンダリーのある IAMロールは 作成OK
②-3 パーミッションバウンダリーの変更禁止
②-4 パーミッションバウンダリーの削除禁止
3. IAMロール作成はOK、IAMユーザー作成はNG • IAMユーザーの作成 → NG • パーミッションバウンダリーのない IAMロールの作成 →
NG • パーミッションバウンダリーのある IAMロールの作成 → OK • パーミッションバウンダリーの変更・削除 → NG
最低限防ぎたいこと 1. MFAの強制 2. 特定のアクションを禁止する 3. IAMロール作成はOK、IAMユーザー作成はNG
注意事項 • 権限まわり、IAMまわりの変更は、十分検証する • Webコンソールのウィザードで作成しようとするIAMロールは作成失敗します ◦ (例)Lambdaファンクションをコンソールのウィザードで作成する際に、新たに IAMロールを作成す る場合ウィザードではパーミッションバウンダリーを指定できないため失敗します。 ←正直、ここが
本構成の1番の難点です。ウィザードでカンタンにサービスのリソース一式を作成する際につまずく 可能性が高いです。
元ネタのブログ 「最低限のガードレールを考慮したシンプルな IAM 設計を CloudFormation でデプロイ する | DevelopersIO」より引用 https://dev.classmethod.jp/articles/build-simple-guardrail-iam-design-pattern-by-
cfn/
ありがとうございました