Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Control Towerを利用したマルチアカウント管理とセキュリティ統制

AWS Control Towerを利用したマルチアカウント管理とセキュリティ統制

JAWS DAYS 2021の登壇資料です。
詳細はブログをご参照ください。
https://dev.classmethod.jp/articles/jaws-days-2021-control-tower/

cm-usuda-keisuke

March 20, 2021
Tweet

More Decks by cm-usuda-keisuke

Other Decks in Technology

Transcript

  1. 14 考えることはまだまだいろいろ • IAMどうする︖ • すべてのアカウントにIAM Userを作る︖ • SSOする︖ •

    ポリシーは︖ • セキュリティは︖ • 全体でCloudTrailをどうやって展開する︖ • CloudFormationで展開していく︖ • ログはどうやって管理する︖ • 危ない設定をどうやって確認する︖
  2. 15 例えばS3のセキュリティ対策 • S3に格納しているデータを保護する • SSEによる暗号化 • TLS必須 • 公開設定をしない

    • パブリックアクセスブロックする • これらが適切に守られていることを確認したい
  3. 17 AWSのマネジメント & ガバナンスサービス⼀例 マルチアカウント戦略を補助するサービスはたくさん • AWS Organizations • AWS

    Config • Config Rules • Config Aggregator • Systems Manager • CloudFormation • CFn StackSets • Trusted Advisor • Well-Architected Framework • AWS SSO • RAM
  4. 20 AWS Configとは • 各種AWSリソースの設定状況を収集 • 求める設定レベルに準拠しているかConfig Rulesで チェック •

    ⾃動修復させることも • Aggregatorによりリージョンやアカウントをまた がって設定や準拠情報を収集可能
  5. 22 AWS Systems Managerとは • EC2の管理に関する様々な機能を有する • コマンド実⾏(RunCommand) • シェル接続(Session

    Manager) • パッチ管理(Patch Manager) • インベントリ収集(Inventory) • などなど • リージョン・アカウントまたがって収集・可視化す るExplorerもあり
  6. 27 Landing Zoneの構成要素 だいたいこんな感じの機能を持っている • ID管理: SSOなど各アカウントに対するアクセス管 理 • ガードレール:

    SCPやConfig Rulesなどでポリシー に反する操作をさせない or してもすぐ検知する • ベースラインの展開: CloudTrailやConfigなどの仕 組みを展開する(Vending Machine) • ログ管理・監視: 必要なログを保全したり、健全な状 態か監視する
  7. 29 AWS Landing Zoneソリューションとは • Landing Zoneの実装⽅法 の1つ、これ→ • AWSソリューションとして

    提供されている • CloudFormationで展開す る • ただし延⻑サポート中で追加 機能は提供されない
  8. 30 AWS Control Towerとは • Landing Zoneを展開す るマネージドサービス • AWS

    Landing Zoneソ リューションの後継 • ⼤体→のような感じ
  9. 31 それぞれの違い • Landing Zoneは考え⽅で、実装⼿段としてAWS Landing ZoneソリューションやControl Towerが ある •

    どちらの仕組みもAWS Organizationsを使う • 既存の仕組みを使うなら今はControl Tower1択
  10. 34 ID管理 • AWS SSO • ソリューションやControl Towerで使⽤ • ADなどIdPと連携可能

    • OktaとかOneLoginとかIdPサービス • AWS SSOを使わなくても直接AWSアカウントにSSOで きる機能を持っている • AWS以外のSSOにも利⽤できる • IAM管理AWSアカウント • AWS Organizationsがなくても実現できる
  11. 35 ガードレール • Service Control Policy(予防的ガードレール) • OU/アカウント全体に強制的に適⽤するポリシー • Config

    Rules(発⾒的ガードレール) • ポリシーに違反する設定を検知・⾃動修復できる • AWS Organizationsが無くても利⽤可能 • Aggregatorにより集約可能 • Dome9/Prisma Cloudなど(3rd Party) • Posture Management系のサービス • AWS以外にも対応、Organizations不要
  12. 36 ベースラインサービス⼀例 • CloudTrail • Config • GuardDuty • Security

    Hub • IAM Access Analyzer • Detective • マルチアカウント連携機能があるものも
  13. 44 3. Control Towerの展開と運⽤ • 仕組み • 使い⽅ • 具体的な実装と運⽤

    • 細かいハマりどころ • メリット・デメリット
  14. 47 展開する仕組み • Control Towerを有 効化したアカウント がマネジメントアカ ウント(親) • CoreOU配下にLog

    ArchiveとAuditアカ ウントを作成 • CustomOU(任意の OU)に新しいアカウ ントを追加できる
  15. 54 セットアップ • ポチッと有効化 • 60分待つ • 出来上がり 詳細はブログへ 無効化はサポート申請なので

    うかつに有効化しないように h0ps://dev.classmethod.jp/ar=cles/aws-control-tower-labs-b1/ 今はラボが変わっているので以下も参照してください h0ps://controltower.aws-management.tools/immersionday/
  16. 55 ガードレール • SCP(予防)とConfig Rules(検出)で実現している • 必須と任意(強く推奨 / 選択的)がある •

    CoreOU特有の必須ガードレールがある • 任意ガードレールはOU毎に設定可能 • Control Towerを有効化したらどんなOUを作りど んな任意ガードレールを適⽤するか考える
  17. 56 展開されるガードレール(必須) • ログアーカイブの保存時に暗号化を有効にする • ログアーカイブのアクセスログ作成を有効にする • ログアーカイブへのポリシーの変更を不許可にします • ログアーカイブへのパブリック読み取りアクセスを不許

    可にする • ログアーカイブへのパブリック書き込みアクセスを不許 可にする • ログアーカイブの保持ポリシーを設定する • CloudTrail への設定変更を不許可にします • CloudTrail イベントと CloudWatch logs を統合する • 利⽤可能なすべてのリージョンで CloudTrail を有効に する • CloudTrail ログファイルの整合性検証を有効にする • AWS Control Tower によって設定された CloudWatch への変更を不許可にします • AWS Control Tower によって設定された AWS Config アグリゲーションへの変更を不許可にします • AWS Config への設定変更を不許可にします • 利⽤可能なすべてのリージョンで AWS Config を有効 にする • AWS Control Tower によって設定された AWS Config ルールへの変更を不許可にします • AWS Control Tower によって設定された IAM ロール への変更を不許可にします • AWS Control Tower によって設定された Lambda 関 数への変更を不許可にします • Amazon SNS によって設定された AWS Control Tower への変更を不許可にします • AWS Control Tower によって設定された Amazon SNS のサブスクリプションへの変更を不許可にします
  18. 57 展開できるガードレール(任意) • MFA なしで IAM ユーザーへのアクセスを許可し ない • MFA

    なしで IAM ユーザーへのコンソールアクセ スを許可しない • S3 バケットのクロスリージョンレプリケーショ ンを許可しない • MFA なしで S3 バケットでの削除アクションを許 可しない • バージョンが有効かされていない S3 バケットを 許可しない • EBS ⽤に最適化されていない EC2 インスタンス タイプの起動を許可しない • EC2 インスタンスにアタッチされていない EBS ボリュームを許可しない • EC2 インスタンスにアタッチされた EBS ボ リュームの暗号化を有効にする • RDS データベースインスタンスへのパブリックア クセスを許可しない • RDS データベーススナップショットへのパブリッ クアクセスを許可しない • 暗号化されたストレージではない RDS データ ベースインスタンスを許可しない • RDP を介したインターネット接続を許可しない • SSH を介したインターネット接続を許可しない • ルートユーザーとしてのアクションを許可しない • ルートユーザーのアクセスキーの作成を許可しな い • ルートユーザーに対して、MFA を有効化する • S3 バケットへのパブリック読み取りアクセスを 不許可にする • S3 バケットへのパブリック書き込みアクセスを 不許可にする
  19. 58 アカウントファクトリー • Control Towerから新規 AWSアカウントを発⾏する 仕組み • Service Catalogを利⽤し

    て作成・設定の展開が⾏わ れる • デフォルトではNAT Gateway勝⼿に作られるの で初⼿VPC作成無効化推奨
  20. 62 各種セキュリティ機能の有効化 • CloudTrail / Configは有効化されているが以下は 有効化されない • GuardDuty •

    Security Hub • IAM Access Analyzer • Detective • Auditアカウントに委任してOrganizations連携し て有効化するといい(Detectiveはできませんが)
  21. 63 OU / SCP追加 • 実利⽤するAWSアカウントのためのOU / SCPは追 加で設計して作成する必要がある •

    追加ガードレール(GuardDuty等)変更禁⽌ • テストOUでインスタンスタイプ制限 • リージョン制限 • 参考: https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps_examples.html • これに役⽴つ機能はないので、ここはControl Towerが無い時と同じ
  22. 64 バージョンアップ • Control Towerはマネージドサービスだが、機能の 追加でバージョンアップが必要になる事がある • 追加リージョン • ⼦アカウントへの追加設定

    • などなど • ⼿動でバージョンアップを実施し、必要に応じて⼦ アカウントでも作業が必要 • 全体管理の仕組みをある程度楽に展開できると考え たらいいかも
  23. 66 安全な運⽤ • Control Towerに限らずSCPは思惑と違う制限を⽣ むことがある • OU間のアカウントの移動がうまく⾏かなかったり ワークロードが⽌まることも考える必要がある •

    アカウント周りの作業を安全に⾏うSCPが緩めのOU を⽤意するのもあり • Control Tower⾃体の動作検証に別のControl Towerセットを⽤意するのもあり
  24. 68 アカウント受け⼊れ時 • ⼀部のリージョンでSTSを無効化しているとアカウ ントの受け⼊れに失敗する • 受け⼊れ時に事前チェックする内容はUserGuideに まとまっている • https://docs.aws.amazon.com/controltower

    /latest/userguide/importing-existing.html • 他にもStackSetsの数やSCPなど要チェック • 受け⼊れ時に失敗した場合、状況によりロールバッ クに失敗したCFnの⼿動対応が必要
  25. 69 アカウント受け⼊れ時 • AWS Configを⼀度 無効化する必要がある • マネジメントコンソー ルで無効化するだけで は⾜りない

    • 表⽰されないリソース が残っている • 削除して回る必要があ る h"ps://dev.classmethod.jp/ar3cles/disable-config-all-region-cli/
  26. 73 メリット • (操作的に)簡単にLanding Zoneをセットアップで きる • ガードレールが⾃動で設定・展開される • 任意のガードレールを簡単に設定・解除できる

    • アカウント⼀覧とコンプライアンス状況が1機能で簡 単に管理できる • ガードレールや管理の仕組みがマネージドで提供さ れ、(⽐較的)簡単にバージョンアップできる
  27. 74 デメリット • Landing Zoneの柔軟性がない • 独⾃のガードレール追加は簡単ではない • 必須ガードレールを外せない •

    CoreOUの機能を変更できない • 料⾦コストを抑えられない -> リージョンを外すのは2.6で対応 • 孫OUに対応していない • SCP設定数が通常より1-2個制限される • 対応リージョンが限られる • 管理外リージョンの管理に⼿間がかかる(2重管理) • セキュリティ機能を別で管理する必要がある • 東京リージョンに対応していない • バージョンアップ時に負荷がかかる
  28. 76 推奨選定⽅法 • 早く簡単にLanding Zoneを構築したいか • Landing Zoneの構成がある程度固定されていて問題ない か •

    料⾦コストより構築・運⽤管理コストを削減したいか • 現状の必須/任意ガードレールを許容できるか • AWS SSOを利⽤したアクセスが問題ないか • 現状東京リージョンが対応していなくて問題ないか • 東京リージョンに対応したい時にControl Towerを構築し 直す覚悟があるか
  29. 79