Auth0のイベントログをAmazon CloudWatchに出力してみた
こんにちは、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に出力してみました。
これで会社やシステムなどのログ保管規定に対応できたり、ログの調査や分析が便利になったりしますね。
以上