AWS User Notifications でAWS Health eventの特定サービスの通知だけ送信する設定を試してみた

2023.06.05

AWS Healthで特定の通知だけを受けとりたい場合、今まではAmazon EventBridgeを利用すればできましたが、AWS User Notificationsでも通知ができるようなので試してみました。

AWS Healthの通知をEventBridgeを受け取る方法はこちら。

AWS User Notificationsとは

AWS Health イベント、Amazon CloudWatch アラーム、Amazon EC2 インスタンスの状態変更などを通知してくれるサービスです。

詳しい内容については以下記事をご確認ください。

AWS User Notificationsを使って、特定のHealthイベントを通知する設定をしてみた。

今回、AWS Health イベントのSES関連のイベントのみ、通知されるように設定します。

通知設定を作成する

通知設定の画面から、"通知設定を作成"をクリックします。

イベントルールを設定する

通知設定を作成 の画面で、名前を入力後、
イベントルールを以下に用に設定します。

  • AWS のサービスの名前:Health.
  • イベントタイプ:特定のヘルスイベント[1].
  • リージョン:任意のリージョン.

高度なフィルターを設定する

高度なフィルター設定で以下のjsonを記述します。EventBridge イベントパターンで JSON 形式を使用します。[2]. 今回はHealthのイベントでSESのイベントをすべて受信します。[3].

{
  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": {
    "service": ["SES"]
  }
}

フィルターの検証をする

フィルターの設定の確認ですが、Healthのイベントを強制的に発生させることはできないので"test-event-pattern"でチェックします。[4].

今回はsesの強制停止のイベントと設定したイベントが一致するか検証します。[5].

$ aws events test-event-pattern \
--event-pattern "{\"detail-type\":[\"AWS Health Event\"],\"source\":[\"aws.health\"],\"detail\":{\"service\":[\"SES\"]}}" \
--event "{\"version\": \"0\",\"id\": \"1111111111\",\"detail-type\": \"AWS Health Event\",\"source\": \"aws.health\",\"account\": \"123456789012\",\"time\": \"2023-06-03T06:27:57Z\",\"region\": \"ap-northeast-1\",\"resources\": [], \"detail\": {\"service\":\"SES\",\"eventTypeCode\": \"AWS_service_code\"}}"
{
    "Result": true
}

大丈夫そうですね。

集約設定、配信チャンネルは任意の設定をします。 完了したら、"通知設定を作成"をクリックします。

まとめ

AWS User Notificationsができて、AWS Healthのメッセージを簡単に指定のところに受信できるようになりました。とても便利なのでぜひご利用ください!

参考

[1]. 選択肢は以下二つがあり、今回は不正行為に関するものではないので、特定の Health イベントを選択

  • [Specific Health Abuse Events] (特定の不正行為に関する Health イベント) イベントタイプ名に Abuse という単語が含まれている AWS Health イベント用のルールを作成します。
  • [Specific Health events] (特定の Health イベント) 特定の AWS のサービス (Amazon EC2 など) のイベント用のルールを作成します。 AmazonAWS Health によるイベントのモニタリングEventBridge - AWS Health https://docs.aws.amazon.com/ja_jp/health/latest/ug/cloudwatch-events-health.html

[2]. 高度なフィルターはEventBrigeのイベントパターンでカスタマイズできます。 オプションで、[Advanced filter] (高度なフィルター) を使用して、EventBridge イベントパターンで JSON 形式を使用してイベントルールをさらにカスタマイズできます。 新着 – AWS の通知を一元的に設定する | Amazon Web Services ブログ. https://aws.amazon.com/jp/blogs/news/new-set-up-your-aws-notifications-in-one-place/

[3]. Healthイベント スキーマはドキュメントから確認しました。

AmazonAWS Health によるイベントのモニタリングEventBridge - AWS Health.
https://docs.aws.amazon.com/ja_jp/health/latest/ug/cloudwatch-events-health.html

[4]. 「test-event-pattern」とは指定されたイベントパターンが提供されたイベントと一致するかどうかをテストするコマンドです。利用方法は以下をご参照ください.

イベントパターンを設定するときに便利な「test-event-pattern」というコマンド | DevelopersIO.
https://dev.classmethod.jp/articles/eventbridge-test-event-pattern-command/

[5]. SESの強制停止のコマンドはAWS CLIを用いて確認しました。

参考:AWS Health APIから取得できるイベントタイプを確認してみた | DevelopersIO.

https://dev.classmethod.jp/articles/view-aws-health-api/