OCIのCloud Guardで検知したアクティビティをメール通知する設定方法

# Cloud Guardとは（クラウドガード:以下CG）
一言でいうと「クラウド上でセキュリティ設定がしっかりしているかどうかをザックリ調べてくれて怪しい（脆弱そうな）箇所があれば指摘してくれるOracle Cloud Infrastructureの無料で使えるセキュリティツール」です

もう少し詳しく言うと、こんな画面でセキュリティリスクを評価してくれます。例えば「パブリックになっているストレージが存在していないかどうか」「FW（セキュリティリスト）で不要に穴が開いていないか」「変わった挙動のユーザアクセス履歴がないか」などをチェックしてくれます。
それらを検知した場合には、検知した内容に合わせて予め対処法を指定しておくことによって、ある程度自動で対応してくれます。例えば、問題があると検知したコンピュートには、自動でそのコンピュートインスタンを停止したりという具合です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/0c16cd14-726e-dbc1-429a-789c76af18f7.png)


# やりたいこと
色々自動で対応してくれると言っても「やはりちゃんと人の目で確認してから対処したい」「自動で停止とか操作されるのは何だか怖い・不安」ではないでしょうか。（ちゃんとテストした上で設定すれば良い話ですが）
ですので、ここでやりたいことは「CGが検知した内容をメール通知する」ための設定をしていきます

# Cloud Guardで検知したらメール通知する設定方法
## 全体の流れ
全体の流れとしては下記のような流れになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/2eca9380-fa96-256a-e703-e70a6aa7941b.png)

1. ディテクタレシピの設定：検知する内容を決めます
2. レスポンダレシピの設定：検知した場合にどう対応するか決めます
3. ターゲットの設定：検知するリソースの対象コンパートメントを決めます
4. 通知（トピックとサブスクリプション）の設定：通知先メールアドレスを設定します
5. ルールの設定：検知した事をイベントとして捉え、通知できるようにします

では1つずつ見ていきます

## ディテクタレシピの設定
「アイデンティティとセキュリティ」から「クラウドガード」を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/50bf2f6c-b782-80f1-3095-ab116a9644be.png)

オラクル管理のデフォルトのディテクターが3種類あるので、それをクローンして自分用のディテクターを3つ作成していきます。

クラウドガードの左側のメニューから「ディテクタレシピ」を選択し、対象の「コンパートメント」を選択してから「クローン」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/2e5f4919-f1f8-e82b-ccbc-84016ea1c614.png)
クローニングの種類が3つあるので、3回下記の作成作業を繰り替えします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/b021f041-cdcb-3341-1e8c-8357ebd60de0.png)
3つのディテクタレシピを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/302e31b4-16f0-e3bc-2fd0-b61bb58a045b.png)

## レスポンダレシピの設定
先程と同じ要領で「レスポンダレシピ」を選択し「クローン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/c9812291-6d34-c9cd-2ec5-ec28c52e7a00.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/c26c4ea2-43bf-6f28-7a1a-875724c65358.png)
レスポンダレシピを1つ作成しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/e57aa61f-8913-0ca2-5162-6ac6eb912cd0.png)
「レシピ名」をクリックし「レスポンダルール」を修正します
レスポンダルールとは問題が生じた際に「どういう対処を自動でしましょうか」といった設定になります。
冒頭で言及したように、ここでは自動で設定変更してほしくないので「Cloud Event」以外のルールを無効にします。
下記図のように「Cloud Event」以外にチェックを入れ「無効化」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/4737fc43-573a-1670-7613-8fff89e90a2f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/660c8011-d28b-e062-3da1-be00f3c820d8.png)
「ステータス」が「無効化」になったことを確認します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/5f668024-ed12-c72a-c215-7375315fda99.png)


## ターゲットの設定

クラウドガードの左下のメニューから「ターゲット」を選択し、「コンパートメント」を選択してから「新規ターゲットの作成」を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/34b1fec6-470d-bd3a-815a-25c4520290d4.png)
「ターゲット名」「説明」を入力し、
先程作成した3つのディテクタレシピと1つのレスポンダレシピを選択し「作成」します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/27e5911a-2606-f3bf-0894-9133df5fb440.png)

「ターゲットの詳細」画面に遷移するので左下のメニューから「レスポンダレシピ」を選択し、追加されている「レシピ名」をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/1d6290d6-31e3-2c20-7bc4-da08d7509a63.png)
レスポンダルールの「Cloud Event」だけが有効になっていることを確認し、「Cloud Event」を編集します（右側の「・・・」をクリックすると「編集」ボタンが表示されます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/9b264217-6d44-183b-ac38-4a5b61ed5b2d.png)
ルールトリガーが「自動的に実行」にチェックを入れ、「自動的な実行の確認」にもチェックを入れ「保存」します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/2e79b851-3d16-dd1e-cc85-d10c8f6d435d.png)


## 通知（トピックとサブスクリプション）の設定
コンソールメニューより「開発者サービス」より「通知」を選択し「トピックの作成」をします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/187d20ce-0865-4afa-4281-d0208a32ea95.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/aaa2a6cf-a886-d67c-9b82-cb0c982f1542.png)
「トピックの詳細」画面へ遷移し、「サブスクリプションの作成」をします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/00dee900-6ec3-211c-0a2e-ccf12afa7642.png)

プロトコルは「電子メール」を選択し通知先のメールアドレスを入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/91b5277e-ca0d-bd38-5ff4-26a7bee236e6.png)
サブスクリプション作成をすると設定したメールアドレス宛にメールが飛びます。
メール下記に記載されいてる「Confirm subscription」のリンクをクリックするとサブスクリプションがアクティブな状態になります。
メール件名:Oracle Cloud Infrastructure Notifications Service Subscription Confirmation
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/c93d8be0-22f2-a52c-b093-8ece8b2c3138.png)


## ルールの設定
コンソールメニューより「監視および管理」から「ルール」を選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/df52cf44-6782-9c05-a8c4-b0314d31331a.png)
「ルールの作成」を選択し、ルール条件の「イベントタイプ」にCLoud Guardをイベントタイプは「Detected Problem」にします。
アクションタイプを「通知」とし、先ほど作成したトピックを適用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/92c9d075-a79f-86d6-8a68-329dc8a2155f.png)

## メールが送信されるか確認
メールがちゃんと飛ぶか確認するためパブリックなオブジェクトストレージを作成してみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/69038701-9a46-3ad7-cabf-6608170d7d87.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/4bca692c-cf6b-7716-29a5-3fe2e18abfa7.png)
作成したバケットを「可視性の編集」をしパブリックに変更します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/4d2a33a7-e727-db9e-c437-ad6888845323.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/d7d72edf-1d5a-c26d-c164-6adbc06fad6d.png)
しばらくするとメールが送信されてきました。設定はちゃんとできたようです。
メール件名：OCI Event Notification



## 注意点
もしメールが届かず設定が上手くいっていない際には「設定」から下記レポートリージョンを確認してみてください。
レポートリージョンと通知設定・ルール設定をしたリージョンが一致していない場合、上手くいかないようです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1064900/3cd0701f-b41a-377b-b205-0ca4fb9a0c35.png)


# 公式マニュアル
下記を参考に進めましたので参考にしてください
>CGを説明している動画（英語だがざっくり概要を掴むには分かりやすい図がでてるので紹介）
https://www.coursera.org/lecture/oracle-cloud-infrastructure-architect-associate/cloud-guard-exJPl
公式マニュアル（今回は基本的に下記の流れに沿って設定しています）
https://docs.oracle.com/ja-jp/iaas/cloud-guard/using/export-notifs-config.htm