Slide 1

Slide 1 text

AWS Control Towerを2年弱運用して得たエッセンスと展望 2023.11.15 小坂 洋祐 Copyright (c) Mizuho Research & Technologies. Ltd All Rights Reserved. みずほリサーチ&テクノロジーズ

Slide 2

Slide 2 text

自己紹介 2 小坂 洋祐(こさか ようすけ) 先端技術研究部 所属 社内のクラウド関係を推進するチームに所属。 今回紹介する社内AWSプラットフォームの開発に加え、 社内の案件に参画し、基盤設計・構築等を担当することが多いです。 ↑先月、12冠達成しました!

Slide 3

Slide 3 text

アジェンダ 3 • 社内プラットフォーム概要 • Control Towerの概要・活用 • Control Tower概要 • Control Towerでできること • Control Towerの運用 • ランディングゾーンのバージョンアップ対応 • アップデートによる機能改善 • まとめ

Slide 4

Slide 4 text

社内プラットフォーム概要 4

Slide 5

Slide 5 text

社内プラットフォーム概要 5 プロダクトビジョン みずほの新規事業創出およびシステム受託開発において、安心してAWSの有用性を発揮し、 プロジェクトオーナーやシステム開発者に対して、ビジネス価値の創造に迅速に着手し、集中し て開発できるプラットフォームを提供する。 社内には2つのプラットフォームが存在 種類 詳細 みずほ銀行向け みずほ銀行向けにセキュリティ等を含めたガバナンスの必 要性に鑑み、統制を利かせたAWS基盤。 お客様(外部)向け 今回紹介するプラットフォーム。上の基盤にはお客様向け の案件を載せることが困難なことから、別のプロダクトと して独自に構築を実施。

Slide 6

Slide 6 text

社内プラットフォーム概要 6 • 社員が安心してAWS環境を利用できるよう、 必要なアカウント管理やセキュリティ機能を実装したアカウントを迅速に提供 • アカウント管理の中心として、AWS Organizationsと比べてマルチアカウント管理に 優れているAWS Control Towerを活用(2021/11~) Control Tower テナントAWSアカウント1 提供サービス AWSアカウント管理 クラウドセキュリティ 開発システム テナントAWSアカウント2 テナントAWSアカウント3 マスターアカウント Auditアカウント Log Archiveアカウント ・ ・ ・

Slide 7

Slide 7 text

Control Towerの概要・活用 7

Slide 8

Slide 8 text

AWS Control Tower概要 8 AWS Control Tower 引用:https://aws.amazon.com/jp/controltower/

Slide 9

Slide 9 text

Control Towerでできること 9 ランディングゾーンに則ったアカウントの発行 • ベストプラクティスに則った設定でアカウントを発行する仕組み。 テナントAWSアカウント1 AWS Config AWS CloudTrail AWS CloudFormation AWS IAM

Slide 10

Slide 10 text

Control Towerでできること 10 ログ集約 • CloudTrail、Configのログを自動集約 テナントAWSアカウント1 AWS Config AWS CloudTrail Log Archiveアカウント Amazon S3 Log Archiveアカウント内のS3に自動集約

Slide 11

Slide 11 text

Control Towerでできること 11 通知 • 配下アカウントで起きたConfig Ruleの変更情報・準拠状況をSNS通知 テナントAWSアカウント1 AWS Config Auditアカウント AuditアカウントへのConfig集約・通知 AWS Config Amazon Simple Notification Service (Amazon SNS)

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Control Towerでできること 13 シングルサインオンの実現 • 複数アカウント切り替えもスムーズ アカウント名 ID メールアドレス アカウント名 ID メールアドレス アカウント名 ID メールアドレス アカウント名 ID メールアドレス アカウント名 ID メールアドレス ロール名1 ロール名2 選んだ権限でログイン可能

Slide 14

Slide 14 text

コントロール(ガードレール)適用 14

Slide 15

Slide 15 text

コントロール(ガードレール) 15 Control Tower のコントロール(旧:ガードレール)とは? コントロールとは、AWS 環境全体の継続的なガバナンスを提供する高レベルのルールのこと。 • 予防(制限) • 検知 • プロアクティブコントロール の3種類が存在。配下のアカウントに一括で反映できる。 本プラットフォームでは、現在は必須の23個に加え、強く推奨の1つを導入。 予防 検知 プロアクティブ 必須 20 3 0 強く推奨 1 0 0 選択的 0 0 0

