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
AWS Control Towerをカスタマイズして使ってみよう
Search
suzuki-jun
October 15, 2021
Technology
0
2.8k
AWS Control Towerをカスタマイズして使ってみよう
Developers.IO 2021 DECADE VideoSession
suzuki-jun
October 15, 2021
Tweet
Share
Other Decks in Technology
See All in Technology
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
150
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.2k
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
140
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.4k
人工衛星のファームウェアをRustで書く理由
koba789
15
7.9k
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
280
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
400
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
380
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
990
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
250
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
A Tale of Four Properties
chriscoyier
160
23k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Done Done
chrislema
185
16k
Speed Design
sergeychernyshev
32
1.1k
Making Projects Easy
brettharned
117
6.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Transcript
AWS Control Towerを カスタマイズして使ってみよう 2021/10/15 AWS事業本部コンサルティング部 鈴木純
2 自己紹介 鈴木純(Suzuki Jun) ・AWS事業本部 コンサルティング部(SA) ・好きなAWSサービス: ・AWS CloudFormation、AWS Control
Tower ・2021 APN AWS Top Engineer
3 お伝えしたいこと Control Towerで アカウントセットアップの自動化が捗る 便利なソリューションがあるよ
4 お話すること 1. Landing Zoneを知る 2. アカウントセットアップの自動化 3. Control Towerのカスタマイズ
4. まとめ
5 話さないこと • Control Towerの深い部分 • AWSサービスの細かい説明 • OU設計
6 マルチアカウントについて知りたい人は https://dev.classmethod.jp/articles/jaws-days-2021-control-tower/
7 1. Landing Zoneを知る
8 本題に入る前に 最近はAWSアカウントを分割することが推奨 • システム単位 ◦ 運用するシステム毎に分割 • 環境の分離 ◦
開発、ステージング、本番で分割 • 課金 ◦ システムごと、環境ごとに請求を分けたい →AWSアカウントが増加する傾向にある
9 マルチアカウント管理の課題 • 各アカウントへのログイン ◦ SSO?IAMロール? ◦ 権限の制御方法 • 一定のセキュリティを担保
◦ CloudTrailとConfigは有効化 ◦ セキュリティ系AWSサービスを有効化 ◦ 望ましくない操作は検知 これらの実装方法を検討・実装する必要がある
10 これらをどうやって実装・管理するか? Landing Zone
11 Landing Zoneを知る • Landing Zone とは? ◦ AWS のベストプラクティスに基づいて構成したアカウントを、ス
ケーラブルに展開していくための仕組みの総称 マルチアカウントのセットアップ・管理を 容易にする仕組み・考え方
12 Landing Zoneの構成 1. アカウントの発行 ◦ 必要な初期設定の済んだアカウントを作成 2. 管理用権限の発行 ◦
対象アカウントを管理するための権限を作成 3. 共有サービスへのアクセス (ユーザー環境に合わせて個別に実装する) ◦ AD やファイルサーバー等の共有サービスや運用拠点への接続経路の確保 4. AWS ログの集約 ◦ 監査用ログをセキュアに一元保存 5. ガードレールの設置 ◦ 実施してはいけない操作の禁止 (必須のガードレール) ◦ 危険な設定の監視 (強く推奨・選択的のガードレール) 参考:AWS マルチアカウント管理を実現するベストプラクティスとは ?
13 Landing Zoneの実装方法 Control Tower 独自で実装
14 Control Tower • Landing Zoneを実装するマネージド サービス • ボタン1つでLanding Zoneを展開
• 東京リージョン対応 • 既存の組織・アカウントに適用可能 • 制約がなければControl Towerを採用
15 独自で実装 • Landing Zoneの構成のものを独自に実装 • AWSサービスやサードパーティ製品を組み合 わせてLanding Zoneを実現 •
柔軟性が高い • 実装が大変
16 ここまでのまとめ • マルチアカウントの管理には様々な課題がある • 課題を解決するためのセットアップ・管理を容易にする仕 組み・考え方をLanding Zone • Landing
Zoneの実装はControl Towerがおすすめ
17 2. アカウントセットアップの自動化
18 Control Towerでセットアップされるもの • AWS SSO • AWS Organizations ◦
Audit ◦ Log Archive • CFn Account Baseline ◦ AWS Config ◦ AWS CloudTrail ◦ SNS(Config非準拠通知) ◦ Control Tower用 IAM Role • Network Baseline
19 セットアップはこれで終わりではない その他にも様々な初期設定を追加したくなる • GuardDuty・SecurityHubを有効化 • IAM用パスワードポリシーを変更 • IAMロールの作成 など…
各アカウント個別に設定・管理するのは 現実的ではない
20 自動セットアップを追加していく • CFn Account Baseline ◦ AWS Config ◦
AWS CloudTrail ◦ SNS(Config非準拠通知) ◦ Control Tower用 IAM Role • (Network Baseline)
21 追加でセットアップする項目 • GuardDutyの有効化 • SecurityHubの有効化 • IAM Access Analyzerの有効化
• IAMロールの作成 • IAMユーザー用パスワードポリシーの変更 • (SecurityHub)セキュリティ基準のコントロール無効化 ◦ 例:AWS Foundational Security Best Practices v1.0.0 ▪ IAM.3 IAM ユーザーのアクセスキーは 90 日ごとに更新する必要があります ▪ IAM.6 ハードウェア MFA はルートユーザーに対して有効にする必要があります
22 追加でセットアップする項目 • GuardDutyの有効化 • SecurityHubの有効化 • IAM Access Analyzerの有効化
• IAMロールの作成 • パスワードポリシーの変更 • セキュリティ基準のコントロール無効化
23 Organizations連携を活用する
24 Organizationsの連携機能 Organizations連携で自動有効化が可能 一部サービスでは管理者の委任が可能 Control Tower環境下ではAuditアカウントへの委任がおすすめ • GuardDuty ◦
【Organizations】組織内すべてのアカウント・すべてのリージョンへの GuardDuty設 定を簡単に行う • SecurityHub ◦ Organizations 環境で AWS Security Hub を全リージョンへ簡単セットアップする • IAM Access Analyzer ◦ [アップデート] IAM Access Analyzer が AWS Organizations に対応しました!
25 Organizationsの連携機能 連携サービスについてはドキュメント参照 https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_integrate_services_list.html
26 Organizations連携による有効化 • CFn Account Baseline ◦ AWS Config ◦
AWS CloudTrail ◦ SNS(Config非準拠通知) ◦ Control Tower用 IAM Role • Organizations連携 ◦ Amazon GuardDuty ◦ AWS SecurityHub ◦ IAM Access Analyzer
27 追加でセットアップする項目 • GuardDutyの有効化 • SecurityHubの有効化 • IAM Access Analyzerの有効化
• IAMロールの作成 • IAM ユーザー用パスワードポリシーの変更 • セキュリティ基準のコントロール無効化
28 3. Control Towerのカスタマイズ
29 Control Tower のカスタマイズとは • Customizations for AWS Control Tower(CfCT)
• AWS提供のソリューション • CloudFormationで簡単に展開可能 https://aws.amazon.com/jp/solutions/implementations/customizations-for-aws-control-tower/
30 何がすごいのか? ソースにテンプレートを配置すれば、 アカウント発行時に自動で展開してくれる
31 Control Tower のカスタマイズとは 前準備:CodeCommitにCFnテンプレート、 マニフェストファイルをPushしておく
32 Control Tower のカスタマイズとは Control Towerのアカウント発行時に、CodeCommitに PushしたCFnテンプレートを自動でデプロイ
33 CfCTの仕組み • Control Towerライフサイクルイベントワー クフロー ◦ Control Towerのアカウント発行時に起動 ◦
EventBridge→SQS→Lambdaの順に実行 ◦ LambdaはCodePipelineを実行 • CodePipelineワークフロー ◦ 指定したソース(CodeCommit/S3)から テンプレート等を取得 ◦ マニフェストファイルに従って CloudFormation StackSets、SCPを展開 ◦ ソースに変更があった場合もCodePipeline が起動 • 展開先(OU/アカウント)はマニフェストファ イル上で指定可能
34 CfCTの実装 1. CfCT展開用CloudFormationを実行 2. マニフェストファイルの作成 3. 指定したソースへ配置
35 1.CfCT展開用CloudFormationの実行 • ソリューションページのリンクから 展開 • パラメータを設定 • 承認フローの追加も可能
36 もう少し詳細に知りたい方は https://dev.classmethod.jp/articles/customizations-for-control-tower/
37 2.マニフェストファイルの作成 --- region: ap-northeast-1#Control Tower home region version: 2021-03-15
resources: # List of resources - name: <String> resource_file: <String> deployment_targets: accounts: - 012345678912 - AccountName1 organizational_units: - OuName1 - OuName2 deploy_method: stack_set regions: #list of strings parameters: - parameter_key: DisableList parameter_value: AAA, BBB 展開するテンプレート /SCPポリシーの場所 S3、もしくはlocalpathの指定が可能 展開先の指定 accounts:アカウントIDかアカウント名 organizational_units:OU名 デプロイ形式の選択 SCPかStackSetどちらかを選択 • CfCTを実行するための定義ファイル ◦ YAML形式で記述 ◦ 最新バージョンは2021-03-15 より詳細な記述方法については以下参照 AWS Control Tower のカスタマイズ AWS 開発者ガイド CloudFormationへ引き渡すパラメータ keyとvalueを指定することで任意のものを設定
38 3.指定したソースへ配置 CfCT展開時のソースとして選択した方に配置 • CodeCommit ◦ ソリューション展開時に作成されたリポジトリをクローン ◦ 作成したマニフェストファイルを配置 ◦
展開するCFnテンプレート(SCPポリシー)を配置 ◦ CodeCommitへPush • S3 ◦ マニフェストファイル等をZIPに圧縮 ◦ ソリューション展開時に作成されたS3へアップロード custom-control-tower-configuration ├── manifest.yaml └── template └── CreateIAMRole.yaml フォルダ構成例→
39 CfCTによるIAMロール作成の自動化 IAMロールを例としているが、 CFn対応リソースであれば展開可能
40 ここまででも十分ですが、 さらに一歩踏み込んでみる
41 追加でセットアップする項目 • GuardDutyの有効化 • SecurityHubの有効化 • IAM Access Analyzerの有効化
• IAMロールの作成 • IAM ユーザー用パスワードポリシーの変更 • セキュリティ基準のコントロール無効化
42 自動化できていない理由 • IAM ユーザー用パスワードポリシーの変更 ◦ CloudFormation未対応 • セキュリティ基準のコントロール無効化 ◦
Organizations連携ではコントロールの反映ができない ◦ CloudFormation未対応 これらも自動化したい場合はどうするのか?
43 Lambda-backed カスタムリソースを利用 Lambda-backed カスタムリソースとは? →CloudFormation未対応のリソースも管理可能
44 CfCT利用時の実装イメージ 例)セキュリティ基準のコントロールを無効化
45 Lambda-backed カスタムリソースの注意点 • Lambda-backed カスタムリソースの理解が必要 ◦ エラーハンドリング ◦ リクエストタイプ(作成・更新・削除)ごとの処理
• テンプレートの視認性が悪い • Lambdaの作り込みが必要
46 カスタムリソースを理解したい人は チュートリアルをやってみましょう https://dev.classmethod.jp/articles/lambda-backed-custom-resources-tutorial/
47 リクエストタイプごとの処理を理解したい人は https://dev.classmethod.jp/articles/request-type-in-the-lambda-backed-custom-resources/
48 カスタムリソースをアカウント セットアップに組み込む
49 カスタムリソースのセットアップ追加
50 アカウントセットアップまとめ • CFn Account Baseline ◦ AWS Config ◦
AWS CloudTrail ◦ SNS(Config非準拠通知) ◦ Control Tower用 IAMロール • Organizations連携 ◦ Amazon GuardDuty ◦ AWS SecurityHub ◦ IAM Access Analyzer • Control Towerのカスタマイズ ◦ IAMロール ◦ IAMユーザー用パスワードポ リシー変更 ◦ セキュリティ基準のコントロー ル無効化
51 4. まとめ
52 まとめ • マルチアカウントの課題に対してセットアップ・管理を容易にする仕組 み・考え方をLanding Zone • 追加でアカウントのセットアップする場合はなるべく自動化 ◦ まずControl
Towerでセットアップされるものを理解する ◦ Organizations連携できるものは利用する • それ以外はControl Towerのカスタマイズがとっても便利 ◦ CFn対応リソースなら自動で展開可能 ◦ CFn非対応の場合は、カスタムリソースを組み合わせる
53 是非Control Towerを自社のポリシ ーに合わ せてカスタマイズしてみてください
None