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

    View Slide

  2. 2
    ⾃⼰紹介
    ⾅⽥佳祐
    クラスメソッド株式会社
    ・AWS事業本部 シニア
    ソリューションアーキテクト
    セキュリティチームリーダー
    AWS認定インストラクター
    ・Security-JAWS運営
    ・好きなサービス:
    Amazon Detective
    Amazon Detec,ve
    みんなのAWS(技術評論社)

    View Slide

  3. 3
    セッションの概要
    • AWSの利⽤が進むとマルチアカウント管理
    が避けて通れない道
    • マルチアカウント管理のベストプラクティ
    スと選択肢の提⽰
    • AWS Control Towerを利⽤した⼿法を詳
    細に解説

    View Slide

  4. 4
    セッションの対象者
    どれか1つでも当てはまれば聞いてください
    • (どちらかと⾔えば)上級者
    • AWSの利⽤がこれから本格的に始まる企業の⽅
    • AWS全体の管理をする⽅
    • CCoEの⽅
    • セキュリティよりの⽅
    • 監査や調達の⽅
    • つまりだいたい全員(AWSに関わるなら)

    View Slide

  5. 5
    本題の前に

    View Slide

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

    View Slide

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

    View Slide

  8. 8
    1. AWSマルチアカウント戦略と
    マネジメント & ガバナンス

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 14
    考えることはまだまだいろいろ
    • IAMどうする︖
    • すべてのアカウントにIAM Userを作る︖
    • SSOする︖
    • ポリシーは︖
    • セキュリティは︖
    • 全体でCloudTrailをどうやって展開する︖
    • CloudFormationで展開していく︖
    • ログはどうやって管理する︖
    • 危ない設定をどうやって確認する︖

    View Slide

  15. 15
    例えばS3のセキュリティ対策
    • S3に格納しているデータを保護する
    • SSEによる暗号化
    • TLS必須
    • 公開設定をしない
    • パブリックアクセスブロックする
    • これらが適切に守られていることを確認したい

    View Slide

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

    View Slide

  17. 17
    AWSのマネジメント & ガバナンスサービス⼀例
    マルチアカウント戦略を補助するサービスはたくさん
    • AWS Organizations
    • AWS Config
    • Config Rules
    • Config Aggregator
    • Systems Manager
    • CloudFormation
    • CFn StackSets
    • Trusted Advisor
    • Well-Architected
    Framework
    • AWS SSO
    • RAM

    View Slide

  18. 18
    AWS Organizationsとは
    • 複数のAWSアカウント
    を束ねる仕組み
    • OUを定義して配下にア
    カウントをまとめられる
    • Service Control
    Policy(SCP)を利⽤して
    強制的なアクセス制御が
    可能

    View Slide

  19. 19
    合わせて読みたい
    Organizationsについて
    必要な知識や関連サービ
    スについて⼀通り説明あ

    h"ps://dev.classmethod.jp/ar3cles/lets-study-aws-organiza3ons-basic/

    View Slide

  20. 20
    AWS Configとは
    • 各種AWSリソースの設定状況を収集
    • 求める設定レベルに準拠しているかConfig Rulesで
    チェック
    • ⾃動修復させることも
    • Aggregatorによりリージョンやアカウントをまた
    がって設定や準拠情報を収集可能

    View Slide

  21. 21
    合わせて読みたい
    簡単にSSHの全開放を⾃
    動修復する設定
    まずは検知からだけでも
    やってみよう
    h"ps://dev.classmethod.jp/ar3cles/auto-recovery-restricted-ssh-without-lambda/

    View Slide

  22. 22
    AWS Systems Managerとは
    • EC2の管理に関する様々な機能を有する
    • コマンド実⾏(RunCommand)
    • シェル接続(Session Manager)
    • パッチ管理(Patch Manager)
    • インベントリ収集(Inventory)
    • などなど
    • リージョン・アカウントまたがって収集・可視化す
    るExplorerもあり

    View Slide

  23. 23
    合わせて読みたい
    管理している全AWSア
    カウントのEC2を⼀元的
    に可視化できる
    https://dev.classmethod.jp/articles/new-aws-systems-manager-explorer/

    View Slide

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

    View Slide

  25. 25
    2. Landing Zoneに必要な要素

    View Slide

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

    View Slide

  27. 27
    Landing Zoneの構成要素
    だいたいこんな感じの機能を持っている
    • ID管理: SSOなど各アカウントに対するアクセス管

    • ガードレール: SCPやConfig Rulesなどでポリシー
    に反する操作をさせない or してもすぐ検知する
    • ベースラインの展開: CloudTrailやConfigなどの仕
    組みを展開する(Vending Machine)
    • ログ管理・監視: 必要なログを保全したり、健全な状
    態か監視する

    View Slide

  28. 28
    合わせて読みたい
    OUの設計パターンを学
    ぶのにおすすめのブログ
    全部やらなくていいけ
    ど、⼀通り読んで何を採
    ⽤するか検討するといい
    h"ps://dev.classmethod.jp/ar3cles/aws-organiza3ons-best-prac3ce/

    View Slide

  29. 29
    AWS Landing Zoneソリューションとは
    • Landing Zoneの実装⽅法
    の1つ、これ→
    • AWSソリューションとして
    提供されている
    • CloudFormationで展開す

    • ただし延⻑サポート中で追加
    機能は提供されない

    View Slide

  30. 30
    AWS Control Towerとは
    • Landing Zoneを展開す
    るマネージドサービス
    • AWS Landing Zoneソ
    リューションの後継
    • ⼤体→のような感じ

    View Slide

  31. 31
    それぞれの違い
    • Landing Zoneは考え⽅で、実装⼿段としてAWS
    Landing ZoneソリューションやControl Towerが
    ある
    • どちらの仕組みもAWS Organizationsを使う
    • 既存の仕組みを使うなら今はControl Tower1択

    View Slide

  32. 32
    AWS Organiza@onsが必須なの︖
    Landing ZoneにOrganiza.onsは必須ではない
    無くてもLanding Zoneの構築は可能
    でもあると楽

    View Slide

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

    View Slide

  34. 34
    ID管理
    • AWS SSO
    • ソリューションやControl Towerで使⽤
    • ADなどIdPと連携可能
    • OktaとかOneLoginとかIdPサービス
    • AWS SSOを使わなくても直接AWSアカウントにSSOで
    きる機能を持っている
    • AWS以外のSSOにも利⽤できる
    • IAM管理AWSアカウント
    • AWS Organizationsがなくても実現できる

    View Slide

  35. 35
    ガードレール
    • Service Control Policy(予防的ガードレール)
    • OU/アカウント全体に強制的に適⽤するポリシー
    • Config Rules(発⾒的ガードレール)
    • ポリシーに違反する設定を検知・⾃動修復できる
    • AWS Organizationsが無くても利⽤可能
    • Aggregatorにより集約可能
    • Dome9/Prisma Cloudなど(3rd Party)
    • Posture Management系のサービス
    • AWS以外にも対応、Organizations不要

    View Slide

  36. 36
    ベースラインサービス⼀例
    • CloudTrail
    • Config
    • GuardDuty
    • Security Hub
    • IAM Access Analyzer
    • Detective
    • マルチアカウント連携機能があるものも

    View Slide

  37. 37
    合わせて読みたい
    Security Hubを利⽤し
    たAWS環境のセキュリ
    ティチェックはもはや
    やって当たり前の領域
    ブログを参考にやってみ
    よう
    h"ps://dev.classmethod.jp/ar3cles/2020-strongest-aws-securitycheck-prac3ce/

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  42. 42
    Landing Zoneに必要な要素まとめ
    • Landing Zoneはマルチアカウント管理の考え⽅
    • Control Towerはその実装の1つ
    • OrganizationsやControl Towerがなくても
    Landing Zoneの実現は可能

    View Slide

  43. 43
    3. Control Towerの展開と運⽤

    View Slide

  44. 44
    3. Control Towerの展開と運⽤
    • 仕組み
    • 使い⽅
    • 具体的な実装と運⽤
    • 細かいハマりどころ
    • メリット・デメリット

    View Slide

  45. 45
    仕組み

    View Slide

  46. 46
    展開する仕組み
    • 役割は4つ
    • マネジメント
    • Audit
    • Log Archive
    • Custom(任意)

    View Slide

  47. 47
    展開する仕組み
    • Control Towerを有
    効化したアカウント
    がマネジメントアカ
    ウント(親)
    • CoreOU配下にLog
    ArchiveとAuditアカ
    ウントを作成
    • CustomOU(任意の
    OU)に新しいアカウ
    ントを追加できる

    View Slide

  48. 48
    マネジメントアカウントに展開される仕組み
    • AWS Organizations: 昔は既存のOrganizations
    が作成されているとダメだった。今はOK
    • AWS SSO: 管理下のアカウントはすべてSSOでアク
    セスする。外部IdP連携は利⽤可能

    View Slide

  49. 49
    マネジメントアカウントに展開される仕組み
    • Service Catalog: CustomOUのアカウントに各種
    仕組みを展開するテンプレートを持つ
    • CFn Account Baseline: CloudTrail/Configなど
    の設定を全アカウントに展開する

    View Slide

  50. 50
    CoreOUの仕組み
    • Log Archive: 管理下のアカウントの
    CloudTrail/Config等のログを集中管理する
    • Audit: 管理下のアカウントのセキュリティ監査を⾏
    う。Configを集約する

    View Slide

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

    View Slide

  52. 52
    使い⽅

    View Slide

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

    View Slide

  54. 54
    セットアップ
    • ポチッと有効化
    • 60分待つ
    • 出来上がり
    詳細はブログへ
    無効化はサポート申請なので
    うかつに有効化しないように
    h0ps://dev.classmethod.jp/ar=cles/aws-control-tower-labs-b1/
    今はラボが変わっているので以下も参照してください
    h0ps://controltower.aws-management.tools/immersionday/

    View Slide

  55. 55
    ガードレール
    • SCP(予防)とConfig Rules(検出)で実現している
    • 必須と任意(強く推奨 / 選択的)がある
    • CoreOU特有の必須ガードレールがある
    • 任意ガードレールはOU毎に設定可能
    • Control Towerを有効化したらどんなOUを作りど
    んな任意ガードレールを適⽤するか考える

    View Slide

  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 のサブスクリプションへの変更を不許可にします

    View Slide

  57. 57
    展開できるガードレール(任意)
    • MFA なしで IAM ユーザーへのアクセスを許可し
    ない
    • MFA なしで IAM ユーザーへのコンソールアクセ
    スを許可しない
    • S3 バケットのクロスリージョンレプリケーショ
    ンを許可しない
    • MFA なしで S3 バケットでの削除アクションを許
    可しない
    • バージョンが有効かされていない S3 バケットを
    許可しない
    • EBS ⽤に最適化されていない EC2 インスタンス
    タイプの起動を許可しない
    • EC2 インスタンスにアタッチされていない EBS
    ボリュームを許可しない
    • EC2 インスタンスにアタッチされた EBS ボ
    リュームの暗号化を有効にする
    • RDS データベースインスタンスへのパブリックア
    クセスを許可しない
    • RDS データベーススナップショットへのパブリッ
    クアクセスを許可しない
    • 暗号化されたストレージではない RDS データ
    ベースインスタンスを許可しない
    • RDP を介したインターネット接続を許可しない
    • SSH を介したインターネット接続を許可しない
    • ルートユーザーとしてのアクションを許可しない
    • ルートユーザーのアクセスキーの作成を許可しな

    • ルートユーザーに対して、MFA を有効化する
    • S3 バケットへのパブリック読み取りアクセスを
    不許可にする
    • S3 バケットへのパブリック書き込みアクセスを
    不許可にする

    View Slide

  58. 58
    アカウントファクトリー
    • Control Towerから新規
    AWSアカウントを発⾏する
    仕組み
    • Service Catalogを利⽤し
    て作成・設定の展開が⾏わ
    れる
    • デフォルトではNAT
    Gateway勝⼿に作られるの
    で初⼿VPC作成無効化推奨

    View Slide

  59. 59
    AWS SSOでアクセス
    • 作成したAWSアカウント
    へのアクセスはAWS
    SSOを利⽤する
    • アカウントファクトリー
    で登録したユーザー or 追
    加でSSO上で権限を付与
    したユーザーでアクセス

    View Slide

  60. 60
    具体的な実装と運⽤

    View Slide

  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/

    View Slide

  62. 62
    各種セキュリティ機能の有効化
    • CloudTrail / Configは有効化されているが以下は
    有効化されない
    • GuardDuty
    • Security Hub
    • IAM Access Analyzer
    • Detective
    • Auditアカウントに委任してOrganizations連携し
    て有効化するといい(Detectiveはできませんが)

    View Slide

  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が無い時と同じ

    View Slide

  64. 64
    バージョンアップ
    • Control Towerはマネージドサービスだが、機能の
    追加でバージョンアップが必要になる事がある
    • 追加リージョン
    • ⼦アカウントへの追加設定
    • などなど
    • ⼿動でバージョンアップを実施し、必要に応じて⼦
    アカウントでも作業が必要
    • 全体管理の仕組みをある程度楽に展開できると考え
    たらいいかも

    View Slide

  65. 65
    合わせて読みたい
    Control Towerが2.6に
    なりリージョンの選択が
    可能になったので更新し
    てみた
    ポチポチやってバージョ
    ンあげます
    h"ps://dev.classmethod.jp/ar3cles/control-tower-2-6/

    View Slide

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

    View Slide

  67. 67
    細かいハマりどころ

    View Slide

  68. 68
    アカウント受け⼊れ時
    • ⼀部のリージョンでSTSを無効化しているとアカウ
    ントの受け⼊れに失敗する
    • 受け⼊れ時に事前チェックする内容はUserGuideに
    まとまっている
    • https://docs.aws.amazon.com/controltower
    /latest/userguide/importing-existing.html
    • 他にもStackSetsの数やSCPなど要チェック
    • 受け⼊れ時に失敗した場合、状況によりロールバッ
    クに失敗したCFnの⼿動対応が必要

    View Slide

  69. 69
    アカウント受け⼊れ時
    • AWS Configを⼀度
    無効化する必要がある
    • マネジメントコンソー
    ルで無効化するだけで
    は⾜りない
    • 表⽰されないリソース
    が残っている
    • 削除して回る必要があ

    h"ps://dev.classmethod.jp/ar3cles/disable-config-all-region-cli/

    View Slide

  70. 70
    SIEMの展開にAuditアカウントを利⽤する
    • CoreOUであるAuditやLog Archiveの制約は⼤き
    く、S3バケットの扱いなど制約が⼤きい
    • 必須のSCPは現状外すことはできない
    • 全体管理の仕組みはCoreOU以外で作成するのが現
    状の対応⽅法

    View Slide

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

    View Slide

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

    View Slide

  73. 73
    メリット
    • (操作的に)簡単にLanding Zoneをセットアップで
    きる
    • ガードレールが⾃動で設定・展開される
    • 任意のガードレールを簡単に設定・解除できる
    • アカウント⼀覧とコンプライアンス状況が1機能で簡
    単に管理できる
    • ガードレールや管理の仕組みがマネージドで提供さ
    れ、(⽐較的)簡単にバージョンアップできる

    View Slide

  74. 74
    デメリット
    • Landing Zoneの柔軟性がない
    • 独⾃のガードレール追加は簡単ではない
    • 必須ガードレールを外せない
    • CoreOUの機能を変更できない
    • 料⾦コストを抑えられない -> リージョンを外すのは2.6で対応
    • 孫OUに対応していない
    • SCP設定数が通常より1-2個制限される
    • 対応リージョンが限られる
    • 管理外リージョンの管理に⼿間がかかる(2重管理)
    • セキュリティ機能を別で管理する必要がある
    • 東京リージョンに対応していない
    • バージョンアップ時に負荷がかかる

    View Slide

  75. 75
    今どう判断するか
    デメリットはだんだんなくなる
    始めたいと思う時に始めるといい

    View Slide

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

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

    View Slide

  77. 77
    まとめ

    View Slide

  78. 78
    まとめ
    • AWSアカウントの全体管理はだんだん⼤変になるの
    で、早めに仕組みを考える
    • Landing Zoneは⼗⼈⼗⾊。まずはIAMまとめると
    ころからでもいいのでやってみる
    • ⼿っ取り早く統制を効かせるならControl Tower。
    今から検証して東京対応したら始めよう︕

    View Slide

  79. 79

    View Slide