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](https://qiita-image-store.s3.amazonaws.com/0/125105/f942e5ca-7996-84e6-8376-be77dd983e72.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](https://qiita-image-store.s3.amazonaws.com/0/125105/147a8fb0-498b-f800-4e94-a4b541285459.png)

### ステップ2 評価ターゲットの定義
あらかじめ起動しておいた EC2 に設定した Name タグの情報を入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/eef6ee62-2fc1-b5e4-75a2-a57a9ffbf932.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](https://qiita-image-store.s3.amazonaws.com/0/125105/52535d31-331c-cd04-5cb5-8d8d7dee7763.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](https://qiita-image-store.s3.amazonaws.com/0/125105/d6987a63-8665-f32b-668d-05e5b229715a.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/bb0b77fd-aa8e-385b-e4d7-18bc44f7ed9c.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/d308e04f-bcdd-066d-a094-bde230539272.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/23ded4e4-90db-d9b3-72ce-7a5481f5c29a.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/69c1715b-8ee3-eea8-d5a5-ada3023ad39b.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/04a0028d-9984-f663-1de4-0920020afd3a.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/dfa042e2-9e16-ef5c-a767-40ae8aee3f1a.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/07c70bfd-0615-0a46-1d45-6fbf1b2457bb.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/cb85a335-d8a4-d58a-5057-d36ca7d24e71.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/ef087ea8-411f-f41a-fe14-9d39906bf64f.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/6b8f6afb-f8b8-6f9e-f6b1-51f6a156cc35.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/4d69ca8e-bba0-cb1a-ca26-e4f78c7338ea.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/a6841f53-f8ff-5e78-3fe6-dc5861456861.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/2e083797-ec45-a59e-fd4a-510f296450fe.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125105/c0781332-cc78-ae4d-c8e1-25b86570196d.png)


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