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.9k
AWS Control Towerをカスタマイズして使ってみよう
Developers.IO 2021 DECADE VideoSession
suzuki-jun
October 15, 2021
Tweet
Share
Other Decks in Technology
See All in Technology
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
300
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
15
4.9k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
150
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
200
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
590
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
300
技術選定、下から見るか?横から見るか?
masakiokuda
0
180
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
200
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Thoughts on Productivity
jonyablonski
73
5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
280
Build your cross-platform service in a week with App Engine
jlugia
234
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Producing Creativity
orderedlist
PRO
348
40k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
76
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
870
Faster Mobile Websites
deanohume
310
31k
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