Slide 1

Slide 1 text

Control Tower + αで始める サンドボックス環境 2023/08/28(月) 廣原花音 ※当資料は個人の見解です

Slide 2

Slide 2 text

アジェンダ ● 自己紹介 ● Japan AWS Jr.Championsって? ● サンドボックス環境ありますか? ● 何から始めればいいの? ● ControlTowerだけだと何が足りないの? ● 私が独自に導入したリソースのご紹介

Slide 3

Slide 3 text

お願い 本日のLTの感想を #aws_jr_champions をつけてツイートしていただけると嬉しいです

Slide 4

Slide 4 text

自己紹介 名前:廣原花音(ひろはらかのん) あだ名:hiropy 身長:148.5cm 所属会社:デロイトトーマツウェブサービス株式会社 経歴: 茨城高専 -> 三重県でSE -> DWS 好きなAWSサービス:CloudFormation 選出:2023 Japan AWS Jr. Champions X(旧Twitter): @hiropy6387

Slide 5

Slide 5 text

自己紹介 名前:廣原花音(ひろはらかのん) あだ名:hiropy 身長:148.5cm 所属会社:デロイトトーマツウェブサービス株式会社 経歴: 茨城高専 -> 三重県でSE -> DWS 好きなAWSサービス:CloudFormation 選出:2023 Japan AWS Jr. Champions X(旧Twitter): @hiropy6387 ん???

Slide 6

Slide 6 text

Japan AWS Jr.Championsとは ʮ+BQBO"84+S$IBNQJPO1BSUOFS1SPHSBNʯͱ͸ɺ"841BSUOFS /FUXPSL "1/ ࢀՃاۀʹॴଐ͠ɺݱࡏࣾձਓྺʙ೥໨Ͱ"84Λੵۃ తʹֶͼɺΞΫγϣϯΛى͜͠ɺपғʹӨڹΛ༩͍͑ͯΔ"1/एखΤϯδχΞ Λબग़͠ίϛϡχςΟΛܗ੒͢Δɺ೔ຊಠࣗͷදজϓϩάϥϜͰ͢ɻ "84քͷएखΤϯδχΞΛϦʔυ͢Δ"1/एखΤϯδχΞ

Slide 7

Slide 7 text

Japan AWS Jr.Championsとは બग़͞ΕΔͱɺɺ ● +BQBO"84+S$IBNQJPOTݶఆ .FFUVQ΁ͷࢀՃ ● "84ύʔτφʔ޲͚ηογϣϯ΁ͷࢀՃ ͕ެࣜʹॻ͔Ε͍ͯΔ΋ͷ

Slide 8

Slide 8 text

Japan AWS Jr.Championsとは બग़͞ΕΔͱɺɺ ● +BQBO"84+S$IBNQJPOTݶఆ .FFUVQ΁ͷࢀՃ ● "84ύʔτφʔ޲͚ηογϣϯ΁ͷࢀՃ ͕ެࣜʹॻ͔Ε͍ͯΔ΋ͷͰ͕͢

Slide 9

Slide 9 text

Japan AWS Jr.Championsとは ࠷ऴ໨ඪ͸ एखΤϯδχΞʹΑΓ"84Λ׆༻ͯ͠΋Β͍ "84քશମΛएखͷྗͰ੝Γ্͛Δ͜ͱʂ ͩͱݸਓతʹࢥ͍ͬͯ·͢

Slide 10

Slide 10 text

具体的な活動内容 ษڧձͷ։࠵ ݄ʹҰ౓ɺʮ"84ʯΛςʔϚʹษڧձΛߦͳ͍ͬͯ·͢

Slide 11

Slide 11 text

具体的な活動内容 ษڧΛ։࠵͢Δཧ༝ ● एखΤϯδχΞಉ࢜ͰͷφϨοδͷڞ༗ ● ಉ೥୅ͷΤϯδχΞͷ׆ಈ͔ΒܹࢗΛड͚Δ ● +S$IBNQJPOಉ࢜ͷަྲྀͷ৔Λ૿΍͢

Slide 12

Slide 12 text

具体的な活動内容 +"84Λ͸͡Ίͱ͢Δొஃ׆ಈ ొஃ͢Δ͜ͱͰɺ+S$IBNQJPOTͷ஌໊౓޲্ʹ౒Ί͍ͯ·͢ +"84"84ΤϯδχΞΛத৺ͱ͢Δ༗ࢤͷίϛϡχςΟ

Slide 13

Slide 13 text

