AWS
EC2
CloudWatch
Inspector
SSM

Amazon Inspector で定期的なセキュリティ評価の実行をスケジュールする

はじめに

Amazon Inspector で マネージメントコンソールから定期的な評価のスケジュールと
エージェントのインストールが実行できるようになりました。

Amazon Inspector Adds the Ability to Schedule Recurring Assessment Runs and Install the Agent from the Console
https://aws.amazon.com/jp/about-aws/whats-new/2018/04/amazon-inspector-adds-the-ability-to-schedule-recurring-assessment-runs-and-install-the-agent-from-the-console/

こちらを実際に試してみたいと思います。

事前準備

検証用EC2の準備

あらかじめ Nameタグに Inspector-test を設定した
検証用の Amazon Linux EC2 インスタンスを起動しておきます。

image.png

注意点として、Inspector コンソールでのエージェントインストールについて
実際には AWS Systems Manager の Run Command が実行されています。
そのため、対象の EC2 には SSM Agent がインストールされ、AmazonEC2RoleforSSM ポリシーが
アタッチされたIAMロールが設定されている必要があります。

本記事では手順を割愛しますが、詳細な手順は以下のドキュメントをご参照ください。

Systems Manager のアクセス設定
タスク 2: Systems Manager のインスタンスプロファイルロールの作成
タスク 3: Systems Manager ロールを使用する Amazon EC2 インスタンスを作成する
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-access.html#sysman-configuring-access-role

SSM エージェント をインストールし設定する
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ssm-agent.html

SSM Agent は Amazon Linux および Windows ではデフォルトでインストールされていますが、
他の OS の AMI を使用している場合は手動でインストールが必要です。

Inspectorの初期設定

Amazon Inspector コンソールから以下の手順で初期設定を行います。

ステップ1 前提条件

ここでは何もせず、続行します。

image.png

ステップ2 評価ターゲットの定義

あらかじめ起動しておいた EC2 に設定した Name タグの情報を入力します。

image.png

5/25 追記
これまで評価ターゲットの設定はタグによる絞り込みが必要でしたが、最近のアップデートにより
リージョン内の全てのEC2を対象に設定することができるようになりました。
https://aws.amazon.com/jp/about-aws/whats-new/2018/05/amazon-inspector-adds-ability-to-run-security-assessments-on-amazon-ec2-instances-without-adding-tags/

image.png

Include all EC2 instances in this AWS account and region にチェックを入れるだけです!
ただしサービスの制限値の影響は変わら受けるようです。
https://docs.aws.amazon.com/ja_jp/inspector/latest/userguide/inspector_limits.html

ステップ3 評価テンプレートの定義

テンプレートの名前は任意です。
ここでは、ルールパッケージは、Common Vulnerabilities and Exposures-1.1 を選択し、
所要時間をデフォルトの1時間から15分に変更しています。

image.png

ステップ4 確認

エージントのインストールに関するメッセージが出力されますが、後ほど実行するため
ここではそのまま作成を行います。

image.png

Inspector コンソールからのエージェントインストール

作成された評価ターゲットから Preview Target を選択するとエージェントステータスが確認できます。
インストール未実施のため、ステータスが UNKNOWN となっています。

image.png

Install Agents with Run Command を実行するとターゲットとして登録されているインスタンスに対して
エージェントのインストールを実行できます。
SSM Agent のインストールとコマンド実行の権限に関する確認メッセージが出力されますが、
今回は事前準備で設定を行っているため、OKを押して実行します。

image.png

SUCCESS メッセージが出力されることを確認します。

image.png

注意点としては SSM Agent と IAM ロールの設定が正常に行われていない場合でも、以下の画像の2行目
のように Run Command のターゲット件数が0件で正常終了するため、SUCCESSが表示されます。

image.png

AWS Systems Manager コンソールの Run Command の実行履歴を確認して、
対象のインスタンスに確実にインストールが行われていることを確認します。

image.png

インストール後に Preview Target からエージェントのステータスを確認すると
HEALTHY となっているはずです。

image.png

定期的な評価の実行をスケジュールする

作成された評価テンプレートを確認します。
初期設定ではSNS Topicの設定が行われないため、必要に応じてイベントの通知先のTopicを設定します。
Add schedule を選択することによって、評価の定期実行をスケジュールできます。
デフォルトでは7日毎の実行がスケジュールされ、初回の実行は即時行われます。

image.png

Add Schedule 選択すると、以下のように Scheduled Event が 登録されます。

image.png

評価の定期実行は、実際には CloudWatch Events によってスケジュールされています。
CloudWatch コンソールのイベントルールで対象のルールを確認できます。

image.png

ルールの詳細を確認すると 対象の評価テンプレートに対して 7日毎の評価実行が
スケジュールされていることがわかります。

image.png

評価の実行では、初回の評価が実行中であることが確認できます。

image.png

今回の設定では15分後にデータの収集が完了します。

image.png

ちなみに今回の評価結果では、重要度 Low の openssl の脆弱性(CVE-2018-0737)が1件検出されました。

image.png

さいごに

Inspector コンソールからのエージントのインストールと
評価の定期実行スケジュールを設定する方法を確認しました。
これまでも AWS Systems Manager や CloudWatch Events で 設定できた内容だと思いますが、
Inspector コンソールからワンクリックで実行、設定できるようになったのは便利ですね。
参考になれば幸いです。