初心者でも大丈夫!AWSアカウント作成時のセキュリティ設定

 初心者でも大丈夫!AWSアカウント作成時のセキュリティ設定

2020年5月29日(金)
「Security-JAWS 【第17回】 勉強会」で発表した資料です

https://s-jaws.doorkeeper.jp/events/106722

F2ccc400e285972d80feab0e4e57b5f7?s=128

fumiakiueno

May 29, 2020
Tweet

Transcript

  1. 初心者でも大丈夫! AWSアカウント作成時のセキュリティ設定 NRIネットコム株式会社 上野 史瑛 2020年5月29日

  2. 1 自己紹介 名前: 上野 史瑛(うえの ふみあき) 所属: NRIネットコム株式会社 経歴: ・各種Webシステムのインフラ構築・運用

    - サーバ、ネットワーク管理や構築がメイン - PCIDSS取得対応等にも参画 - オンプレとAWSの両方を経験 ・AWS最適化プロジェクトに参画 ・AWS技術検証や構成レビュー ・2020 APN Ambassadors ・2020 APN AWS Top Engineers ・2020 APN ALL AWS Certifications Engineer @fu3ak1
  3. 2 会社紹介 WEBシステムを中心にソリューションを提供しています

  4. 3 会社紹介 AWSは特に力をいれて頑張っています ・資格取得数100 ・モバイルコンピテンシー取得 AWSでご相談があればご連絡ください →「NRIネットコム 問い合わせ」で検索

  5. 4 AWS、安全に使用できていますか?

  6. 5 AWSアカウントは、作成した時点でセキュリティリスクがある 開発・検証用途のAWSアカウントの場合も、 「AWSアカウントが乗っ取られて、大量のリソースを作成される」 といったリスクは存在する AWSアカウント EC2 RDS 大量作成 ⇒可能な限り早くアカウントを保護することが大切です

    AWSアカウント IAM 他アカウントとの連携も注意
  7. 6 作成した時点で最低限やっておくべきセキュリティ設定がある セキュリティサービスも多く、どこから設定したらわからない・・ という方へ向けて作成時に設定すべき内容をまとめました (シングルアカウントを前提としています) 必要性に応じて、以下3分類に分類 BETTER SHOULD MUST アカウント開設後に必ず実施すべき作業

    設定内容の検討または利用方法を決定のうえ、 可能な限り実施すべき作業 AWSの知識がある方が行う場合やセキュリティ要件 の高いアカウントで実施すべき作業
  8. 7 ルートユーザの保護 ルートユーザは全ての操作権限があり、個人が特定できない。 ルートユーザのみ可能な設定を行った後は、基本的に使用しないこと! 以下の2点を必ず実施して、保護しておく • 強力なパスワードを設定する(8文字以上、文字種類を多くする) • 多要素認証(MFA)を有効化する BETTER

    SHOULD MUST コンソール右上のアカウント名 >マイセキュリティ情報 で移動
  9. 8 コストの可視化 AWS利用料は使った分しかかからない=使った分だけ料金が増えてしまう 不正利用の観点でも、利用料金を観察しておくことは非常に重要! 次から説明する可視化、アラートの設定を行って、定期的な状況確認 想定以上の利用料になった場合は検知する仕組みを用意しておく。

  10. 9 IAMユーザーの請求情報アクセス許可 BETTER SHOULD MUST デフォルトではIAMユーザーは請求情報にアクセスできない ルートユーザを使用しないために、IAMアクセスのアクティブ化を行っておく ※ルートユーザのみ設定可能※ コンソール右上のアカウント名 >マイアカウント

    で移動
  11. 10 Cost Explorerの有効化 BETTER SHOULD MUST AWS利用料を月別、日別やサービス別で確認できるツール ※ルートユーザのみ設定可能※ 別途コスト管理ツールを導入していればそちらでもOK マイアカウントページの左に

    Cost Exploerメニューあり
  12. 11 予算およびアラートの設定 AWS Budgets(予算)を使用して、想定した利用料を決めておき、予算として設定する 利用料が予算額に達した場合や、予算額の何%(指定)になった場合にメール通知も 可能なため、意図しない利用料の増加に気づくため必ず設定する CloudWatchを使用した請求アラームでもOK マイアカウントページの左に Budgetsメニューあり BETTER

    SHOULD MUST
  13. 12 サポートプランの検討 本番環境として使用するAWSアカウントはビジネス以上のプランを検討する ※ルートユーザのみ設定可能※ BETTER SHOULD MUST

  14. 13 管理者IAMユーザーの設定 全ての操作が可能な管理者用のIAMユーザーを作成する 管理者用のIAMグループを作成し、そこの所属させる BETTER SHOULD MUST AWS管理のAdministratorAccessを付与すればOK 必要に応じてMFA強制ポリシーやIP制限のカスタムポリシーを合わせて付与する

  15. 14 利用者IAMユーザーの設定 アカウントの利用用途(例えばVPCとEC2のみ使用するなど)が決まっていれば 利用用途の必要最低限な権限のみ付与したIAMユーザーも作成する 一番重要であり、一番難しい(手間のかかる)設定のため、検討が必要 BETTER SHOULD MUST

  16. 15 先輩のIAM本を宣伝 IAMってよくわからない、難しい・・という方は是非一読

  17. 16 ここからはセキュリティ・ガバナンス系の サービスを実際触っていきます

  18. 17 CloudTrailの証跡設定 AWS上の操作履歴がデフォルトで90日間保存される。 S3上に証跡を残しておくことで、全ての履歴を残すことが可能 料金もほとんどかからないため、実施しておく BETTER SHOULD MUST

  19. 18 AthenaによるCloudTrail可視化 Athenaを使用してSQLでCloudTrailのログ検索が可能 設定もCloudTrailの画面からクリックすることで簡単に実施できる BETTER SHOULD MUST

  20. 19 AWS Configの有効化 有効にすることで、AWSリソースの設定変更履歴を保存することができる CloudTrailでは誰がどの操作を行ったのか、Configではどのリソースが いつどのように変更されたのか、履歴を残すことが可能 BETTER SHOULD MUST セキュリティグループの

    変更履歴
  21. 20 Configルールの設定 Config ルールを使用することで、AWSリソースが設定したルールに準拠しているか チェックすることが可能。例えば以下のようなルールのチェックが可能である • CloudTrailが有効になっているか • S3バケットがパブリック読み書き可能になっていないか •

    Security GroupでSSHポート(22)がパブリック公開されていないか また、Configルールと修復アクションを合わせて設定することで、 SNS通知や自動修復処理も設定可能 BETTER SHOULD MUST
  22. 21 Amazon GuardDuty 有効化 AWS上の悪意のある操作や不正な動作を検知するサービスで、 例えば以下のような情報が検知される • ルートユーザの使用 • IAMユーザーの不正利用(大量の操作実行など)

    • EC2の不正通信 CloudTrail、VPC Flow Logs、DNS Logsの3つをインプットとしている BETTER SHOULD MUST サンプルイベント
  23. 22 GuardDutyの通知設定 有効化だけではリアルタイムな検知ができないため、 CloudWatchルールとSNSを使用して、管理者にメール等で通知を行う設定も行う BETTER SHOULD MUST GuardDutyを選択 通知先のSNSを選択 Chatbotを使用した

    Slack通知も可能 SecurityHub側で 検知してもOK
  24. 23 IAM Access Analyzer 有効化 IAMの画面からアナライザーを作成する AWSアカウント外と共有しているIAMロールやS3バケットを一覧で確認することができる リージョン単位での設定が必要 BETTER SHOULD

    MUST 無料です!
  25. 24 AWS Security Hub 有効化 AWSアカウント内のセキュリティ状況やコンプライアンスの準拠状況を 1箇所で確認できるサービス • CIS AWS

    Foundations BenchmarkやPCI DSSしたがったコンプライアンスチェック • GuardDuty、Macie、Inspector、Firewall Manager、IAM Access Analyzer といった各種AWSのセキュリティサービスや3rd Partyの検出、アラートの一元管理 BETTER SHOULD MUST
  26. 25 Security Hubの通知設定 GuardDuty同様、リアルタイム検知を行う場合はCloudWatchによる 検知設定を行う Security Hubの結果を全て通知すると、通知量が多くなるため検討が必要 BETTER SHOULD MUST

    イベントパターンのJSONをカスタマイズして、 通知内容を限定する
  27. 26 Security Hubの通知設定 例 イベントパターンを以下の通り記載することで、通知内容を限定することが可能 BETTER SHOULD MUST { "source":

    [ "aws.securityhub" ], "detail-type": [ "Security Hub Findings - Imported" ], "detail": { "findings": { "ProductFields": { "aws/securityhub/SeverityLabel": [ "HIGH", "MEDIUM" ] } } } } { "source": [ "aws.securityhub" ], "detail-type": [ "Security Hub Findings - Imported" ], "detail": { "findings": { "ProductFields": { "aws/securityhub/ProductName": [ "GuardDuty" ] } } } } 例1. 重要度がHIGH、MEDIUMのみ通知 例2. GuardDutyのみ通知
  28. 27 Amazon Detective 有効化 VPC Flow Logs、CloudTrail、GuardDuty などをインプットに、 潜在的なセキュリティ問題や不信なアクティビティを分析、調査できるサービス GuardDuty→イベント発生ベースで検知する

    Detective→時系列情報を含みグラフで視覚化、傾向や状況を確認する BETTER MUST SHOULD
  29. 28 Amazon Detective 使用方法 IAMユーザー、EC2、AWSアカウント、IPアドレス、ユーザーエージェント別に AWS環境上での操作実行内容の分析が可能で、地域別の分析も可能 BETTER MUST SHOULD クリック

    指定したIAMユーザーの、API実行状況、エラー状況がわかる IPアドレス別、アクセスキー別の一覧もあり IAMユーザーを指定した場合の例
  30. 29 設定作業はここまで。お疲れ様でした! その他お役立ち情報をご紹介

  31. 30 その他紹介しなかったAWSサービス S3上の個人情報検知に活用 Amazon Macie AWS Personal Health Dashboard AWS

    Well-Architected Tool AWS Trusted Advisor AWS全体の障害やメンテナンス情報、 アカウント内のメンテナンス情報の検知 AWSアカウント内のベストプラクティス準拠状況を確認 ワークロードの設計レビューに活用
  32. 31 コストについて AWSサービス 利用料金(割合) 備考 全利用料 100% Config 1.2% Configルールの設定は無し

    GuardDuty 0.6% SecurityHub 1% CIS AWS Foundations Benchmark 有効 Detective 1% 無料期間中(30日間)のため容量から算出 CloudTrail 0.01% S3の容量から算出 実際に利用しているSandBox用途のアカウントで利用料の状況を確認してみました ※利用状況によって料金は変動しますのでご注意ください※ セキュリティ系のサービス全体で全体の約3.8%、全体利用料$1,000の場合は$38 積極的にご利用ください!
  33. 32 複数アカウント設定時の考慮 複数のアカウント設定や、今後アカウント追加を検討している場合は、 CloudFormationやTerraformでのテンプレート化、設定自動化を検討する Amazon GuardDuty AWS CloudTrail AWS Config

    Amazon SNS CloudWatch AWS Security Hub AWS CloudFormation Access Analyzer S3バケット Detective Template
  34. 33 宣伝:認定セキュリティ本がでます BETTER SHOULD MUST マスト!