今後の野望 ● ࠓ೥౓͸ࣾձશମͷ+S$IBNQJPOTʹର͢Δೝ஌౓Λ্͛Δ೥ʹ͍͖ͯ͠· ͢ ● དྷ೥౓Ҏ߱ɺएखΤϯδχΞΛר͖ࠐΜͩXFCJOBSͳͲΛ։࠵͍ͨ͠ͱاΜ Ͱ͍·͢ ● ࠓ೥౓ͷ׆ಈ࣍ୈͰདྷ೥Ҏ߱ͷଘଓՄ൱͕ܾ·ΔͷͰԠԉ͓ئ͍͠·͢🙇 ● ͜Μͳ׆ಈͯ͘͠ΕͨΒخ͍͠ʂͳͲͷ͝ҙݟ΋ืूதͰ͢

Slide 14

Slide 14 text

はじめに みなさん、、、 社内のサンドボックス環境ってありますか? サンドボックス環境: 検証、学習のために使用する個人のAWSアカウント

Slide 15

Slide 15 text

はじめに ない?それなら、、 皆さんの力で導入してみましょう! 意外と簡単かも?

Slide 16

Slide 16 text

今回お話ししたいこと ● サンドボックス環境は意外と簡単に導入できる! ● 私が社内のサンドボックス環境をどうやって整備したかを紹介します ● 導入できれば、みんなに喜ばれます ※より詳細に知りたい方は、ブログをご参照ください

Slide 17

Slide 17 text

何から始めればいいの? まずはControlTowerを導入しましょう! Control Towerとは: ● AWSのベストプラクティスにそったLandingZoneを構築してくれる ○ ガードレール、いい感じのアカウント構成、証跡の一元管理 ● 自分でこちゃこちゃやらなくてもいい感じのマルチアカウント構成ができる ● 参考

Slide 18

Slide 18 text

Control Towerをデプロイすると 右図のような構成のアカウントが デプロイされます rootOU: 全体を包括するOU SecurtyOU: セキュリティやログ管理の役割を担うOU SandBoxOU: メンバーアカウントが作成されるOU

Slide 19

Slide 19 text

Control Towerをデプロイすると 右図のような構成のアカウントが デプロイされます rootOU: 全体を包括するOU SecurtyOU: セキュリティやログ管理の役割を担うOU SandBoxOU: メンバーアカウントが作成されるOU

Slide 20

Slide 20 text

Control Towerをデプロイすると 右図のような構成のアカウントが デプロイされます rootOU: 全体を包括するOU SecurtyOU: セキュリティやログ管理の役割を担うOU SandBoxOU: メンバーアカウントが作成されるOU

Slide 21

Slide 21 text

Control Towerをデプロイすると 右図のような構成のアカウントが デプロイされます rootOU: 全体を包括するOU SecurtyOU: セキュリティやログ管理の役割を担うOU SandBoxOU: メンバーアカウントが作成されるOU

Slide 22

Slide 22 text

Control Towerをデプロイすると Audit: 全アカウントのセキュリティ周りを管理す る役割を担うアカウント Log: 全アカウントの証跡が集約されるアカウン ト(CloudTrail, Config) ct-management: ルートアカウント 各アカウントの操作が可能

Slide 23

Slide 23 text

Control Towerをデプロイすると Audit: 全アカウントのセキュリティ周りを管理す る役割を担うアカウント Log: 全アカウントの証跡が集約されるアカウン ト(CloudTrail, Config) ct-management: ルートアカウント 各アカウントの操作が可能

Slide 24

Slide 24 text

Control Towerをデプロイすると Audit: 全アカウントのセキュリティ周りを管理す る役割を担うアカウント Log: 全アカウントの証跡が集約されるアカウン ト(CloudTrail, Config) ct-management: ルートアカウント 各アカウントの操作が可能

Slide 25

Slide 25 text

Control Towerをデプロイすると Audit: 全アカウントのセキュリティ周りを管理す る役割を担うアカウント Log: 全アカウントの証跡が集約されるアカウン ト(CloudTrail, Config) ct-management: ルートアカウント 各アカウントの操作が可能

Slide 26

Slide 26 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 27

Slide 27 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 28

Slide 28 text

SecurityHubとGuardDutyの有効化 ● Organizations全体で有効化しましょう ● SecurityHubで全体のセキュリティを可視化 ● GuardDutyで異常の発生を検知(EC2への攻撃とか) こちらのクラスメソッドさんの記事がとてもわかりやすいです! 社内の検証環境でインシデントを起こさないための体制整備が必要です

Slide 29

Slide 29 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 30

Slide 30 text

サンドボックス環境で異常が発生したら ● GuardDutyは異常を検知するサービスなので、その先のアクションを作る必 要があります ● 第一歩として、検知した異常をSlackで通知するのがおすすめです ● EventBridge + Lambdaでサクッとできます ● もしかしたらブログにするかも、、?

Slide 31

Slide 31 text

サンドボックス環境で異常が発生したら ちなみに私はこんな感じで通知してます 異常を検知したインスタンスは止めちゃいます

