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
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
1k
Account Factory for Terraform (AFT) 入門
chazuke4649
1
1.6k
"Are you Well-Architected?" Introducing about Cloud Optimization Aseesment
chazuke4649
0
1k
re:GrowthOSAKA2019-CoreServicesUpdate(IAM.S3.EC2)
chazuke4649
0
1.4k
How to think about Acsess controll of Amazon S3 simply
chazuke4649
1
1.8k
Other Decks in Technology
See All in Technology
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
460
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
Qiita埋め込み用スライド
naoki_0531
0
5.1k
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
170
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
750
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
150
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
550
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
160
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
The Invisible Side of Design
smashingmag
298
50k
Producing Creativity
orderedlist
PRO
341
39k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Being A Developer After 40
akosma
87
590k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Embracing the Ebb and Flow
colly
84
4.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
A Tale of Four Properties
chriscoyier
157
23k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
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/
ありがとうございました