$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
minimum-guardrails-by-aws-iam
Search
chadain
August 17, 2021
Technology
1
2.2k
minimum-guardrails-by-aws-iam
Minimum Guardrails by AWS IAM
chadain
August 17, 2021
Tweet
Share
More Decks by chadain
See All by chadain
AWS Control Towerと HashiCorp Terraformでいい感じにマルチアカウント管理をしよう
chazuke4649
1
4.3k
Account Factory for Terraform (AFT) 入門
chazuke4649
1
2.2k
"Are you Well-Architected?" Introducing about Cloud Optimization Aseesment
chazuke4649
0
1.1k
re:GrowthOSAKA2019-CoreServicesUpdate(IAM.S3.EC2)
chazuke4649
0
1.6k
How to think about Acsess controll of Amazon S3 simply
chazuke4649
1
2k
Other Decks in Technology
See All in Technology
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
710
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
130
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
380
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
1k
Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB
taketo1113
1
280
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
480
乗りこなせAI駆動開発の波
eltociear
1
1.1k
因果AIへの招待
sshimizu2006
0
970
RAG/Agent開発のアップデートまとめ
taka0709
0
170
生成AI時代におけるグローバル戦略思考
taka_aki
0
160
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
120
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
400
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Being A Developer After 40
akosma
91
590k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Facilitating Awesome Meetings
lara
57
6.7k
Rails Girls Zürich Keynote
gr2m
95
14k
Music & Morning Musume
bryan
46
7k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
A Modern Web Designer's Workflow
chriscoyier
698
190k
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/
ありがとうございました