Amazon Macieで検知したAlertをCloudWatch Events経由でメール通知する

はじめに

8月14日に開催されたAWS Summit 2017 New Yorkにて発表された新サービス、Amazon Macie。

皆様試してみましたでしょうか?触れば触るほど、これは全ユーザーが有効にすべき重要なサービスであると感じます。現時点ではリージョンや解析言語に制限があるものの、今後の機能拡張に大きな期待をしています。

さて、Amazon Macieは「機械学習を使ってAWSに保存されている機密データを自動的に発見、分類、保護するサービス」ですが、実際にはMacie自体が保護するわけではなく、Alertを検知するまでを行ってくれますので、検知されたAlertをトリガーにCloudWatch Eventsをキックすることで、様々な保護処理を行うことができます。例えばLambda Functionと連携すれば、対象の機密データが含まれたオブジェクトを削除したり、権限を変更したり、外部に通知したりすることができます。

今回はまず一番簡単な方法として、Amazon MacieがAlertを検知したら、CloudWatch Events経由でSNS topicと連携し、メールにより通知してみました。

やってみた

Amazon Macieの設定

Amazon Macieは既に設定済みとします。設定方法は上記の弊社ブログを参照ください。

CloudWatch Eventsの設定

Macieを設定したリージョンで、CloudWatch Events管理画面を開きます。[Event Source]の[Service Name]で「Macie」を選択します。[Event Type]は「All Events」と「Alert Event」があります。

CloudWatch_Management_Console

今回は「Alert Event」を選択します。All Eventsとの違いはdetail-typeフィールドです。次にTargetの設定です。[Add target]ボタンをクリックします。

CloudWatch_Management_Console 2

事前に設定してあった、メール通知するためのSNS topicを選択します。[configure details]ボタンをクリックします。

CloudWatch_Management_Console 3

[Name]ランを適当に設定して、[Crete rule]ボタンをクリックします。

CloudWatch_Management_Console 4

Ruleが作成されたことを確認します。

CloudWatch_Management_Console 5

やってみる

Amazon Macieの分析対象となっているS3バケットに、個人情報(のダミー)が記載されたファイルをアップロードします。

30分ほど待つと、以下のようにAlertが上がってきました。

Amazon_Macie

以下のように、アップロードしたファイルにリスクがあると検知されています。

Amazon_Macie_2

そしてこんな感じでメールで通知されます。

AWS_Notification_Message_-_sasaki_daisuke_classmethod_jp_-_Classmethod_jp_メール

ということで通知が出来ました!

さいごに

今回はシンプルにSNS経由での通知を行いましたが、Lambda Functionと組み合わせることで様々な制御が可能です。今後この辺のノウハウも蓄積してくのではないでしょうか。僕もいろいろ考えてみたいと思います!