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
Ops-JAWS_Organizations小ネタ3選.pdf
Search
Shuichi Takahashi
April 16, 2025
Technology
2
280
Ops-JAWS_Organizations小ネタ3選.pdf
Shuichi Takahashi
April 16, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
480
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
30
11k
解析の定理証明実践@Lean 4
dec9ue
0
180
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
920
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
160
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
450
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
240
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
0
400
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
4k
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.4k
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
340
5min GuardDuty Extended Threat Detection EKS
takakuni
0
160
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
How STYLIGHT went responsive
nonsquared
100
5.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Producing Creativity
orderedlist
PRO
346
40k
Transcript
Ops-JAWS Meetup 34 Organizations & Control Tower 2025/04/16 コスト、カオス、権限 AWS
Organizations 小ネタ3選 アイレット株式会社 クラウドインテグレーション事業部 高橋 修一
Role 各種業務の自動化・効率化 お客さま向けプラン建て付け(請求代行+AWS Organizations) ・2024 Japan AWS Ambassadors ・2024 iret
テクニカルアンバサダー Location 大阪府大阪市 在住 月1〜2くらい東京 Personal 京都府京都市 出身 趣味 ・🎮 ゲーム ・🥊 キックボクシング( アマチュア戦績 3勝1敗 ) 高橋 修一 Shuichi Takahashi 自己紹介 2 アイレット株式会社 クラウドインテグレーション事業部 MSP開発セクション セクションリーダー @shu85t @shu85t
1. OU単位でコスト分析 2. SCPでお手軽 カオスエンジニアリング 3. 管理アカウント上の権限抑制 Agenda 3
1. OU単位でコスト分析 4
AWS Cost Categories AWS利用料金を分類するためのカテゴリ(チーム、プロジェクト、アプリ等)を 自分で定義し、そのカテゴリ毎にコスト可視化できる機能 5 1. OU単位でコスト分析 例:アカウントを手動でチーム分類してカテゴリを作成 利用できるディメンション
・アカウント ・料金タイプ ・リージョン ・サービス ・コスト配分タグ ・使用タイプ ・請求エンティティ
ログアーカイブアカウント AWS Cost Categories with OU OrganizationsのOU階層でコスト可視化したい。ただ手動で登録はしんどい。 6 1. OU単位でコスト分析
Root Tool SDLC Security 監査アカウント Dev Stg サービスA 開発アカウント ? 利用できるディメンション ・アカウント ・料金タイプ ・リージョン ・サービス ・コスト配分タグ ・使用タイプ ・請求エンティティ
{ "Name": "OU階層", "RuleVersion": "CostCategoryExpression.v1", "Rules": [ { "Value": "Security",
"Rule": { "Dimensions": { "Key": "LINKED_ACCOUNT", "Values": ["1111...", "2222..."], "MatchOptions": ["EQUALS"] }}}, // ... Other OUs ... ]} やったこと OUとアカウントの構造を読み取り、コストカテゴリ定義に変換して登録するスクリプト作成 7 1. OU単位でコスト分析 ① OU構造の取得 ③ 登録/更新 ②カテゴリ定義に変換 ?
・OUという断面でコスト確認ができるようになりました ・新たな断面から傾向や偏りを発見できることも? 結果 OU毎にコストを確認できた! パラメータ、何階層目までカテゴリ分けするかも指定可能 8 1. OU単位でコスト分析 depth=1 指定
depth=2 指定 ログアーカイブアカウント Root Tool SDLC Security 監査アカウント Dev Stg サービスA 開発アカウント
詳細 dev.toに解説記事、GitHubにスクリプトを公開しています 9 1. OU単位でコスト分析 https://dev.to/shu85t/aws-cost-categories-with-ou-structure-61n ・管理アカウント上での実行を想定しているので利用時は注意ください ・OU構造の変化に追従したい場合は、定期実行 or イベントドリブンのLambdaにすると便利
https://github.com/shu85t/PutOuCostCategory
2. SCPでお手軽 カオスエンジニアリング 10
やること 「実験対象アカウント」 を 「権限を奪う SCP」をアタッチした「観察用OU」に移動させ、ワークロードの挙動を観察 11 2. SCPでお手軽 カオスエンジニアリング 通常OU
観察用OU ①権限を奪う SCP をアタッチ ② 観察用OU配下に移動 ③ ワークロードの挙動を観察 ④ 通常OU配下に戻す 実験対象アカウント Root
対象アカウント 「受信メールをフィルタリングして必要な場所に通知を出す社内サービス」の開発環境用アカウント 12 2. SCPでお手軽 カオスエンジニアリング ・①②受信したメールを ・③④処理しやすい形に変換し保存 ・⑤フィルタ条件に沿って適切な「通知待ちキュー」にメッセージを送り ・⑥⑦各種外部サービスに通知を行う
権限を奪う SCP 13 2. SCPでお手軽 カオスエンジニアリング { "Version": "2012-10-17", "Statement":
[ { "Sid": "Statement1", "Effect": "Deny", "Action": [ "SNS:*", "SES:*", "S3:*", "Lambda:*", "Dynamodb:*", "SQS:*" ], "Resource": "*" } ] } 使っているサーバレスの権限周りを全て奪う
メール処理ワークロード 14 2. SCPでお手軽 カオスエンジニアリング 権限を奪う SCP VS { "Version":
"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Deny", "Action": [ "SNS:*", "SES:*", "S3:*", "Lambda:*", "Dynamodb:*", "SQS:*" ], "Resource": "*" } ] } ヒント: SCPの影響範囲は IAM ユーザーとロールのみ
[ERROR] ClientError: An error occurred (AccessDenied) when calling the GetObject
operation: Access Denied Traceback (most recent call last): 「③変換処理のLambda」でメール生データを readしにいくところでコケました ・①SES -> ②SNS -> ③Lambda の呼び出しまではイベントによって繋いでいるのでIAM権限は利用しない ・③のLambdaは実行ロール(IAMロール)から引き継いだ認証情報を使ってS3から生データをreadするので、ここで失敗。 (「S3:*」 をDenyしているのでそこでひっかかった) 結果 15 2. SCPでお手軽 カオスエンジニアリング ・外側から異常を注入できる ・制約はあるが条件指定でフローの一部を狙い撃ちできそう ・RCPや宣言型ポリシーつけてみて観察すると? ・操作誤りには注意!(移動先まちがえ)
3. 管理アカウント上の 権限抑制 16
管理アカウント上のユーザーに対する権限抑制 管理アカウントは権限が集中していて、各種コントロールポリシーの対象外なので 委任できるものはできるだけメンバーアカウントに委任 し 管理アカウントに入るユーザーや機会をできるだけ減らす 17 3. 管理アカウント上の権限抑制 ただ、委任に寄せきれないユースケースに対して 仕組みでガード入れておきたいことも、その1つ
18 3. 管理アカウント上の権限抑制 ✅ iam:CreateRole ✅ ーーーーーー ❌ ーーーーーー ❌
ーーーーーー ✅ ーーーーーー ✅ ーーーーーー ✅ ーーーーーー ✅ ーーーーーー CreateRole 管理アカウント上にソリューションを構築するため IAMロール作成の権限は渡したいが 制限のないロールを作成されたくない (トンビが鷹を産んでほしくない )
メンバーアカウントでも使えるテクニックですが 不便さを感じることもある制限 後から PermissionBoundaryを 削除/更新されないよう Deny 19 3. 管理アカウント上の権限抑制 ✅
ーーーーーー ✅ ーーーーーー ✅ ーーーーーー ✅ ーーーーーー ⛓ Permission Boundary ❌ ーーーーーー ❌ ーーーーーー ❌ Delete/Put Permission Boundary CreateRole ✅ iam:CreateRole +condition: Permission Boundary ✅ ーーーーーー ❌ ーーーーーー ❌ ーーーーーー ❌ Delete/Put Permission Boundary 指定PermissionBoundary付きなら 作成可能 管理アカウント上にソリューションを構築するため IAMロール作成の権限は渡したいが 制限のないロールを作成されたくない (トンビが鷹を産んでほしくない ) → iam:CreateRoleの条件で「 Permissions Boundary」付きにする
20