Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

5 本題の前に

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

19 合わせて読みたい Organizationsについて 必要な知識や関連サービ スについて⼀通り説明あ り h"ps://dev.classmethod.jp/ar3cles/lets-study-aws-organiza3ons-basic/

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

25 2. Landing Zoneに必要な要素

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

27 Landing Zoneの構成要素 だいたいこんな感じの機能を持っている • ID管理: SSOなど各アカウントに対するアクセス管 理 • ガードレール: SCPやConfig Rulesなどでポリシー に反する操作をさせない or してもすぐ検知する • ベースラインの展開: CloudTrailやConfigなどの仕 組みを展開する(Vending Machine) • ログ管理・監視: 必要なログを保全したり、健全な状 態か監視する

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

29 AWS Landing Zoneソリューションとは • Landing Zoneの実装⽅法 の1つ、これ→ • AWSソリューションとして 提供されている • CloudFormationで展開す る • ただし延⻑サポート中で追加 機能は提供されない

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

43 3. Control Towerの展開と運⽤

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

45 仕組み

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

52 使い⽅

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

60 具体的な実装と運⽤

Slide 61

Slide 61 text

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/

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

67 細かいハマりどころ

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

69 アカウント受け⼊れ時 • AWS Configを⼀度 無効化する必要がある • マネジメントコンソー ルで無効化するだけで は⾜りない • 表⽰されないリソース が残っている • 削除して回る必要があ る h"ps://dev.classmethod.jp/ar3cles/disable-config-all-region-cli/

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

76 推奨選定⽅法 • 早く簡単にLanding Zoneを構築したいか • Landing Zoneの構成がある程度固定されていて問題ない か • 料⾦コストより構築・運⽤管理コストを削減したいか • 現状の必須/任意ガードレールを許容できるか • AWS SSOを利⽤したアクセスが問題ないか • 現状東京リージョンが対応していなくて問題ないか • 東京リージョンに対応したい時にControl Towerを構築し 直す覚悟があるか

Slide 77

Slide 77 text

77 まとめ

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

79