Slide 16

Slide 16 text

コントロール(ガードレール) 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 を有効にする 強く推奨のコントロール(利用しているもの) • ルートユーザーのアクセスキーの作成を許可しない

Slide 17

Slide 17 text

コントロール(ガードレール) 17 プロアクティブコントロールとは? • CloudFormationのフックを使用して実装されるオプションコントロール。 • 配下アカウントがCloudFormationでリソースをプロビジョニングする前にリソースを スキャンし、準拠していないリソースのプロビジョニングを抑止。 本環境の利用用途が本番利用のみではなく、 検証なども含めているため幅広く、予防的要素が強いものはそぐわない。 また、全ユーザーがCloudFormationを利用しているわけではないため、利用していない。

Slide 18

Slide 18 text

ランディングゾーンのバージョンアップ時の対応 18

Slide 19

Slide 19 text

ランディングゾーンのバージョンアップ時の対応 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 の一部であるコント ロールについて、コンソールにドリフトが表示されるよう に更新 • リージョン拒否追加

Slide 20

Slide 20 text

ランディングゾーンのバージョンアップ時の対応 20 通常の更新 Control Towerの画面からランディングゾーンの更新を実行可能

Slide 21

Slide 21 text

ランディングゾーンのバージョンアップ時の対応 21 OU毎の更新 ランディングゾーンの更新後、組織単位(OU)を再登録することで各アカウントに反映可能

Slide 22

Slide 22 text

ランディングゾーンのバージョンアップ時の対応 22 起きたこと Ver.3.0の更新でアカウントベースの AWS CloudTrail 証跡から組織ベースの証跡への変更 これまで • CloudTrailの証跡は各アカウントのCloudWatch Logsに出力 • aws-controltower/CloudTrailLogsというロググループがアカウント毎に作られていた。

Slide 23

Slide 23 text

ランディングゾーンのバージョンアップ時の対応 23 バージョンアップ後 • CloudTrailの証跡はControl TowerのマスターアカウントのCloudWatch Logsに集約して出力 複数アカウント分が1箇所に。 OUID- アカウントID

Slide 24

Slide 24 text

ランディングゾーンのバージョンアップ時の対応 24 発生した事象 • Security HubのCIS 3.1-3.15のチェックが出来ない。(現:CloudWatch.1-14 ※1件削除)

Slide 25

Slide 25 text

ランディングゾーンのバージョンアップ時の対応 25 CIS 3.1-3.15のチェックにはCloudTrailの証跡(CloudWatch Logsに出力されたもの)が必要 • 元々、Control Towerによって各アカウントに自動的に作成されていたLogGroupを利用 • 本LogGroupに、メトリクスフィルタを作成し、 アラーム→SNS Topicで通知を入れることでチェックOKになる仕様。 CloudWatch Logs Alarm MericsFilter SNS Security Hub 存在確認:OK

Slide 26

Slide 26 text

ランディングゾーンのバージョンアップ時の対応 26 必要なLogGroupが各アカウントから消滅 • 存在確認がNGとなり、チェックができなくなってしまった。 CloudWatch Logs Alarm MericsFilter SNS Security Hub 存在確認:NG

Slide 27

Slide 27 text

ランディングゾーンのバージョンアップ時の対応 27 対応 • 各アカウントに、CIS確認用の証跡を追加 追加証跡 組織証跡

Slide 28

Slide 28 text

ランディングゾーンのバージョンアップ時の対応 28 ランディングゾーンのバージョンアップ時の注意事項 • 現在までに経験した5回のバージョンアップで、このような大きな変更は1回のみ。 • 他の変更は主に機能追加や改良のため、問題なく実施できた。 • バージョンアップしないという選択肢はクラウドサービスを利用する上で取らないが、 更新は配下アカウントへの影響も考えられるため、どんな変化・変更があるかは必ず確認する。 可能であれば、バージョンアップを試せる環境があると望ましい 検証用Control Towerアカウントを用意しましょう。

