$30 off During Our Annual Pro Sale. View Details »

AWS Control Towerを2年弱運用して得たエッセンスと展望/securityjaws31

AWS Control Towerを2年弱運用して得たエッセンスと展望/securityjaws31

Security-JAWS第31回での登壇資料です。
イベントURL:https://s-jaws.doorkeeper.jp/events/165371

More Decks by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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



    View Slide

  7. Control Towerの概要・活用
    7

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. まとめ
    37

    View Slide

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

    View Slide

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

    View Slide

  40. 40
    Thank You!

    View Slide