Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

1 自己紹介 名前: 上野 史瑛(うえの ふみあき) 所属: NRIネットコム株式会社 経歴: ・各種Webシステムのインフラ構築・運用 - サーバ、ネットワーク管理や構築がメイン - PCIDSS取得対応等にも参画 - オンプレとAWSの両方を経験 ・AWS最適化プロジェクトに参画 ・AWS技術検証や構成レビュー ・2020 APN Ambassadors ・2020 APN AWS Top Engineers ・2020 APN ALL AWS Certifications Engineer @fu3ak1

Slide 3

Slide 3 text

2 会社紹介 WEBシステムを中心にソリューションを提供しています

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

6 作成した時点で最低限やっておくべきセキュリティ設定がある セキュリティサービスも多く、どこから設定したらわからない・・ という方へ向けて作成時に設定すべき内容をまとめました (シングルアカウントを前提としています) 必要性に応じて、以下3分類に分類 BETTER SHOULD MUST アカウント開設後に必ず実施すべき作業 設定内容の検討または利用方法を決定のうえ、 可能な限り実施すべき作業 AWSの知識がある方が行う場合やセキュリティ要件 の高いアカウントで実施すべき作業

Slide 8

Slide 8 text

7 ルートユーザの保護 ルートユーザは全ての操作権限があり、個人が特定できない。 ルートユーザのみ可能な設定を行った後は、基本的に使用しないこと! 以下の2点を必ず実施して、保護しておく • 強力なパスワードを設定する(8文字以上、文字種類を多くする) • 多要素認証(MFA)を有効化する BETTER SHOULD MUST コンソール右上のアカウント名 >マイセキュリティ情報 で移動

Slide 9

Slide 9 text

8 コストの可視化 AWS利用料は使った分しかかからない=使った分だけ料金が増えてしまう 不正利用の観点でも、利用料金を観察しておくことは非常に重要! 次から説明する可視化、アラートの設定を行って、定期的な状況確認 想定以上の利用料になった場合は検知する仕組みを用意しておく。

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

20 Configルールの設定 Config ルールを使用することで、AWSリソースが設定したルールに準拠しているか チェックすることが可能。例えば以下のようなルールのチェックが可能である • CloudTrailが有効になっているか • S3バケットがパブリック読み書き可能になっていないか • Security GroupでSSHポート(22)がパブリック公開されていないか また、Configルールと修復アクションを合わせて設定することで、 SNS通知や自動修復処理も設定可能 BETTER SHOULD MUST

Slide 22

Slide 22 text

21 Amazon GuardDuty 有効化 AWS上の悪意のある操作や不正な動作を検知するサービスで、 例えば以下のような情報が検知される • ルートユーザの使用 • IAMユーザーの不正利用(大量の操作実行など) • EC2の不正通信 CloudTrail、VPC Flow Logs、DNS Logsの3つをインプットとしている BETTER SHOULD MUST サンプルイベント

Slide 23

Slide 23 text

22 GuardDutyの通知設定 有効化だけではリアルタイムな検知ができないため、 CloudWatchルールとSNSを使用して、管理者にメール等で通知を行う設定も行う BETTER SHOULD MUST GuardDutyを選択 通知先のSNSを選択 Chatbotを使用した Slack通知も可能 SecurityHub側で 検知してもOK

Slide 24

Slide 24 text

23 IAM Access Analyzer 有効化 IAMの画面からアナライザーを作成する AWSアカウント外と共有しているIAMロールやS3バケットを一覧で確認することができる リージョン単位での設定が必要 BETTER SHOULD MUST 無料です!

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

25 Security Hubの通知設定 GuardDuty同様、リアルタイム検知を行う場合はCloudWatchによる 検知設定を行う Security Hubの結果を全て通知すると、通知量が多くなるため検討が必要 BETTER SHOULD MUST イベントパターンのJSONをカスタマイズして、 通知内容を限定する

Slide 27

Slide 27 text

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のみ通知

Slide 28

Slide 28 text

27 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のみ通知

Slide 29

Slide 29 text

28 Security Hubの通知設定 例 イベントパターンを以下の通り記載することで、通知内容を限定することが可能 ※レベル別の通知はフィールド情報の変更があったため、以下の通り変更する必要があります 参考:https://forums.aws.amazon.com/ann.jspa?annID=7937 BETTER SHOULD MUST { "source": [ "aws.securityhub" ], "detail-type": [ "Security Hub Findings - Imported" ], "detail": { "findings": { "Severity": { "Label": [ "HIGH", "MEDIUM" ] } } } } { "source": [ "aws.securityhub" ], "detail-type": [ "Security Hub Findings - Imported" ], "detail": { "findings": { "ProductFields": { "aws/securityhub/ProductName": [ "GuardDuty" ] } } } } 例1. 重要度がHIGH、MEDIUMのみ通知 例2. GuardDutyのみ通知 変更箇所

Slide 30

Slide 30 text

29 Amazon Detective 有効化 VPC Flow Logs、CloudTrail、GuardDuty などをインプットに、 潜在的なセキュリティ問題や不信なアクティビティを分析、調査できるサービス GuardDuty→イベント発生ベースで検知する Detective→時系列情報を含みグラフで視覚化、傾向や状況を確認する BETTER MUST SHOULD

Slide 31

Slide 31 text

30 Amazon Detective 使用方法 IAMユーザー、EC2、AWSアカウント、IPアドレス、ユーザーエージェント別に AWS環境上での操作実行内容の分析が可能で、地域別の分析も可能 BETTER MUST SHOULD クリック 指定したIAMユーザーの、API実行状況、エラー状況がわかる IPアドレス別、アクセスキー別の一覧もあり IAMユーザーを指定した場合の例

Slide 32

Slide 32 text

31 設定作業はここまで。お疲れ様でした! その他お役立ち情報をご紹介

Slide 33

Slide 33 text

32 その他紹介しなかったAWSサービス S3上の個人情報検知に活用 Amazon Macie AWS Personal Health Dashboard AWS Well-Architected Tool AWS Trusted Advisor AWS全体の障害やメンテナンス情報、 アカウント内のメンテナンス情報の検知 AWSアカウント内のベストプラクティス準拠状況を確認 ワークロードの設計レビューに活用

Slide 34

Slide 34 text

33 コストについて 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 積極的にご利用ください!

Slide 35

Slide 35 text

34 複数アカウント設定時の考慮 複数のアカウント設定や、今後アカウント追加を検討している場合は、 CloudFormationやTerraformでのテンプレート化、設定自動化を検討する Amazon GuardDuty AWS CloudTrail AWS Config Amazon SNS CloudWatch AWS Security Hub AWS CloudFormation Access Analyzer S3バケット Detective Template

Slide 36

Slide 36 text

35 宣伝:認定セキュリティ本がでます BETTER SHOULD MUST マスト!