AWS Control Towerと HashiCorp Terraformでいい感じにマルチアカウント管理をしよう
by
chadain
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AWS Control Towerと HashiCorp Terraformで いい感じにマルチアカウント管理をしよう 1
Slide 2
Slide 2 text
● なぜ AWS Control Tower × Terraform ? ● Terraformで操作可能なマルチアカウント管理サービスについて ● Account Factory for Terraform (AFT)について 目次
Slide 3
Slide 3 text
● 名前: ちゃだいん ● 所属: AWS事業本部コンサルティング部 ● 役割: ソリューションアーキテクト ● 拠点: 大阪 ● 好きなサービス: AWS, Terraform ● 趣味: 立ち呑みめぐり ● X(Twitter): @chazuke4649 ● Japan AWS Top Engineers 2022,2023 自己紹介
Slide 4
Slide 4 text
なぜ AWS Control Tower × HashiCorp Terraform なのか?
Slide 5
Slide 5 text
AWS Control Tower を採用する局面 ● 中・大規模なAWS環境 ● 本格的にマルチアカウント戦略やっていきたい ● セキュリティ・ガバナンスを担保する共通基盤 設定ミス・オペミスは影響範囲大のリスク... →だから、IaC/GitOpsによって安全・信頼性のあるオペレーションを行いたい
Slide 6
Slide 6 text
ベストIaCツール for Platformチーム *個人の感想 ● 誰が書いても同じような記述になる(HCLの特性) ○ 属人化リスク低 ○ 説明・引き継ぎがカンタン ● インフラ設定の見える化/コード化に最適 ○ ベタ書きなら、まさに「この通り設定してます」の証明になり一目瞭然(精神衛生上◎) ○ 抽象的な記述による暗黙的なリソース生成が少ない ■ モジュールによる再利用化も可能 ● 余談: Platformチーム ≒ インフラ/情シス/共通基盤/CCoE チーム
Slide 7
Slide 7 text
Platformチームが管理するのはAWSだけじゃない ● ユーザー/ID基盤(Okta, OneLogin, Azure AD) ● DevOps(Kubenetes, GitHub, GitLab) ● 監視(New Relic, Data Dog, Mackerel) ● セキュリティ(Snyk, Dome9) ● etc … →全てTerraformで一元的に管理可能
Slide 8
Slide 8 text
Terraformで操作可能な マルチアカウント管理サービス
Slide 9
Slide 9 text
AWS Organizations 管理可能なリソース例 ● AWSアカウント aws_organizations_account ● OU aws_organizations_organizational_unit ● ポリシー aws_organizations_policy ○ SCP, バックアップポリシー , タグポリシー etc
Slide 10
Slide 10 text
例: OUにSCPを アタッチする
Slide 11
Slide 11 text
AWS IAM Identity Center 管理可能なリソース例 ● SSO Admin ○ アクセス権限セット aws_ssoadmin_permission_set etc ● SSO Identity Store ○ SSOグループ aws_identitystore_group ○ SSOユーザー aws_identitystore_user
Slide 12
Slide 12 text
例: SSOユーザーを作 成する
Slide 13
Slide 13 text
例: アクセス権限セット を作成する
Slide 14
Slide 14 text
例: 外部IdPで ユーザーを管理する https://registry.terraform.io/providers/okta/okta/latest/docs/resources/user https://registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/user
Slide 15
Slide 15 text
AWS Control Tower 管理可能なリソース例 ● コントロール(ガードレール)aws_controltower_control ● ランディングゾーン aws_controltower_landing_zone NEW!!
Slide 16
Slide 16 text
例: WorkloadsOUに 特定のコントロールを 適用する
Slide 17
Slide 17 text
例: ランディングゾーン を有効化する 注意)現時点(2024.5)ではバグがあるた め本番利用は非推奨 https://dev.classmethod.jp/articles/setup-landing-z one-using-terraform/
Slide 18
Slide 18 text
Account Factory for Terraform (AFT)
Slide 19
Slide 19 text
Account Factory for Terraform (AFT) とは? ● AWS Control Tower を補完/拡張する代表的なカスタマイズソリューション ● re:Invent 2021にてv1.0.0がリリース(最新版はv1.12.2) ● 実体はAWSサービスの集合体 + Terraform ○ Terraform Registry で公開されている ✖
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
AFTの特徴 ● AWS Control Tower管理下のAWSアカウント発行をGitOpsに実行できる ○ しかも複数AWSアカウントを一度にリクエスト可能 ○ 注意点)AWS OrgnaizationsでAWSアカウントを発行する(素の状態) ≠ AWS Control TowerでAWSアカウン トを発行する(ガードレールが効いている状態) ● AWSアカウント発行時のベースライン(初期設定)自動化がカンタン ○ ベースラインをTerraform、あるいは、Python/AWS CLIで設定可能 ○ 自前実装は開発・メンテが大変 →AWS Control TowerをTerraformなIaCベースで運用することが可能!
Slide 22
Slide 22 text
AFTの利用方法 1. AWSアカウントを発行する 2. AWSアカウントをカスタマイズする
Slide 23
Slide 23 text
1. AWSアカウントを発行する
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
AWSアカウントを 発行する
Slide 26
Slide 26 text
2. アカウントをカスタマイズする
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
AWSアカウントをカス タマイズする(1)
Slide 29
Slide 29 text
AWSアカウントをカス タマイズする(2)
Slide 30
Slide 30 text
詳細は、弊社ブログDevelopersIOのaftタグで検索 https://dev.classmethod.jp/tags/account-factory-for-terraform-aft/
Slide 31
Slide 31 text
No content