Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.9k
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.3k
Azure Verified Moduleを触って分かった注目ポイント/azure-verified-module-begin
mhrtech
1
960
BLEA v3.0.0の新しいベストプラクティスを取り入れた効率的なAWS CDK開発/jawsug_cdk16
mhrtech
3
640
あなたのアプリケーションをレガシーコードにしないための実践Pytest入門/pyconjp2024_pytest
mhrtech
6
2.8k
静的サイトのCI/CDでも侮るなかれ!Docs as Codeに沿ったセキュアな開発プロセスの実践/secure-docsascode-cicd-for-static-sites
mhrtech
13
2.9k
Kubernetes でワークフローを組むなら cdk8s-argoworkflow がよさそう!/ cdk8s-argoworkflow is great!
mhrtech
3
1.3k
IaCでセキュリティを強化しよう!~IAMが苦手な開発者でも簡単に権限を絞れる。そう、AWS CDKならね!~/secjaws32
mhrtech
5
2.7k
そのリファレンス誰のため?ユーザ活用に向き合う/finjaws31
mhrtech
0
640
AWS CDKにテストは必要?試行錯誤したスクラム開発事例を紹介!/CdkConJp2023
mhrtech
5
6.2k
Other Decks in Technology
See All in Technology
スパイクアクセス対策としての pitchfork 導入
riseshia
0
140
LY Accessibility Guidelines @fukuoka_a11yconf_前夜祭
lycorptech_jp
PRO
1
150
【AWS re:Invent 2024】Amazon Bedrock アップデート総まとめ
minorun365
PRO
7
510
40歲的我會給20歲的自己,關於軟體開發的7個建議
line_developers_tw
PRO
0
2.2k
Replit Agent
kawaguti
PRO
2
170
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
3.5k
12/3(火)のBedrockアプデ速報(re:Invent 2024 Daily re:Cap #2 with AWS Heroes)
minorun365
PRO
4
140
職能を超えたモブプログラミングが品質に与えた良い影響
tonionagauzzi
1
120
Raspberry Pi 秋の新製品をチェックしてみよう / 20231202-rpi-jam-tokyo
akkiesoft
0
420
Kaggleふりかえり会〜LLM 20 Questions & ISIC 2024
recruitengineers
PRO
2
180
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
13
2.8k
[DevFestTokyo]Accelerating Flutter App Development Using Generative AI
korodroid
1
330
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Making Projects Easy
brettharned
116
5.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
94
17k
Being A Developer After 40
akosma
87
590k
Optimizing for Happiness
mojombo
376
70k
The Cult of Friendly URLs
andyhume
78
6.1k
How to Ace a Technical Interview
jacobian
276
23k
KATA
mclloyd
29
14k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
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!