DeepSecurityを使ってAWSのEC2とWorkSpacesを保護する

## 目的と概要
AWSのEC2とWorkSpacesをまとめていい感じにセキュリティ対策を行うため、TrendMicroのDeepSecurityを使います。
DeepSecurityにてAWSのEC2とWorkSpacesにアクセス可能なIAMロールを作成し、IAMロールのARNを認証情報に用いてAWSに接続して保護対象にするというものです。

## DeepSecurity概要
[Trend Micro Cloud One™Workload Security 概要](https://www.networld.co.jp/product/trendmicro/pro_info/cloudone_workload_security/)

* 管理サーバーをクラウド上で提供するクラウド型総合サーバーセキュリティサービスでサーバ保護に必要な多層のセキュリティ機能を一元的に提供している。主な機能は以下の通り。
  * 不正プログラム対策　：リアルタイムにウイルスを検索
  * Webレピテーション　：不正なURLへの接続を防止
  * 不正侵入検知・防止(ホスト型IDS/IPS) 　：仮想パッチでOSやアプリケーションの脆弱性を保護
  * ファイアウォール　：DoS攻撃など不正な通信を防御
  * ファイルやレジストリなどの変更監視　：ファイルやポート等の変更を監視
  * セキュリティログ監視　：OSやミドルウェアのセキュリティイベントを集中監視
  * アプリケーションコントロール　：ホスト上で実行されるアプリケーションを監視
* 保護対象のサーバにAgentをインストールし、クラウド上で提供する管理サーバーにログインすることで、セキュリティ設定の変更やログ管理を行うことができる。
* 管理サーバ不要で、完全にSaaSでクラウド上のサーバやコンテナを保護することができる。
* オートスケールにも対応し、保護対象から外れることなく対応出来る。

## 手順
### DeepSecurity側設定
DeepSecurityの管理コンソールにログインして、「コンピュータ」タブを選択し、画面左の設定画面にて「AWSアカウントを追加」を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/e9539294-b371-23bd-e126-e0d5d007c1c1.png" width=30%>

詳細にチェックして「次へ」を選択します。ちなみに「クイック」を選択するとAWSのCloudFormationで認証に必要なIAMを作成します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/e96296bc-5261-d697-0490-db5c7feef100.png" width=70%>

「クロスアカウントロールを使用」を選択し、目のマークをクリックして外部IDを表示させます。
この外部IDをAWS側の認証情報に利用するのでコピーします。また、「Amazon WorkSpacesを含める」にチェックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/d62eccd0-3e17-9aa6-c83a-2588be0e26b5.png" width=70%>

### AWS側設定
保護したいサーバーのアカウントで管理コンソールにログインし、IAMロールを作成します。
ロールの種類として「別のAWSアカウント」を選択し、アカウントIDとしてDeepSecurityの固定ID`147995105371`を入力します。
そしてオプション「外部IDが必要」にチェックし、DeepSecurityにて指定された外部IDを入力します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/00da73da-4a1d-6942-e033-920657b207a7.png" width=80%>

アタッチするロールは`AmazonEC2ReadOnlyAccess`と`AmazonWorkSpacesAdmin`です。
※ WorkSpacesはAWSがデフォルトで用意しているAmazonWorkSpacesAdminを使っていますが、もっと許可権限制限しても問題ないと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/5911d997-e0eb-6752-041f-e2a334a493cf.png)

適切なロール名`Deep_Security_Role`をつけてロールが完成します。
完成したロールARNをコピーします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/0d765e17-03b0-9110-5771-7a8405ea8a11.png" width=90%>

### DeepSecurity側で認証し、リソースを追加
コピーしたロールARNをDeepSecurityの接続画面で「クロスアカウントロールのARN：」に貼り付けて「次へ」を押すと認証しリソース追加が始まります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/e2ad2356-fa83-121f-028b-c4f6cadab61d.png" width=70%>

EC2とWorkSpacesが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/68ddaa45-553e-50a9-2f57-4942e307863b.png)

### 追加したリソースを保護対象にする
リソースとして追加した状態だと保護対象にならないので、対象サーバにてスクリプトを実行して保護対象に追加します。
DeepSecurity管理画面から「サポート情報」-「インストールスクリプト」を表示させます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/49b97072-08cd-6016-a4c7-e572be9455f8.png" width=30%>

「インストール後にAgentを自動的に有効化」にチェックを入れ、保護したい設定内容のセキュリティポリシーを割り当て、スクリプトをクリップボードにコピーします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/76a0e163-22ad-07d7-6ba3-edd2335d5ab8.png" width=70%>

対象サーバにsshログイン後、適当なインストール用スクリプト`install.sh`を作成し、実行権限をつけて実行します。

```
# install.shを作成し、クリップボードの内容をコピーして保存する
$ sudo nano install.sh

# 実行権限をつける
$ sudo chmod 700 install.sh

実行
$ sudo ./install.sh 
```

スクリプトが実行完了すると、DeepSecurity管理画面で対象サーバの各種保護機能がオンとなり、保護対象となっていることが確認できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252317/497b1f7f-7a2e-70c7-f6b0-79d800c37903.png" width=70%>

## 参考

[[TrendMicro公式]AWSクラウドアカウントの追加]
(https://help.deepsecurity.trendmicro.com/11_0/aws/ja-jp/Add-Computers/add-aws.html#Overview)

[[Deep Security] AWSアカウント連携をIAM Roleで設定する](https://dev.classmethod.jp/articles/deepsecurity-aws-with-iam-role/#toc-4)