Slide 32

Slide 32 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 33

Slide 33 text

アカウント管理のコード化 アカウント発行を都度手動でやるのは煩雑、、 Account Factory for Terraform(AFT)でコード管理できる! ● アカウント発行をTerraformでコード管理できる ● コードの変更をpushするだけでアカウントが自動発行される ● ブログでやり方を書いているのでご覧ください

Slide 34

Slide 34 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 35

Slide 35 text

各アカウントの予算管理 各アカウントの予算を設定してリソースの使いすぎを防ぎたい、、 私が作ったテンプレート、あります ● CloudFormationでBudgetsとSlackに通知するLambdaをデプロイします ● 環境変数で予算とアラートの閾値を設定できます ● こちらのブログをご覧ください

Slide 36

Slide 36 text

アーキテクチャ ● 管理アカウントから各アカウント にStackSetをデプロイ ● Budgetsで予算の設定を行う ● 予算を超えそうになるとAmazon SNS経由でLambdaを起動 ● Slackで通知

Slide 37

Slide 37 text

アーキテクチャ ● 管理アカウントから各アカウント にStackSetをデプロイ ● Budgetsで予算の設定を行う ● 予算を超えそうになるとAmazon SNS経由でLambdaを起動 ● Slackで通知

Slide 38

Slide 38 text

アーキテクチャ ● 管理アカウントから各アカウント にStackSetをデプロイ ● Budgetsで予算の設定を行う ● 予算を超えそうになるとAmazon SNS経由でLambdaを起動 ● Slackで通知

Slide 39

Slide 39 text

アーキテクチャ ● 管理アカウントから各アカウント にStackSetをデプロイ ● Budgetsで予算の設定を行う ● 予算を超えそうになるとAmazon SNS経由でLambdaを起動 ● Slackで通知

Slide 40

Slide 40 text

アーキテクチャ ● 管理アカウントから各アカウント にStackSetをデプロイ ● Budgetsで予算の設定を行う ● 予算を超えそうになるとAmazon SNS経由でLambdaを起動 ● Slackで通知

Slide 41

Slide 41 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 42

Slide 42 text

アカウント利用料の通知 毎月のアカウント利用料をお知らせしてくれたら嬉しいな、、 私が作ったテンプレート、あります ● CloudFormationで通知用LambdaとEventBridgeをデプロイします ● 毎月末にアカウントの利用料をSlack botで通知します ● こちらのブログをご覧ください

Slide 43

Slide 43 text

アカウント利用料の通知 右図の構成にしています 1. EventBridgeを毎月末に実行 2. Lambdaを呼び出しCost Explorerか ら料金を取得 3. Slackに取得した料金を投稿

Slide 44

Slide 44 text

アカウント利用料の通知 右図の構成にしています 1. EventBridgeを毎月末に実行 2. Lambdaを呼び出しCost Explorerか ら料金を取得 3. Slackに取得した料金を投稿

Slide 45

Slide 45 text

アカウント利用料の通知 右図の構成にしています 1. EventBridgeを毎月末に実行 2. Lambdaを呼び出しCost Explorerか ら料金を取得 3. Slackに取得した料金を投稿

Slide 46

Slide 46 text

アカウント利用料の通知 右図の構成にしています 1. EventBridgeを毎月末に実行 2. Lambdaを呼び出しCost Explorerか ら料金を取得 3. Slackに取得した利用料を投稿

Slide 47

Slide 47 text

ControlTowerだけだと何が足りないの? ● より強いセキュリティ設定 ● アカウント内で異常が発生した時の仕組み ● アカウント発行の仕組み ● 各アカウントの予算設定 ● アカウント利用料を知るための仕組み ● アカウント内を定期的にお掃除する仕組み、、、 →より使いやすい環境にするための設定を紹介します! ※当社の事例、かつ絶賛改善中なのでアドバイス絶賛募集中

Slide 48

Slide 48 text

サンドボックス環境のお掃除 検証環境だからって、不要なリソースが増えて料金が嵩んだらどうしよう、、、 それ、aws-nukeで解決できます ● aws-nukeはアカウント内のリソースを強制的に自動削除するツールです ● 指定したアカウント内のリソースを一気に削除します ● nuke自体は無料です ● 当社では、これを毎週末に自動実行しています ● 今月中にブログを書きます書きました!

Slide 49

Slide 49 text

アーキテクチャ

Slide 50

Slide 50 text

アーキテクチャ

Slide 51

Slide 51 text

アーキテクチャ

Slide 52

Slide 52 text

アーキテクチャ

Slide 53

Slide 53 text

さいごに ● サンドボックス環境、意外と簡単にいけそうですよね? ● まずはインシデントを起こさないための設定が大事 ● 社内で提案して、みんなを幸せにしてみましょう 😊