Slide 29

Slide 29 text

アップデートによる機能改善 29

Slide 30

Slide 30 text

アップデートによる機能改善 30 ランディングゾーンの更新以外にも、プラットフォーム運用者として嬉しいアップデートが多数 リリース日 更新内容 2021/07/28 • ログのS3バケットのキーを指定可能に 2022/08/15 • カスタマイズされたログの保持 ログのS3 バケットの保持ポリシーをカスタマイズする機能 を提供。当初は1年のみ。 2022/12/16 • 同時アカウント操作 Account Factory 5つまで同時実行可能に 2023/04/19 • 大阪リージョン対応

Slide 31

Slide 31 text

アップデートによる機能改善:S3バケットのキーを指定可能 31 旧仕様ではSSE-S3(S3のデフォルト暗号化)であり、本来のAWSベストプラクティスである KMSキーによる暗号化をすることが出来なかった。 新仕様ではControl Tower内で統一された1つのKMSキーを利用して暗号化可能に。

Slide 32

Slide 32 text

アップデートによる機能改善:ログのS3バケットの保持ポリシーをカスタマイズ 32 旧仕様 赤枠のバケット、保管期限が1年から変更できなかった。社内の保持ポリシーにも合わず、 このままでは正式なものとして利用できない可能性があった。

Slide 33

Slide 33 text

アップデートによる機能改善:ログのS3バケットの保持ポリシーをカスタマイズ 33 新仕様 ランディングゾーンの設定画面でログ用、アクセスログ用それぞれを変更可能に。 年または日で指定可能。

Slide 34

Slide 34 text

アップデートによる機能改善:Account Factory 5つまで同時実行可能 34 Account Factoryとは? Control Towerの機能内から新規アカウントを発行する機能。 実態はAWS Service Catalogという機能で実装されている。(参考) 製品ID

Slide 35

Slide 35 text

アップデートによる機能改善:Account Factory 5つまで同時実行可能 35 Account Factoryの旧仕様 新アカウント発行処理は並列実行不可であった。 • 1件目の実行中に2件目を実行すると2件目は強制的にエラーとなっていた。 • 30-40分程度待ってから改めて入力する必要があった。 本改善により、5つまで同時実行可能に! 今後、同時に複数のアカウントを発行する依頼が来る予定もあり、非常に嬉しい改善点であった。

Slide 36

Slide 36 text

アップデートによる機能改善:大阪リージョン対応 36 引用 https://aws.amazon.com/jp/about-aws/whats-new/2023/04/aws-control- tower-additional-regions/ Control Tower 管理対象になり、ランディングゾーンの適用が可能に プラットフォームとして正式に大阪リージョンをサービス提供開始 ←今年のAWS Summitの前日!

Slide 37

Slide 37 text

まとめ 37

Slide 38

Slide 38 text

メリット・デメリットまとめ 38 メリット • Control Towerの活用により、マルチアカウント環境において、アカウント発行、 ID連携/SSOログイン、ランディングゾーンによる統制、コントロールやSCPによる制限等を ほぼマネージドで実現することが可能。 • Control Towerとしての料金はなし。ランディングゾーンとしてデプロイされたサービスの料金 のみ発生。(CloudTrailやConfig、S3保管料金など。) デメリット • ランディングゾーンは定期更新が必要。稀に大きな変更も含まれるため、内容はよく確認して適 用すること。特に、本番運用しているアカウントへの影響をよく考慮すること。 • ランディングゾーンのカスタマイズ性は高くないので、活用に当たって要件に合うか検証が必要。 • IP制限や独自サービス提供など、ランディングゾーンに含まれないものは独自に行う必要がある。

Slide 39

Slide 39 text

おわりに 39 今回はControl Towerを2年弱運用した上でわかったエッセンスを展開させていただきました。 Control Towerの活用により、マルチアカウント管理という運用の難しい部分を AWSに任せることが出来、我々は提供サービスの開発に注力することが出来ています。 毎年必要な改善が行われており、最近では大阪リージョンも対応したことから、今後は日本国内でも 企業のマルチアカウント管理サービスとして必須のサービスとなるのではないでしょうか。

Slide 40

Slide 40 text

40 Thank You!