Save 37% off PRO during our Black Friday Sale! »

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

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

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

A857277d74d4719f7f7751dca5ed553e?s=128

cm-usuda-keisuke

March 20, 2021
Tweet

Transcript

  1. AWS Control Towerを利⽤した マルチアカウント管理とセキュリティ統制 2021/03/20 ⾅⽥佳祐 1 #jawsdays2021 #jawsug #jawsdays

    #jawsdays2021_C
  2. 2 ⾃⼰紹介 ⾅⽥佳祐 クラスメソッド株式会社 ・AWS事業本部 シニア ソリューションアーキテクト セキュリティチームリーダー AWS認定インストラクター ・Security-JAWS運営

    ・好きなサービス: Amazon Detective Amazon Detec,ve みんなのAWS(技術評論社)
  3. 3 セッションの概要 • AWSの利⽤が進むとマルチアカウント管理 が避けて通れない道 • マルチアカウント管理のベストプラクティ スと選択肢の提⽰ • AWS

    Control Towerを利⽤した⼿法を詳 細に解説
  4. 4 セッションの対象者 どれか1つでも当てはまれば聞いてください • (どちらかと⾔えば)上級者 • AWSの利⽤がこれから本格的に始まる企業の⽅ • AWS全体の管理をする⽅ •

    CCoEの⽅ • セキュリティよりの⽅ • 監査や調達の⽅ • つまりだいたい全員(AWSに関わるなら)
  5. 5 本題の前に

  6. 6 AWSセキュリティの整理(登壇履歴) AWSセキュリティ事始め 〜基礎からはじめて クラウドセキュリティの恩恵を受ける〜 [初⼼者向け]AWS環境の セキュリティ運⽤(設計)を はじめてみよう みんなでセキュリティを強化︕ 仕組みで解決するAWS環境の

    マネジメント & ガバナンス
  7. 7 アジェンダ 1. AWSマルチアカウント戦略と マネジメント & ガバナンス 2. Landing Zoneに必要な要素

    3. Control Towerの展開と運⽤
  8. 8 1. AWSマルチアカウント戦略と マネジメント & ガバナンス

  9. 9 基本的な考え⽅や サービスの復習

  10. 10 むかしむかし… 1つのVPCにいろんな環境を⼊れていました ネットワークの境⽬が弱くセキュアじゃありません

  11. 11 むかし… VPCを分割して環境を分離しました 開発⽤IAMで本番環境を変更できよくないです

  12. 12 今のスタンダード AWSアカウントレベルで分離します IAMも分離できました。でもアカウントの管理は︖ 管理⼿法をAWSマルチアカウント戦略と呼ぶ

  13. 13 合わせて読みたい AWSアカウントとVPC、分ける︖ 分けない︖: 分割パ ターンのメリット・デメリット 環境分離の鉄板ブログ 古いけど⼤事 ⾒たことない⼈は⼀読 https://dev.classmethod.jp/articles/account-and-vpc-dividing-pattern/

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

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

    • パブリックアクセスブロックする • これらが適切に守られていることを確認したい
  16. 16 合わせて読みたい S3のパブリックアクセ スブロック機能 バケットポリシーや ACLよりも強制⼒が強 いアクセス制御 アカウント全体に適⽤ 可能 h"ps://dev.classmethod.jp/ar3cles/s3-block-public-access/

  17. 17 AWSのマネジメント & ガバナンスサービス⼀例 マルチアカウント戦略を補助するサービスはたくさん • AWS Organizations • AWS

    Config • Config Rules • Config Aggregator • Systems Manager • CloudFormation • CFn StackSets • Trusted Advisor • Well-Architected Framework • AWS SSO • RAM
  18. 18 AWS Organizationsとは • 複数のAWSアカウント を束ねる仕組み • OUを定義して配下にア カウントをまとめられる •

    Service Control Policy(SCP)を利⽤して 強制的なアクセス制御が 可能
  19. 19 合わせて読みたい Organizationsについて 必要な知識や関連サービ スについて⼀通り説明あ り h"ps://dev.classmethod.jp/ar3cles/lets-study-aws-organiza3ons-basic/

  20. 20 AWS Configとは • 各種AWSリソースの設定状況を収集 • 求める設定レベルに準拠しているかConfig Rulesで チェック •

    ⾃動修復させることも • Aggregatorによりリージョンやアカウントをまた がって設定や準拠情報を収集可能
  21. 21 合わせて読みたい 簡単にSSHの全開放を⾃ 動修復する設定 まずは検知からだけでも やってみよう h"ps://dev.classmethod.jp/ar3cles/auto-recovery-restricted-ssh-without-lambda/

  22. 22 AWS Systems Managerとは • EC2の管理に関する様々な機能を有する • コマンド実⾏(RunCommand) • シェル接続(Session

    Manager) • パッチ管理(Patch Manager) • インベントリ収集(Inventory) • などなど • リージョン・アカウントまたがって収集・可視化す るExplorerもあり
  23. 23 合わせて読みたい 管理している全AWSア カウントのEC2を⼀元的 に可視化できる https://dev.classmethod.jp/articles/new-aws-systems-manager-explorer/

  24. 24 まとめ • 今はAWSアカウントを細かく分割していくのが基本 • そのための管理を考える必要がある • AWSマルチアカウント戦略という AWSマルチアカウント戦略は⾔い換えると、 どういうLanding

    Zoneを作っていくかということ (だと私は思っている)
  25. 25 2. Landing Zoneに必要な要素

  26. 26 Landing Zoneとは • マルチアカウント管理のベス トプラクティスに従った構成 の考え⽅ • 特定のパターンではない •

    ⼗⼈⼗⾊の環境にアレンジさ れる
  27. 27 Landing Zoneの構成要素 だいたいこんな感じの機能を持っている • ID管理: SSOなど各アカウントに対するアクセス管 理 • ガードレール:

    SCPやConfig Rulesなどでポリシー に反する操作をさせない or してもすぐ検知する • ベースラインの展開: CloudTrailやConfigなどの仕 組みを展開する(Vending Machine) • ログ管理・監視: 必要なログを保全したり、健全な状 態か監視する
  28. 28 合わせて読みたい OUの設計パターンを学 ぶのにおすすめのブログ 全部やらなくていいけ ど、⼀通り読んで何を採 ⽤するか検討するといい h"ps://dev.classmethod.jp/ar3cles/aws-organiza3ons-best-prac3ce/

  29. 29 AWS Landing Zoneソリューションとは • Landing Zoneの実装⽅法 の1つ、これ→ • AWSソリューションとして

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

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

    どちらの仕組みもAWS Organizationsを使う • 既存の仕組みを使うなら今はControl Tower1択
  32. 32 AWS Organiza@onsが必須なの︖ Landing ZoneにOrganiza.onsは必須ではない 無くてもLanding Zoneの構築は可能 でもあると楽

  33. 33 それぞれの要素の⼿法を紹介

  34. 34 ID管理 • AWS SSO • ソリューションやControl Towerで使⽤ • ADなどIdPと連携可能

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

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

    Hub • IAM Access Analyzer • Detective • マルチアカウント連携機能があるものも
  37. 37 合わせて読みたい Security Hubを利⽤し たAWS環境のセキュリ ティチェックはもはや やって当たり前の領域 ブログを参考にやってみ よう h"ps://dev.classmethod.jp/ar3cles/2020-strongest-aws-securitycheck-prac3ce/

  38. 38 合わせて読みたい GuardDutyで発⾒したセ キュリティインシデント の調査を⾏うための最強 サービス GuardDutyと合わせて有 効化推奨

  39. 39 ベースラインの展開 • CloudFormation StackSets • Control Tower • Terraform

    • CodePipeline
  40. 40 合わせて読みたい AWS Summitで Visional様が発表した 内容 Terraformで展開 h'ps://dev.classmethod.jp/ar8cles/aws-summit-online-2020-cus-06/

  41. 41 ログ管理 • 集約⽤S3バケット • アーカイブ⽤ • SIEMなどに連携することも可

  42. 42 Landing Zoneに必要な要素まとめ • Landing Zoneはマルチアカウント管理の考え⽅ • Control Towerはその実装の1つ •

    OrganizationsやControl Towerがなくても Landing Zoneの実現は可能
  43. 43 3. Control Towerの展開と運⽤

  44. 44 3. Control Towerの展開と運⽤ • 仕組み • 使い⽅ • 具体的な実装と運⽤

    • 細かいハマりどころ • メリット・デメリット
  45. 45 仕組み

  46. 46 展開する仕組み • 役割は4つ • マネジメント • Audit • Log

    Archive • Custom(任意)
  47. 47 展開する仕組み • Control Towerを有 効化したアカウント がマネジメントアカ ウント(親) • CoreOU配下にLog

    ArchiveとAuditアカ ウントを作成 • CustomOU(任意の OU)に新しいアカウ ントを追加できる
  48. 48 マネジメントアカウントに展開される仕組み • AWS Organizations: 昔は既存のOrganizations が作成されているとダメだった。今はOK • AWS SSO:

    管理下のアカウントはすべてSSOでアク セスする。外部IdP連携は利⽤可能
  49. 49 マネジメントアカウントに展開される仕組み • Service Catalog: CustomOUのアカウントに各種 仕組みを展開するテンプレートを持つ • CFn Account

    Baseline: CloudTrail/Configなど の設定を全アカウントに展開する
  50. 50 CoreOUの仕組み • Log Archive: 管理下のアカウントの CloudTrail/Config等のログを集中管理する • Audit: 管理下のアカウントのセキュリティ監査を⾏

    う。Configを集約する
  51. 51 CustomOUの仕組み • Control Towerのアカウントファクトリーから新規 AWSアカウントを作成する時にOUを選択する • Account BaselineとNetwork Baselineが展開さ

    れる
  52. 52 使い⽅

  53. 53 使い⽅ • セットアップ • ガードレール設定 • アカウントファクトリー • AWS

    SSOでアクセス
  54. 54 セットアップ • ポチッと有効化 • 60分待つ • 出来上がり 詳細はブログへ 無効化はサポート申請なので

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

    CoreOU特有の必須ガードレールがある • 任意ガードレールはOU毎に設定可能 • Control Towerを有効化したらどんなOUを作りど んな任意ガードレールを適⽤するか考える
  56. 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 のサブスクリプションへの変更を不許可にします
  57. 57 展開できるガードレール(任意) • MFA なしで IAM ユーザーへのアクセスを許可し ない • MFA

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

    て作成・設定の展開が⾏わ れる • デフォルトではNAT Gateway勝⼿に作られるの で初⼿VPC作成無効化推奨
  59. 59 AWS SSOでアクセス • 作成したAWSアカウント へのアクセスはAWS SSOを利⽤する • アカウントファクトリー で登録したユーザー

    or 追 加でSSO上で権限を付与 したユーザーでアクセス
  60. 60 具体的な実装と運⽤

  61. 61 管理外リージョンへのガードレール展開 • Account Factoryをフックして管理外のリージョン にもガードレール(Config Rules)を展開するソ リューションが提供されている h'ps://dev.classmethod.jp/ar8cles/extend-aws- control-tower-governance-to-other-region/

    h'ps://aws.amazon.com/jp/blogs/mt/extend-aws-control- tower-governance-using-aws-config-conformance-packs/
  62. 62 各種セキュリティ機能の有効化 • CloudTrail / Configは有効化されているが以下は 有効化されない • GuardDuty •

    Security Hub • IAM Access Analyzer • Detective • Auditアカウントに委任してOrganizations連携し て有効化するといい(Detectiveはできませんが)
  63. 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が無い時と同じ
  64. 64 バージョンアップ • Control Towerはマネージドサービスだが、機能の 追加でバージョンアップが必要になる事がある • 追加リージョン • ⼦アカウントへの追加設定

    • などなど • ⼿動でバージョンアップを実施し、必要に応じて⼦ アカウントでも作業が必要 • 全体管理の仕組みをある程度楽に展開できると考え たらいいかも
  65. 65 合わせて読みたい Control Towerが2.6に なりリージョンの選択が 可能になったので更新し てみた ポチポチやってバージョ ンあげます h"ps://dev.classmethod.jp/ar3cles/control-tower-2-6/

  66. 66 安全な運⽤ • Control Towerに限らずSCPは思惑と違う制限を⽣ むことがある • OU間のアカウントの移動がうまく⾏かなかったり ワークロードが⽌まることも考える必要がある •

    アカウント周りの作業を安全に⾏うSCPが緩めのOU を⽤意するのもあり • Control Tower⾃体の動作検証に別のControl Towerセットを⽤意するのもあり
  67. 67 細かいハマりどころ

  68. 68 アカウント受け⼊れ時 • ⼀部のリージョンでSTSを無効化しているとアカウ ントの受け⼊れに失敗する • 受け⼊れ時に事前チェックする内容はUserGuideに まとまっている • https://docs.aws.amazon.com/controltower

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

    • 表⽰されないリソース が残っている • 削除して回る必要があ る h"ps://dev.classmethod.jp/ar3cles/disable-config-all-region-cli/
  70. 70 SIEMの展開にAuditアカウントを利⽤する • CoreOUであるAuditやLog Archiveの制約は⼤き く、S3バケットの扱いなど制約が⼤きい • 必須のSCPは現状外すことはできない • 全体管理の仕組みはCoreOU以外で作成するのが現

    状の対応⽅法
  71. 71 合わせて読みたい Amazon ESを利⽤し たAWSログの可視化ソ リューション OSSだよ いい感じだよ h"ps://dev.classmethod.jp/ar3cles/geDng-started-siem-on-amazon-elas3csearch-service/

  72. 72 Landing Zoneに Control Towerを採⽤する メリット・デメリット

  73. 73 メリット • (操作的に)簡単にLanding Zoneをセットアップで きる • ガードレールが⾃動で設定・展開される • 任意のガードレールを簡単に設定・解除できる

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

    CoreOUの機能を変更できない • 料⾦コストを抑えられない -> リージョンを外すのは2.6で対応 • 孫OUに対応していない • SCP設定数が通常より1-2個制限される • 対応リージョンが限られる • 管理外リージョンの管理に⼿間がかかる(2重管理) • セキュリティ機能を別で管理する必要がある • 東京リージョンに対応していない • バージョンアップ時に負荷がかかる
  75. 75 今どう判断するか デメリットはだんだんなくなる 始めたいと思う時に始めるといい

  76. 76 推奨選定⽅法 • 早く簡単にLanding Zoneを構築したいか • Landing Zoneの構成がある程度固定されていて問題ない か •

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

  78. 78 まとめ • AWSアカウントの全体管理はだんだん⼤変になるの で、早めに仕組みを考える • Landing Zoneは⼗⼈⼗⾊。まずはIAMまとめると ころからでもいいのでやってみる •

    ⼿っ取り早く統制を効かせるならControl Tower。 今から検証して東京対応したら始めよう︕
  79. 79