
Auth0のイベントログをAmazon CloudWatchに出力してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、CX事業本部の若槻です。
認証管理プラットフォームAuth0では、テナント管理者による操作、Management APIの利用、ユーザーによる認証などのイベントログが既定でAuth0上に記録されますが、このログの保持期間はプランによって最短1日から最大30日とかなり短いです。
そのため、このAuth0のイベントログを外部に退避させる方法として、Amazon CloudWatchに出力できるExtensionが公式提供されています。
今回は、上記Extensionを使用し、Auth0のイベントログをAmazon CloudWatch Logsに出力してみました。
やってみた
ログ出力先 Logs group および stream の作成
% LOG_GROUP_NAME=/auth0/dev-tenant % LOG_STREAM_NAME=logs
% aws logs create-log-group \
  --log-group-name ${LOG_GROUP_NAME}
% aws logs create-log-stream \
  --log-group-name ${LOG_GROUP_NAME} \
  --log-stream-name ${LOG_STREAM_NAME}
IAM ポリシー作成
先ほどのLog streamにイベントログをPutできるポリシーを作成します。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "logs:PutLogEvents",
          "logs:DescribeLogStreams"
      ],
      "Resource": "arn:aws:logs:ap-northeast-1:*:log-group:/auth0/dev-tenant:log-stream:*"
    }
  ]
}% POLICY_NAME=auth0-logs-put-policy
% aws iam create-policy \
  --policy-name ${POLICY_NAME} \
  --policy-document file://policy.json
IAM ユーザー作成、ポリシーのアタッチ、API キー発行
IAMユーザーを作成して先ほどのポリシーをアタッチします。
% USER_NAME=auth0-logs-put-user
% AWS_ACCOUNT_ID=<アカウントID>
% aws iam create-user --user-name ${USER_NAME}
% aws iam attach-user-policy \
  --user-name ${USER_NAME} \
  --policy-arn "arn:aws:iam::${AWS_ACCOUNT_ID}:policy/${POLICY_NAME}"
作成したIAMユーザーのAPIキーを発行し、戻り値からアクセスキーIDとシークレットアクセスキーを控えます。
% aws iam create-access-key --user-name ${USER_NAME}
Extension のインストール
Auth0管理ダッシュボードにログインしたら、サイドバーメニューより[Extensions]を開き、[All Extentions]タブでCloudWatchで検索すると「Logs to CloudWatch」というExtensionが出てくるので選択します。

Extensionの設定画面が開くので、必須情報として先ほど作成したAWSリソースの情報を指定し、[Install]をクリックします。

これでインストールは完了です。

動作確認
Auth0管理ダッシュボードからユーザーを作成する操作を行ってみます。
数分すると指定したLog groupのstreamにユーザー作成操作のイベントログが出力されていることが確認できました。

おわりに
Auth0のイベントログをAmazon CloudWatch Logsに出力してみました。
これで会社やシステムなどのログ保管規定に対応できたり、ログの調査や分析が便利になったりしますね。
以上






