Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
Search
Ryosuke Tsuruda
September 26, 2026
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
Presentation from JAWS-UG KYUSHU QUEST 2026 in Fukuoka
Ryosuke Tsuruda
September 26, 2026
More Decks by Ryosuke Tsuruda
See All by Ryosuke Tsuruda
200アカウント規模を見据えた開発・検証・本番の環境分離を成立させる、AWS Transit Gatewayによるネットワーク設計と実践
pensuke628
0
55
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
530
200アカウント規模を見据えた開発・検証・本番の環境分離を成立させる、AWS Transit Gatewayによるネットワーク設計と実践
pensuke628
0
270
独学でFusicのエンジニアへ! 入社から2年間の軌跡
pensuke628
0
140
Other Decks in Technology
See All in Technology
~最速でビジネスインパクトを創出する~ Sansanのデータ基盤と活用事例
sansantech
PRO
0
100
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
190
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
900
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
180
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
200
How to Design Configuration for Rails Applications
willnet
1
880
WasmをRustにする
sansantech
PRO
0
300
会社説明資料
persolserverworks
0
9.8k
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
2
180
freeeにおけるSoftware Factory
freee
PRO
0
120
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
450
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
350
Featured
See All Featured
Navigating Team Friction
lara
192
16k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Faster Mobile Websites
deanohume
310
32k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Embracing the Ebb and Flow
colly
88
5.2k
My Coaching Mixtape
mlcsv
0
360
Navigating Weather and Climate Data
rabernat
0
560
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Transcript
Account Factory for Terraformによる 標準化されたアカウント発行の自動化 JAWS-UG KYUSHU QUEST 2026 in
Fukuoka 2026.09.26 株式会社Fusic 鶴田 諒輔 (@pensuke628) ©Fusic Co., Ltd. 0
自己紹介 株式会社Fusic エンジニア 鶴田 諒輔 R y o s u
k e Ts u r u d a 表彰 ➢ 20 26 Japa n A WS To p Eng inee rs ➢ 20 25 -20 26 Japa n A ll A WS Ce rtific atio ns Engineer s 関心 S R E、Ob se rva b i li t y 、P la t fo rm E n gi ne eri n g ©Fusic Co., Ltd. 1
1 マルチアカウント環境の課題 ©Fusic Co., Ltd. 2
マルチアカウント構成ではアカウントが増え続ける 管理アカウント Organizations でアカウントを作り Control Tower で統制を入れる 開発・検証用の OU(例) 本番用の
OU(例) + サービス A サービス B サービス C 新しい アカウント + サービス A サービス B サービス C 新しい アカウント 用途や環境が増えるたびに、新しいアカウントを発行する ©Fusic Co., Ltd. 3
アカウントは作っただけでは使えない 払い出されたアカウント どの組織にも共通する土台 ガードレール・ログの集約 など AWS Organizations AWS Control Tower
アカウントを作る 統制の効いた 設定を入れる 組織ごとに決めている設定は入っていない コスト管理のためのタグ付け アラートの通知先の設定 他のアカウントや社外と通信するためのネットワーク設定 組織ごとの設定は、アカウントを作るたびに手作業で一つずつ入れる ©Fusic Co., Ltd. 4
アカウント発行は「作る」より「揃える」が難しい 揃える 作る 組織ごとの標準に揃える アカウントを1つ払い出す ここが毎回の手作業として残る ©Fusic Co., Ltd. 5
私たちが揃えたいのはこのネットワーク構成 新規追加 ©Fusic Co., Ltd. 6
手作業では6工程が2アカウントにまたがる 新しいアカウント側 1 2 3 TGW への アタッチメントの作成 VPC・サブネットの作成 4
TGW への ルートの追加 ホストゾーン・ リゾルバールールの 関連付け ネットワークアカウント側 5 6 プレフィックスリストへの VPC CIDR の追加 アカウントを作成するたびにくり返す ホストゾーンへの 関連付けの許可 接続先の TGW を一つ間違えると 環境の分離が崩れる 全アカウントが標準どおりかを 確かめ続けるのが難しい ©Fusic Co., Ltd. 7
2 Account Factory for Terraform ©Fusic Co., Ltd. 8
AFTはアカウントの発行とカスタマイズをGitOpsで行う 01 02 03 Terraform で依頼を書き Git にコミットする Account Factory
が アカウントを発行する 定義した設定が 自動で適用される 発行したいアカウントをコードとして記 述する パイプラインが動き、Control Tower の Account Factory が発行する あらかじめコードとして定義した組織ご との設定を適用する(カスタマイズ) 発行もカスタマイズも、起点は Git へのコミット ©Fusic Co., Ltd. 9
AFTのワークフロー図 出典:https://docs.aws.amazon.com/ja_jp/controltower/latest/userguide/aft-architecture.html ©Fusic Co., Ltd. 10
AFT は「依頼」と「標準の定義」でできている account-request 依頼:どんなアカウントを作るかを記述する カスタマイズの定義(3つの層・上から実行順) account-provisioning-customizations 発行の処理の中で最初に実行されるカスタマイズ global-customizations すべてのアカウントに適用されるカスタマイズ account-customizations
指定したアカウントにだけ適用されるカスタマイズ 適用される範囲やタイミングが違うので、どの設定をどの層で適用するかが重要になる ©Fusic Co., Ltd. 11
ネットワークの設定はaccount層にまとめた provisioning 使うなら:Terraform 以外で行いたい処理(例:外部システムへの通知や登録) global 使うなら:環境に関係なく全アカウントに入れたい設定(例:全アカウント共通の IAM ロール) account 私たちがネットワークに使っている層
account-customizations/ (ネットワーク関連の抜粋) ├── devstg/ 開発・検証用のカスタマイズ │ dev 用と stg 用の2つの VPC を作り、それぞれの TGW に繋ぐ └── terraform/ └── prod/ └── terraform/ 本番用のカスタマイズ VPC を1つ作り、本番用の TGW に繋ぐ ©Fusic Co., Ltd. 12
アカウント発行依頼時に記載するコード module "devstg_example" { source = "./modules/aft-account-request" control_tower_parameters = {
# 必須パラメータ AccountEmail = "
[email protected]
" AccountName = "Example-devstg" ManagedOrganizationalUnit = "ExampleOU (ou-xxxx-xxxxxxxx)" SSOUserEmail = "
[email protected]
" SSOUserFirstName = "Taro" SSOUserLastName = "Example" } # SSM パラメータストアから CIDR を読み取る data "aws_ssm_parameter" "dev_vpc_cidr" { name = "/aft/account-request/custom-fields/dev_vpc_cidr" } resource "aws_vpc" "dev" { cidr_block = data.aws_ssm_parameter.dev_vpc_cidr.value } change_management_parameters = { # DynamoDBに保存される change_requested_by = "Example Team" change_reason = "Create Example dev/stg account" } account_customizations_name = "devstg" custom_fields = { dev_vpc_cidr = "10.0.X.0/24" stg_vpc_cidr = "10.0.Y.0/24" } } custom_fields の値は、新しいアカウントの SSM パラメータストアに保存される カスタマイズに関わるのはこの3行だけ ©Fusic Co., Ltd. 13
実装の鍵はネットワークアカウントへのassume role AFT 管理アカウント カスタマイズを実行 provider "network" assume role 既定の
provider 新しいアカウント VPC の作成 TGW への接続 外部通信の経由設定 ネットワーク アカウント 新しい VPC を 受け入れるための 登録と許可 # ネットワークアカウント用のprovider provider "aws" { alias = "network" assume_role { role_arn = "arn:aws:iam::111111111111:role/..." } } # プレフィックスリストに新しい VPC の CIDR を登録 resource "aws_ec2_managed_prefix_list_entry" "this" { provider = aws.network prefix_list_id = "pl-xxxxxxxxxxxxxxxxx" cidr = local.dev_vpc_cidr } 2つのアカウントにまたがる作業を、1つのカスタマイズの中で完結させる ©Fusic Co., Ltd. 14
標準を満たさないアカウントは生まれない Terraform を書けない人でも発行できる 現在 質問に答えるだけで依頼のコードを生成する対話スクリプトを用意 30+ 接続先を間違えるミスが入り込まない 発行されるアカウントには例外なく同じカスタマイズが適用される のアカウントを この仕組みで発行
標準そのものをレビューできる 変更はマージリクエストでレビューし、あとから経緯を見返せる ©Fusic Co., Ltd. 15
3 まとめ ©Fusic Co., Ltd. 16
まとめ Point 01 アカウント発行は「作る」より「揃える」が難しい Point 02 組織の設定に合わせて、AFT の3つの層を使い分けられる Point 03
2つのアカウントにまたがる設定も、assume role で1つのカスタマイズの中で完結できる ©Fusic Co., Ltd. 17
OSEKKAI × TECHNOLOGY ココロと技術で、ぴったりも、びっくりも。 Thank You ご清聴いただきありがとうございました ©Fusic Co., Ltd.
18