Slide 1

Slide 1 text

[⽬指せ上級者] 最強にセキュアな AWSアカウントの作り⽅ 2022/07/26 AWS事業本部 コンサルティング部 ⾅⽥佳祐 ハッシュタグ #devio2022

Slide 2

Slide 2 text

みなさん AWSのセキュリティ確保してますか︖ (挨拶

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 セッションテーマ ⾃分たちの 最強のAWS環境を作ろう

Slide 5

Slide 5 text

5 セッション対象者 • プロジェクトのAWSアカウント管理者 • 組織のAWSアカウント管理者 • セキュリティ担当者 • セキュリティ責任者 • AWS利⽤者

Slide 6

Slide 6 text

6 アジェンダ 0. ⻑い前置き 1. セキュアなアカウント単体の原理 2. ベンディングマシンとアカウント運⽤ 3. 最強にセキュアな運⽤

Slide 7

Slide 7 text

7 0. ⻑い前置き

Slide 8

Slide 8 text

8 セッション概要 • 中級者から上級者を⽬指すセッション • 最強のAWSアカウントを作っていく • どうやって︖

Slide 9

Slide 9 text

9 最強にセキュアなAWSアカウントとは︖ AWSには最初から利⽤すべきサービスが様々ある • CloudTrail • Config • GuardDuty • Security Hub • IAM Access Analyzer • Detective • などなど

Slide 10

Slide 10 text

10 最強にセキュアなAWSアカウントとは︖ これらが設定されていればセキュア︖

Slide 11

Slide 11 text

11 最強にセキュアなAWSアカウントとは︖ 後から増えるAWSリソースはセキュアかわからない セキュリティグループは 社内IPのみに制限されている︖ RDSのスナップショットを 公開していない︖ EC2のAMIは信頼できる︖ ALBのログは取得している︖ Lambdaは外部から アクセス・実⾏できない︖ API Gatewayは X-Rayを適⽤している︖ SageMakerは直接 インターネットにアクセス できない︖ CloudFrontはOAIを 利⽤している︖

Slide 12

Slide 12 text

12 つまり… 最強にセキュアなAWSアカウントを作る = 継続的にセキュアな状態を 組織で維持する仕組みを作る = セキュリティ運⽤設計

Slide 13

Slide 13 text

13 上級者を⽬指すなら 組織全体を巻き込んで すべてのAWS利⽤者が セキュリティを意識して セキュアな環境が⾃動的に維持される ⽂化を作るべし (上級者は巻き込むことが仕事)

Slide 14

Slide 14 text

14 このセッションでは • 最初にセキュリティを確保する仕組みを説明し • 次にそれを展開する⽅法を説明し • 最後に運⽤実装例を⽰す

Slide 15

Slide 15 text

15 アジェンダ(再掲) 0. ⻑い前置き 1. セキュアなアカウント単体の原理 2. ベンディングマシンとアカウント運⽤ 3. 最強にセキュアな運⽤

Slide 16

Slide 16 text

16 合わせて読みたい セキュリティ対策 はだいたいここに 全部ある https://dev.classmethod.j p/articles/aws-security- all-in-one-2021/

Slide 17

Slide 17 text

17 1. セキュアなアカウント単体の原理

Slide 18

Slide 18 text

18 いろんな対策があるけど どこからやっていけばいい︖

Slide 19

Slide 19 text

19 AWS Security Hubはベースラインの参考になる 直感的な スコア表 ⽰で達成 度がわか りやすい

Slide 20

Slide 20 text

20 AWS Security Hubはベースラインの参考になる • AWS Security Hubの「AWS基礎セキュリティベ ストプラクティス」によるセキュリティチェックは 各種AWSサービスの危険な設定を発⾒し、ベストプ ラクティスに基づいた設定へ導いてくれる SSHポートが開放 されていないか S3バケットが公開 されていないか ルートユーザーの アクセスキーを利 用していないか ALBのログが保 存されているか CloudTrailで証跡 を保存しているか EC2にパブリック IPが付与されてい ないか GuardDutyを有 効化しているか Lambda関数が公 開されていないか

Slide 21

Slide 21 text

21 セキュアアカウントが参考になります セキュアなAWS設 定と実運⽤の例 デフォルトでセキュ リティを強化した AWSアカウント発 ⾏も無償でしてます (宣伝) https://dev.classmethod. jp/articles/aws-security- operation-bestpractice- on-secure-account/

Slide 22

Slide 22 text

22 合わせて読みたい セキュアアカウ ントの仕組みの 説明とコツはこ ちらにあります https://dev.classme thod.jp/articles/220 408-training- webinar-aws- security- management/

Slide 23

Slide 23 text

23 こんな感じの設定が⼊っているといい

Slide 24

Slide 24 text

24 各種設定の概要とコツを解説

Slide 25

Slide 25 text

25 AWS上の証跡管理 • CloudTrail • すべての管理イベント • Config • すべてのリソース記録 • グローバルリソース記録 • S3 • ログのライフサイクル3年 • SSE-KMSによる暗号化

Slide 26

Slide 26 text

26 AWS上の証跡管理のコツ • Configのグローバルリソース 記録は東京リージョンのみ有 効化する(全リージョンで⼊れ ると重複して記録されるため) • ライフサイクル3年は⾃社の ログ保持基準に照らし合わせ て調整する • WORMを設定すると強⼒

Slide 27

Slide 27 text

27 デフォルトのS3公開防⽌ • AWSアカウントレベルのブロックパ ブリックアクセスを有効化 • ブロックパブリックアクセスはアカウン トレベルとバケットレベルがある • アカウントレベルを設定するとAWSアカ ウント全体で適用される • うっかり公開してしまうことを防げる

Slide 28

Slide 28 text

28 デフォルトのS3公開防⽌のコツ • S3に公開⽤のHTML / CSS / JavaScriptなどのWeb⽤や画像/動 画などの静的コンテンツを配置する 場合でもCloudFrontのOrigin Access Identity (OAI)を利⽤して 配信可能なので、ブロックパブリッ クアクセスを無効化しない

Slide 29

Slide 29 text

29 EBSのデフォルト暗号化 • EC2の設定ページからEBSのデフォ ルト暗号化を有効にする • デフォルトの暗号化キーを利⽤する

Slide 30

Slide 30 text

30 EBSのデフォルト暗号化のコツ • マルチテナントで様々なライフサイ クルのデータを扱う場合は、ライフ サイクルに合わせてKMSキーを作成 して個別に適⽤するといい(暗号化削 除を実施するため) • https://aws.amazon.com/jp/b logs/news/data_disposal/

Slide 31

Slide 31 text

31 パスワードポリシー強化 • パスワードの最⼩⻑: 8⽂字 • 少なくとも1つの⼤⽂字が必要 • 少なくとも1つの⼩⽂字が必要 • 少なくとも1つの数字が必要 • 少なくとも1つの英数字以外の⽂字が 必要 • ユーザーにパスワードの変更を許可

Slide 32

Slide 32 text

32 パスワードポリシー強化のコツ • ⼀番理想はIAM Userがいないこと • Okta / OneLoginなどIdPの基盤を AWSに限らず全体で使⽤し、ID管理 とアクセス制御を集約するとベスト • 次点として1つのAWSアカウントにだ けIAM Userを作るJumpアカウント⽅ 式も検討する • Assume Roleしないと権限がないため、万 が一不正に利用されても何もできない

Slide 33

Slide 33 text

33 デフォルトVPCの削除 • 明⽰的な意図に合わせてVPCリソー スを作成し、利⽤するためデフォルト VPCを削除 • 既存環境であれば削除は慎重に

Slide 34

Slide 34 text

34 デフォルトVPCの削除のコツ • 特にデフォルトセキュリティグルー プが危険なので利⽤しない • 合わせて、利⽤しているVPCのデフ ォルトセキュリティグループにある インバウンドとアウトバウンドのル ール両⽅とも削除する

Slide 35

Slide 35 text

35 セキュリティサービス有効化 + チューニング • 有効化 • GuardDuty • Security hub • Detective • IAM Access Analyzer

Slide 36

Slide 36 text

36 セキュリティサービスのコツ • 集約可能なら複数 AWSアカウント をまとめて集約す る • 運⽤に組み込む

Slide 37

Slide 37 text

37 セキュリティアラート整形 + 通知設定 • Amazon GuardDuty / AWS Security Hub / AWS IAM Access Analyzerからの通知を 運⽤しやすい場所(チャットな ど)に送る • ⾒やすく整形する

Slide 38

Slide 38 text

38 セキュリティアラート整形 + 通知設定のコツ • 関係者が多い場所に通知してみ んなに⾒えるようにする • 関係者の当事者意識が上がり、通 知を減らし、セキュリティスコア を上げることがモチベーションに 繋がる

Slide 39

Slide 39 text

39 整形例: ⽇本語をできる限り⼊れる

Slide 40

Slide 40 text

40 1. セキュアなアカウント単体の原理のまとめ • AWSアカウント単体のセキュリティはSecurity Hubの内容を中⼼にセットアップしていけばいい • ⾃動的にセットアップする仕組みが必要 • 周りを巻き込む仕組みも必要

Slide 41

Slide 41 text

41 2. ベンディングマシンと アカウント運⽤

Slide 42

Slide 42 text

42 ベンディングマシンとは︖ • 新規のAWSアカウントを⽣成・セットアップする 仕組みの概念 • 必須のサービスを有効化したり、ベースラインの 環境を構築したりする • 実現⽅法はCloudFormation StackSetsや TerraformやAWS Organizationsを組み合わせ たり、AWS Control Towerを利⽤したりする

Slide 43

Slide 43 text

43 CloudFormation StackSets • AWS Organizationsがなくてもリージョンやアカ ウントをまたがるCloudFormation展開が可能

Slide 44

Slide 44 text

44 合わせて読みたい 簡単に全体を⾃動化 https://dev.classmethod. jp/articles/cloudformatio n-stacksets-sample-sns- topic/

Slide 45

Slide 45 text

45 合わせて読みたい AWS SummitでVisional 様が発表した内容 Terraformで全体へ展開 https://dev.classmethod.jp/articles/a ws-summit-online-2020-cus-06/

Slide 46

Slide 46 text

46 AWS Control Tower AWSのベストプラ クティスに従った構 成でガードレールを 効かせる仕組み AWS Organizationsと 連携する

Slide 47

Slide 47 text

47 合わせて読みたい 最近のControl Tower事情はこちら で解説しています https://dev.class method.jp/articles /aws-control- tower-allin-2021/

Slide 48

Slide 48 text

48 合わせて読みたい Control Towerか ら拡張した仕組み を展開するベンデ ィングマシンを CDKでぽんと作れ るやつ https://dev.classmetho d.jp/articles/aws-cdk- account-setup-of-ct- from-step-functions/

Slide 49

Slide 49 text

49 合わせて読みたい Terraformと Control Towerを 連携させてベンデ ィングマシンを実 現するAFTの記事 https://dev.classme thod.jp/articles/aft- multi-regions- customization/

Slide 50

Slide 50 text

50 維持の仕組みも考える • 展開したら終わりではない • 継続的な更新が必要なものもある • CloudFormationでUpdateStackをするなどで 更新できるが、CFn未対応のリソースもある • Security Hubのコントロール設定とか • 各アカウントにIAM Roleを⽤意してスクリプトを 流し込んだり、CFnのカスタムリソースを駆使し て維持を検討する

Slide 51

Slide 51 text

51 Security Hubの親⼦関係 アクション 単位で親か ら管理でき ることと、 ⼦供でしか できないこ とが決まっ ている https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-accounts-allowed-actions.html

Slide 52

Slide 52 text

52 2. ベンディングマシンとアカウント運⽤のまとめ • なんでもいいからベンディングマシンを⽤意する • 自分たちの選択できる、使いやすいものを • CDKでもTerraformでもなんでもいい • 維持する仕組みを作る • 簡単にCloudFormationで展開できない設定などに注意 する • どちらも作って終わりじゃないので継続的にブラ ッシュアップするつもりで作って使う

Slide 53

Slide 53 text

53 3. 最強にセキュアな運⽤

Slide 54

Slide 54 text

54 ⼤事なこと • 利⽤できるAWSサービスも使うツールもAWSア カウントの数も満たしたい基準もみんな違う • 世の中の情報は参考になるけど全く⼀緒にはなら ない • 上級者として、⾃分たちの環境ではどうするか、 という観点で運⽤設計する

Slide 55

Slide 55 text

55 セッションテーマ(再掲) ⾃分たちの 最強のAWS環境を作ろう

Slide 56

Slide 56 text

56 実装と運⽤の参考例を紹介 • ここでは下記を紹介する • 実装アーキテクチャ • 周りの巻き込み方 • 参考にしつつ⾃分たちならどうするか考えてほし い

Slide 57

Slide 57 text

57 実装アーキテクチャ Security Hub集約と コンプライアンス違反Slack通知

Slide 58

Slide 58 text

58 要件 • 管理スコープ • 社内のAWSアカウントすべて • 本番用もあれば検証用もある • 管理条件 • AWS Organizationsは利用しない • 管理対象の自由度を確保 • Security Hubの集約はできる

Slide 59

Slide 59 text

59 アーキテクチャ Security Hubは Organizations を利⽤しないで inviteして集約 ベンディングマシ ンにて集約を⾏う ついでに必要最低 限のコントロール 無効化

Slide 60

Slide 60 text

60 アーキテクチャ 各AWSアカウン トの識別しやすい 名前とアカウント 種別、管理者の SlackIDを DynamoDBに登 録 違反がある場合に 担当者にメンショ ン(DMしない)

Slide 61

Slide 61 text

61 アカウントの種類 2種類に分類 • 本番環境以外 • 外部提供するプロダクトの開発・検証環境 • 社内の個人検証環境 • 本番環境 • 外部提供するプロダクトの本番環境

Slide 62

Slide 62 text

62 コントロールの対応⽅針 コントロールに応じた3種類の対応⽅針を策定 • 是正まで追跡 • 検知項目が是正されるまで管理者が追跡する • 7日以内の修正目標 • 通知のみ • ユーザーに通知のみ、是正するかは任せる • 通知したら抑制済みとし、セキュリティスコア対象外 • 対応しない • 対応する必要なし、抑制済みにする

Slide 63

Slide 63 text

63 コントロールの分類 コントロールはある程度パターンが有り分類できる • 必須サービス・設定 • 可⽤性確保 • マルチAZやバックアップなど • ロギング • 通信中の暗号化 • 保管時の暗号化

Slide 64

Slide 64 text

64 ざっくり組み合わせ 分類 本番 本番環境以外 備考 必須サービス・ 設定 是正まで追跡 (基本的に) 是正まで追跡 (基本的に) 実際はコントロール個別 での判断が多い 可⽤性確保 対応しない 対応しない 厳密なセキュリティ要件 ではないため管轄外 ロギング 是正まで追跡 対応しない 本番環境は⼤体のログは 必須とする 通信中の暗号化 是正まで追跡 是正まで追跡 現代のインターネットで は必須 保管時の暗号化 対応しない 対応しない ポリシーと規制要件のた めここでは管轄外

Slide 65

Slide 65 text

65 その他⽅針メモ • 運⽤上煩わしいものは対応しない • VPCフローログとか • WAF適⽤は本番で通知のみ • WAFが不要な対象もあるため • OS以上のレイヤーの脆弱性管理は管轄外 • SSMパッチコンプライアンスなど、別で管理する場合 も多いため

Slide 66

Slide 66 text

66 実装アーキテクチャ 是正までの追跡⽅法

Slide 67

Slide 67 text

67 ⾊々悩んだこと Security Hubの個別のFindingsのステータスを追 跡する仕組みは結構⾯倒 • 検知したらDynamoDBに登録する仕組み • ソートキーに検知日時を入れてデイリーでFindings一覧 を収集してすべてのステータスを確認する実装 • パーティションキーがほぼ固定になり分散されない • GetFindingsでFindingsIDを指定して回すのは20個ずつの 制限がある

Slide 68

Slide 68 text

68 頑張らないことにした 代わりにセキュリティスコアを通知してこれを向上さ せることに注⼒してもらうことにした Security Hub⾃体の画⾯で簡単に状況が確認できる ←このスコアが達成状況 100%を⽬指す

Slide 69

Slide 69 text

69 Findingsの⾃動対応フロー 追跡しない項⽬はす べてワークフローの ステータスを抑制済 みとする 画⾯上で確認すべき 項⽬が明確になる

Slide 70

Slide 70 text

70 周りの巻き込み⽅ セキュリティスコアの 全体通知

Slide 71

Slide 71 text

71 セキュリティスコアはAPIで取得できない ので無理やり 取得してみた https://dev.clas smethod.jp/arti cles/get- control-finding- summary-by- boto3/

Slide 72

Slide 72 text

72 セキュリティスコアランキングを掲載 スコアが低い順じゃなくて、⾼い順Top10とかポジ ティブなランキングにする

Slide 73

Slide 73 text

73 100%達成を盛⼤に祝う ベースラインが100%の場合は達成した時に盛⼤に 祝う

Slide 74

Slide 74 text

74 周りの巻き込み⽅ 具体的なアクションを リクエストする通知

Slide 75

Slide 75 text

75 すぐに次の⾏動がわかる通知を • いつまでに対応すればいいか • どの程度重要か(⾼中低) • 何を判断すればいいか • どのアカウント/リソースか • 対応⽅法は

Slide 76

Slide 76 text

76 セキュリティグループが開いてるときの通知例 • 24時間以内に対応してください • 重要度: ⾼ • アタッチされているリソースに対するSSHを誰が 利⽤しているか確認してください • 999999999999: ap-northeast-1: test-sg • SSHのポートを特定IPのみに絞るか、閉じてくだ さい。Systems Manager Session Managerを 利⽤することでポートを閉じたままシェルを利⽤ することも可能です。<参考URL>

Slide 77

Slide 77 text

77 3. 最強にセキュアな運⽤まとめ • Security Hubの全体管理をするスコープ・要件を 定義する • やりすぎないように、任せるところは任せる • 独⾃の実装と、Security Hub⾃体の機能でまかな うところの境界線を決める • ポジティブにみんな参加できる雰囲気作りを頑張 る

Slide 78

Slide 78 text

78 全体まとめ

Slide 79

Slide 79 text

79 全体まとめ • 単体のセキュアな設定もしつつ、組織の仕組みと して⾃動的にセキュリティが確保される運⽤を検 討する • アカウント払い出しとベンディングマシンで全体 に展開する基盤を作る • わかりやすい成果とポジティブな仕組みで周りを 巻き込み、全員がセキュリティを向上できるよう にする

Slide 80

Slide 80 text

80 セッションテーマ(再再掲) ⾃分たちの 最強のAWS環境を作ろう

Slide 81

Slide 81 text

81 やってみたら ネクストアクションは コミュニティで事例の紹介 Security-JAWSへの 登壇はいかがでしょうか︖

Slide 82

Slide 82 text

82 DevelopersIO 2022 謎解きクイズ DevelopersIO 2022 イベントサイトの ○○○○○○ を⾒よう︕ ○○○○○○ の部分は下の画像がヒントだよ︕

Slide 83

Slide 83 text

No content