今回のゴール
CloudTrailで下記のようなイベントを検知したい時があると思います。
- リソースが作成、変更、削除された
- セキュリティーグループが変更された。
- IAMユーザーやアクセスキーが作成された。
検知する方法は、
- CloudWatchLogs経由
- CloudWatchEvent経由
があるのですが、今回はCloudWatchEvent経由でEC2インスタンスが作成された時にSNSを使用して通知する仕組みを構築します。
CloudTrailの設定
CloudTrail証跡を作成する必要があります。
未作成の時は下記を参照ください。
Organizationsを使用する場合は下記を参照ください。
SNSの設定
SNSトピックの作成
通知用のSNSトピックを作成します。
SimpleNotificationServiceより、「トピックの作成」をクリックします。
[タイプ]:スタンダード
[名前]:任意
[表示名]:任意

SNSサブスクリプションの作成
「サブスクリプションの作成」ボタンをクリックします。

[プロトコル]:Eメール
[エンドポイント]:通知先のメールアドレス

サブスクリプション作成後、入力したメールアドレスに確認メールが届きますので、リンクをクリックして有効にしてください。
CloudWatchの設定
CloudWatchEventの設定
CloudWatchサービスの[イベント]-[ルール]から「ルールの作成」をクリックします。

【ルールを作成する】
[サービス名]:EC2
[イベントタイプ]:AWS API Call via CloudTrail
“特定のオペレーション”にチェックを付け”RunInstances”
[ターゲット]:”SNSトピック”を選択して、先ほど作成したSNSトピックを選択します。

【ルールの詳細を設定する】
[名前]:任意

確認
EC2のインスタンスを作成すると、メールが送信されることを確認できました。