この記事は公開されてから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できるポリシーを作成します。
policy.json
{
"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に出力してみました。
これで会社やシステムなどのログ保管規定に対応できたり、ログの調査や分析が便利になったりしますね。
以上