Auth0のログ出力をAmazon EventBridgeとSNSを使って通知させてみた

2020.02.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

おはようございます、コンサル部の島川です。

Auth0のログをEventBridgeとSNSを使ってメールで送るといったことをやってみました。

構成図

構成図です。とてもシンプル。

構築

  • 前提としてSNSのトピックは既にあるものとします。
  1. Auth0側でLog Streamの設定をする。
  2. EventBridgeでAuth0を承認する。
  3. EventBridgeでルールを作成する。
  4. 動作確認をする。メール受信できていたらOK。

1. Auth0側でLog Streamの設定をする。

  • Auth0の管理画面からLogs -> Streamを選択しStreamを作成します。

  • Amazon EventBridgeを選択します。

  • 適当な名前を入力します。

  • 12桁のAWSアカウントIDとRegionを指定してSAVEします。

以上でAuth0側の設定は完了です。Logs -> Searchに吐き出されたログが全てEventBridgeに送信されるようになりました。

2. EventBridgeでAuth0を承認する。

  • マネジメントコンソールにアクセスして、EventBridgeの管理画面を開きます。
  • パートナーイベントソース をクリックすると先ほど設定したAuth0からのリクエストが見えます。選択してイベントパスと関連付けます。

  • そのまま関連付けます。

3. EventBridgeでルールを作成する。

  • ルールを作成します。

  • 名前は適当に入力します。
  • イベントパターンは特に指定しません。デフォルトのまま次に進みます。

  • イベントパスは先ほど承認したものを選択します。
  • ターゲットはSNSで自分で作成したトピックを選択します。
    • 今回のトピックでは自分のメールアドレスのみ指定しています。

4. 動作確認をする。メール受信できていたらOK。

  • Auth0側でログインに失敗してみてログを出力させてみます。

  • ログ出ました。

  • メールで受信できているか確認します。

できました!

まとめ

今回はSNSをターゲットとして設定しましたが、EventBridgeはCloudWatch Eventsと同じようにLambdaやKinesisなんかにもデータを送ることができます。Auth0含め、様々なSaaSサービスで発生したログの有効活用が期待できます。

またルールに関しても全部取得するように設定していましたが、細かくルールを決めることでより柔軟性も持たせることができます。

参考

AWS Documentation > Amazon EventBridge > User Guide > Receiving Events from an SaaS Partner

Auth0 Docs : Log Streams