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
260
Ops-JAWS_Organizations小ネタ3選.pdf
Shuichi Takahashi
April 16, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
継続戦闘能⼒
sansantech
PRO
0
190
テストを実施する前に考えるべきテストの話 / Thinking About Testing Before You Test
nihonbuson
PRO
11
1.8k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
4.5k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
37k
熱々🔥のUDN🍜を喰らえ❗マルチテナントもVM統合も思いのまま❗新機能で切り拓くk8sネットワークの未来
tsukaman
0
190
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
2
860
人とAIとの共創を夢見た2か月 #共創AIミートアップ / Co-Creation with Keito-chan
kondoyuko
1
500
アプリケーションの中身が見える!Mackerel APMの全貌と展望 / Mackerel APMリリースパーティ
mackerelio
0
120
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
3
1.5k
Rebase エンジニアリング組織の現状とこれから
rebase_engineering
0
110
オープンソースのハードウェアのコンテストに参加している話
iotengineer22
0
220
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
Being A Developer After 40
akosma
91
590k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.3k
Optimizing for Happiness
mojombo
378
70k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
180
53k
How to Ace a Technical Interview
jacobian
276
23k
A designer walks into a library…
pauljervisheath
205
24k
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