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
300
Ops-JAWS_Organizations小ネタ3選.pdf
Shuichi Takahashi
April 16, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
230
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
1
430
VLMサービスを用いた請求書データ化検証 / SaaSxML_Session_1
sansan_randd
0
140
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
170
AI人生苦節10年で会得したAIがやること_人間がやること.pdf
shibuiwilliam
1
220
解消したはずが…技術と人間のエラーが交錯する恐怖体験
lamaglama39
0
140
OpenTelemetry の Log を使いこなそう
biwashi
5
1.1k
Ktor + Google Cloud Tasks/PubSub におけるOTel Messaging計装の実践
sansantech
PRO
1
340
FAST導入1年間のふりかえり〜現実を直視し、さらなる進化を求めて〜 / Review of the first year of FAST implementation
wooootack
1
200
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
220
「育てる」サーバーレス 〜チーム開発研修で学んだ、小さく始めて大きく拡張するAWS設計〜
yu_kod
1
200
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
280
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
The Language of Interfaces
destraynor
158
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Embracing the Ebb and Flow
colly
86
4.8k
The Pragmatic Product Professional
lauravandoore
35
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Producing Creativity
orderedlist
PRO
346
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Raft: Consensus for Rubyists
vanstee
140
7k
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