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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shuichi Takahashi
April 16, 2025
Technology
2
360
Ops-JAWS_Organizations小ネタ3選.pdf
Shuichi Takahashi
April 16, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
880
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
200
今のWordPress の制作手法ってなにがあんねん?(改) / What’s the Deal with WordPress Development These Days?
tbshiki
0
440
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
240
Kubernetesにおける推論基盤
ry
1
380
作りっぱなしで終わらせない! 価値を出し続ける AI エージェントのための「信頼性」設計 / Designing Reliability for AI Agents that Deliver Continuous Value
aoto
PRO
2
290
Agent ServerはWeb Serverではない。ADKで考えるAgentOps
akiratameto
0
100
AWSの資格って役に立つの?
tk3fftk
1
330
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
580
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
420
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
190
Go標準パッケージのI/O処理をながめる
matumoto
0
200
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
220
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
640
Utilizing Notion as your number one productivity tool
mfonobong
4
260
We Have a Design System, Now What?
morganepeng
55
8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
The Spectacular Lies of Maps
axbom
PRO
1
620
The Curious Case for Waylosing
cassininazir
0
270
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
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