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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryosuke Tsuruda
September 26, 2026
Technology
150
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
60
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
550
200アカウント規模を見据えた開発・検証・本番の環境分離を成立させる、AWS Transit Gatewayによるネットワーク設計と実践
pensuke628
0
290
独学でFusicのエンジニアへ! 入社から2年間の軌跡
pensuke628
0
150
Other Decks in Technology
See All in Technology
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
810
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
250
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
120
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
310
少ない人手 限られた予算 それでも守る 消せない・見つける・戻れる オールハザード型BCP on AWS / 20261107 Mitsutoshi Matsuo
shift_evolve
PRO
0
350
公共システムAdventCalendar2026
toru_kubota
0
300
[General] 개발자로 해외 기업에서 일하기
skydoves
1
330
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
250
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
7
3.8k
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
620
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
190
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
280
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
560
Scaling GitHub
holman
464
140k
The SEO Collaboration Effect
kristinabergwall1
1
620
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Code Review Best Practice
trishagee
74
20k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
130k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
780
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
470
WENDY [Excerpt]
tessaabrams
15
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
WCS-LA-2024
lcolladotor
0
990
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