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
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
3.9k
Account Factory for Terraform (AFT) 入門
chazuke4649
1
2.1k
"Are you Well-Architected?" Introducing about Cloud Optimization Aseesment
chazuke4649
0
1k
re:GrowthOSAKA2019-CoreServicesUpdate(IAM.S3.EC2)
chazuke4649
0
1.6k
How to think about Acsess controll of Amazon S3 simply
chazuke4649
1
1.9k
Other Decks in Technology
See All in Technology
AI時代の大規模データ活用とセキュリティ戦略
ken5scal
1
280
Gaze-LLE: Gaze Target Estimation via Large-Scale Learned Encoders
kzykmyzw
0
300
人を動かすことについて考える
ichimichi
2
270
工業高校で学習したとあるエンジニアのキャリアの話
shirayanagiryuji
0
130
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
240
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
2
580
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
120
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
180
Devinを使ったモバイルアプリ開発 / Mobile app development with Devin
yanzm
0
130
生成AIによるデータサイエンスの変革
taka_aki
0
3.1k
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
180
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
200
Featured
See All Featured
Side Projects
sachag
455
43k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Speed Design
sergeychernyshev
32
1.1k
Thoughts on Productivity
jonyablonski
69
4.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
560
Faster Mobile Websites
deanohume
309
31k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Music & Morning Musume
bryan
46
6.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
How GitHub (no longer) Works
holman
315
140k
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/
ありがとうございました