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を2年弱運用して得たエッセンスと展望/securityjaws31
Search
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
November 15, 2023
Technology
1
1.8k
AWS Control Towerを2年弱運用して得たエッセンスと展望/securityjaws31
Security-JAWS第31回での登壇資料です。
イベントURL:
https://s-jaws.doorkeeper.jp/events/165371
みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
November 15, 2023
Tweet
Share
More Decks by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
See All by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
6
1.1k
Azure Verified Moduleを触って分かった注目ポイント/azure-verified-module-begin
mhrtech
1
850
BLEA v3.0.0の新しいベストプラクティスを取り入れた効率的なAWS CDK開発/jawsug_cdk16
mhrtech
3
600
あなたのアプリケーションをレガシーコードにしないための実践Pytest入門/pyconjp2024_pytest
mhrtech
6
2.5k
静的サイトのCI/CDでも侮るなかれ!Docs as Codeに沿ったセキュアな開発プロセスの実践/secure-docsascode-cicd-for-static-sites
mhrtech
12
2.8k
Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!
mhrtech
3
1.2k
IaCでセキュリティを強化しよう!~IAMが苦手な開発者でも簡単に権限を絞れる。そう、AWS CDKならね!~/secjaws32
mhrtech
5
2.7k
そのリファレンス誰のため?ユーザ活用に向き合う/finjaws31
mhrtech
0
630
AWS CDKにテストは必要?試行錯誤したスクラム開発事例を紹介!/CdkConJp2023
mhrtech
5
6.1k
Other Decks in Technology
See All in Technology
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
110
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
Can We Measure Developer Productivity?
ewolff
1
150
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
380
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
310
Terraform Stacks入門 #HashiTalks
msato
0
350
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Optimizing for Happiness
mojombo
376
70k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
A better future with KSS
kneath
238
17k
Side Projects
sachag
452
42k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Being A Developer After 40
akosma
86
590k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Scaling GitHub
holman
458
140k
Transcript
AWS Control Towerを2年弱運用して得たエッセンスと展望 2023.11.15 小坂 洋祐 Copyright (c) Mizuho Research
& Technologies. Ltd All Rights Reserved. みずほリサーチ&テクノロジーズ
自己紹介 2 小坂 洋祐(こさか ようすけ) 先端技術研究部 所属 社内のクラウド関係を推進するチームに所属。 今回紹介する社内AWSプラットフォームの開発に加え、 社内の案件に参画し、基盤設計・構築等を担当することが多いです。
↑先月、12冠達成しました!
アジェンダ 3 • 社内プラットフォーム概要 • Control Towerの概要・活用 • Control Tower概要
• Control Towerでできること • Control Towerの運用 • ランディングゾーンのバージョンアップ対応 • アップデートによる機能改善 • まとめ
社内プラットフォーム概要 4
社内プラットフォーム概要 5 プロダクトビジョン みずほの新規事業創出およびシステム受託開発において、安心してAWSの有用性を発揮し、 プロジェクトオーナーやシステム開発者に対して、ビジネス価値の創造に迅速に着手し、集中し て開発できるプラットフォームを提供する。 社内には2つのプラットフォームが存在 種類 詳細 みずほ銀行向け
みずほ銀行向けにセキュリティ等を含めたガバナンスの必 要性に鑑み、統制を利かせたAWS基盤。 お客様(外部)向け 今回紹介するプラットフォーム。上の基盤にはお客様向け の案件を載せることが困難なことから、別のプロダクトと して独自に構築を実施。
社内プラットフォーム概要 6 • 社員が安心してAWS環境を利用できるよう、 必要なアカウント管理やセキュリティ機能を実装したアカウントを迅速に提供 • アカウント管理の中心として、AWS Organizationsと比べてマルチアカウント管理に 優れているAWS Control
Towerを活用(2021/11~) Control Tower テナントAWSアカウント1 提供サービス AWSアカウント管理 クラウドセキュリティ 開発システム テナントAWSアカウント2 テナントAWSアカウント3 マスターアカウント Auditアカウント Log Archiveアカウント ・ ・ ・
Control Towerの概要・活用 7
AWS Control Tower概要 8 AWS Control Tower 引用:https://aws.amazon.com/jp/controltower/
Control Towerでできること 9 ランディングゾーンに則ったアカウントの発行 • ベストプラクティスに則った設定でアカウントを発行する仕組み。 テナントAWSアカウント1 AWS Config AWS
CloudTrail AWS CloudFormation AWS IAM
Control Towerでできること 10 ログ集約 • CloudTrail、Configのログを自動集約 テナントAWSアカウント1 AWS Config AWS
CloudTrail Log Archiveアカウント Amazon S3 Log Archiveアカウント内のS3に自動集約
Control Towerでできること 11 通知 • 配下アカウントで起きたConfig Ruleの変更情報・準拠状況をSNS通知 テナントAWSアカウント1 AWS Config
Auditアカウント AuditアカウントへのConfig集約・通知 AWS Config Amazon Simple Notification Service (Amazon SNS)
Control Towerでできること 12 シングルサインオンの実現 • IAM Identity Centerを利用して、EntraID(旧Azure AD) 等のIDソースの情報でログイン可能
テナントAWSアカウント1 マスターアカウント SSOログイン AWS IAM AWS IAM Identity Center EntraID(旧Azure AD) 等のID Provider ※なくても可能 ①ログイン ②SSOログイン ③Assume Role Role
Control Towerでできること 13 シングルサインオンの実現 • 複数アカウント切り替えもスムーズ アカウント名 ID メールアドレス アカウント名
ID メールアドレス アカウント名 ID メールアドレス アカウント名 ID メールアドレス アカウント名 ID メールアドレス ロール名1 ロール名2 選んだ権限でログイン可能
コントロール(ガードレール)適用 14
コントロール(ガードレール) 15 Control Tower のコントロール(旧:ガードレール)とは? コントロールとは、AWS 環境全体の継続的なガバナンスを提供する高レベルのルールのこと。 • 予防(制限) •
検知 • プロアクティブコントロール の3種類が存在。配下のアカウントに一括で反映できる。 本プラットフォームでは、現在は必須の23個に加え、強く推奨の1つを導入。 予防 検知 プロアクティブ 必須 20 3 0 強く推奨 1 0 0 選択的 0 0 0
コントロール(ガードレール) 16 使用しているコントロールの例 必須のコントロール(抜粋) • AWS Control Tower によって設定された Amazon
CloudWatch Logs ロググループの変更を許可しない • AWS Control Tower によって設定された Amazon CloudWatch の変更を許可しない • ログアーカイブの削除を許可しない • AWS Control Tower によって設定された Amazon SNS のサブスクリプションへの変更を不許可にします • CloudTrail への設定変更を不許可にします • 利用可能なすべてのリージョンで CloudTrail を有効にする • AWS Control Tower によって作成された AWS Config アグリゲーション認可の削除を許可しない • AWS Config への設定変更を不許可にします • 利用可能なすべてのリージョンで AWS Config を有効にする 強く推奨のコントロール(利用しているもの) • ルートユーザーのアクセスキーの作成を許可しない
コントロール(ガードレール) 17 プロアクティブコントロールとは? • CloudFormationのフックを使用して実装されるオプションコントロール。 • 配下アカウントがCloudFormationでリソースをプロビジョニングする前にリソースを スキャンし、準拠していないリソースのプロビジョニングを抑止。 本環境の利用用途が本番利用のみではなく、 検証なども含めているため幅広く、予防的要素が強いものはそぐわない。
また、全ユーザーがCloudFormationを利用しているわけではないため、利用していない。
ランディングゾーンのバージョンアップ時の対応 18
ランディングゾーンのバージョンアップ時の対応 19 過去のランディングゾーンバージョンアップ履歴 Ver. リリース日 主要な更新内容 2.7 2021/03/31 • リージョン追加(東京)
【ここからスタート】 2.8 2022/02/12 • Security Hub/Configの対応、リージョン拒否追加 2.9 2022/04/20 • Python3.9対応 3.0 2022/07/27 • アカウントベースの AWS CloudTrail 証跡から組織ベース の証跡への変更。 • リージョン拒否追加 3.1 2023/02/10 • ログ記録アカウントの Access Logging バケットにおける サーバーアクセスログ記録を非アクティブ化 • リージョン拒否追加 3.2 2023/06/17 • Security Hub:AWS Control Tower の一部であるコント ロールについて、コンソールにドリフトが表示されるよう に更新 • リージョン拒否追加
ランディングゾーンのバージョンアップ時の対応 20 通常の更新 Control Towerの画面からランディングゾーンの更新を実行可能
ランディングゾーンのバージョンアップ時の対応 21 OU毎の更新 ランディングゾーンの更新後、組織単位(OU)を再登録することで各アカウントに反映可能
ランディングゾーンのバージョンアップ時の対応 22 起きたこと Ver.3.0の更新でアカウントベースの AWS CloudTrail 証跡から組織ベースの証跡への変更 これまで • CloudTrailの証跡は各アカウントのCloudWatch
Logsに出力 • aws-controltower/CloudTrailLogsというロググループがアカウント毎に作られていた。
ランディングゾーンのバージョンアップ時の対応 23 バージョンアップ後 • CloudTrailの証跡はControl TowerのマスターアカウントのCloudWatch Logsに集約して出力 複数アカウント分が1箇所に。 OUID- アカウントID
ランディングゾーンのバージョンアップ時の対応 24 発生した事象 • Security HubのCIS 3.1-3.15のチェックが出来ない。(現:CloudWatch.1-14 ※1件削除)
ランディングゾーンのバージョンアップ時の対応 25 CIS 3.1-3.15のチェックにはCloudTrailの証跡(CloudWatch Logsに出力されたもの)が必要 • 元々、Control Towerによって各アカウントに自動的に作成されていたLogGroupを利用 • 本LogGroupに、メトリクスフィルタを作成し、
アラーム→SNS Topicで通知を入れることでチェックOKになる仕様。 CloudWatch Logs Alarm MericsFilter SNS Security Hub 存在確認:OK
ランディングゾーンのバージョンアップ時の対応 26 必要なLogGroupが各アカウントから消滅 • 存在確認がNGとなり、チェックができなくなってしまった。 CloudWatch Logs Alarm MericsFilter SNS
Security Hub 存在確認:NG
ランディングゾーンのバージョンアップ時の対応 27 対応 • 各アカウントに、CIS確認用の証跡を追加 追加証跡 組織証跡
ランディングゾーンのバージョンアップ時の対応 28 ランディングゾーンのバージョンアップ時の注意事項 • 現在までに経験した5回のバージョンアップで、このような大きな変更は1回のみ。 • 他の変更は主に機能追加や改良のため、問題なく実施できた。 • バージョンアップしないという選択肢はクラウドサービスを利用する上で取らないが、 更新は配下アカウントへの影響も考えられるため、どんな変化・変更があるかは必ず確認する。
可能であれば、バージョンアップを試せる環境があると望ましい 検証用Control Towerアカウントを用意しましょう。
アップデートによる機能改善 29
アップデートによる機能改善 30 ランディングゾーンの更新以外にも、プラットフォーム運用者として嬉しいアップデートが多数 リリース日 更新内容 2021/07/28 • ログのS3バケットのキーを指定可能に 2022/08/15 •
カスタマイズされたログの保持 ログのS3 バケットの保持ポリシーをカスタマイズする機能 を提供。当初は1年のみ。 2022/12/16 • 同時アカウント操作 Account Factory 5つまで同時実行可能に 2023/04/19 • 大阪リージョン対応
アップデートによる機能改善:S3バケットのキーを指定可能 31 旧仕様ではSSE-S3(S3のデフォルト暗号化)であり、本来のAWSベストプラクティスである KMSキーによる暗号化をすることが出来なかった。 新仕様ではControl Tower内で統一された1つのKMSキーを利用して暗号化可能に。
アップデートによる機能改善:ログのS3バケットの保持ポリシーをカスタマイズ 32 旧仕様 赤枠のバケット、保管期限が1年から変更できなかった。社内の保持ポリシーにも合わず、 このままでは正式なものとして利用できない可能性があった。
アップデートによる機能改善:ログのS3バケットの保持ポリシーをカスタマイズ 33 新仕様 ランディングゾーンの設定画面でログ用、アクセスログ用それぞれを変更可能に。 年または日で指定可能。
アップデートによる機能改善:Account Factory 5つまで同時実行可能 34 Account Factoryとは? Control Towerの機能内から新規アカウントを発行する機能。 実態はAWS Service
Catalogという機能で実装されている。(参考) 製品ID
アップデートによる機能改善:Account Factory 5つまで同時実行可能 35 Account Factoryの旧仕様 新アカウント発行処理は並列実行不可であった。 • 1件目の実行中に2件目を実行すると2件目は強制的にエラーとなっていた。 •
30-40分程度待ってから改めて入力する必要があった。 本改善により、5つまで同時実行可能に! 今後、同時に複数のアカウントを発行する依頼が来る予定もあり、非常に嬉しい改善点であった。
アップデートによる機能改善:大阪リージョン対応 36 引用 https://aws.amazon.com/jp/about-aws/whats-new/2023/04/aws-control- tower-additional-regions/ Control Tower 管理対象になり、ランディングゾーンの適用が可能に プラットフォームとして正式に大阪リージョンをサービス提供開始 ←今年のAWS
Summitの前日!
まとめ 37
メリット・デメリットまとめ 38 メリット • Control Towerの活用により、マルチアカウント環境において、アカウント発行、 ID連携/SSOログイン、ランディングゾーンによる統制、コントロールやSCPによる制限等を ほぼマネージドで実現することが可能。 • Control
Towerとしての料金はなし。ランディングゾーンとしてデプロイされたサービスの料金 のみ発生。(CloudTrailやConfig、S3保管料金など。) デメリット • ランディングゾーンは定期更新が必要。稀に大きな変更も含まれるため、内容はよく確認して適 用すること。特に、本番運用しているアカウントへの影響をよく考慮すること。 • ランディングゾーンのカスタマイズ性は高くないので、活用に当たって要件に合うか検証が必要。 • IP制限や独自サービス提供など、ランディングゾーンに含まれないものは独自に行う必要がある。
おわりに 39 今回はControl Towerを2年弱運用した上でわかったエッセンスを展開させていただきました。 Control Towerの活用により、マルチアカウント管理という運用の難しい部分を AWSに任せることが出来、我々は提供サービスの開発に注力することが出来ています。 毎年必要な改善が行われており、最近では大阪リージョンも対応したことから、今後は日本国内でも 企業のマルチアカウント管理サービスとして必須のサービスとなるのではないでしょうか。
40 Thank You!