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
2.4k
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.6k
Account Factory for Terraform (AFT) 入門
chazuke4649
1
2.6k
"Are you Well-Architected?" Introducing about Cloud Optimization Aseesment
chazuke4649
0
1.1k
re:GrowthOSAKA2019-CoreServicesUpdate(IAM.S3.EC2)
chazuke4649
0
1.7k
How to think about Acsess controll of Amazon S3 simply
chazuke4649
1
2.2k
Other Decks in Technology
See All in Technology
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
240
最近評価が難しくなった
maroon8021
0
340
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
1
150
穢れた技術選定について
watany
3
280
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
370
世界、断片、モデル。そして理解
ardbeg1958
1
110
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
140
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
210
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
210
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
840
cccccc
moznion
0
1.9k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.6k
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
350
The SEO identity crisis: Don't let AI make you average
varn
0
510
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Between Models and Reality
mayunak
4
370
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
180
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.6k
Navigating Team Friction
lara
192
16k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Git: the NoSQL Database
bkeepers
PRO
432
67k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
260
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/
ありがとうございました