[Auth0] Logs to CloudWatch によるログ出力がうまく動作しない時の調査方法

2021.06.24

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

こんにちは、CX事業本部の若槻です。

以前のエントリでExtension「Logs to CloudWatch」によりAuth0のログをCloudWatchに出力する方法を紹介しました。

今回は、このLogs to CloudWatchによるログ出力がうまく動作しない時の調査方法についてです。

Logs to CloudWatch の動作ログ

Auth0のExtensionであるLogs to CloudWatchが行うログ出力のログは、Auth0自体のイベントログには記録されないため、管理ダッシュボードの[Monitoring]-[Logs]のメニューからは確認できません。

記録されるのはせいぜい下記のようなAPIとしてのExtensionがアプリケーションのクレデンシャルを利用する際のログくらいです。

ではログ出力が上手く動作しない場合などの調査方法はというと、管理コンソールとはまた別にメニューが用意されています。

管理コンソールで[Extension]-[Installed Extensions]を開き、一覧から[Logs to CloudWatch]をクリックして開きます。

初回アクセス時は同意を求められるので許可します。

するとExtensionの動作ログのメニューが開けます。ここではLogs to CloudWatchのチェックポイントごとのログが確認できます。

ログの詳細は該当のチェックポイントの虫眼鏡マークをクリックします。

ダイアログが開きエラー内容が確認できます。

記述によるとExtensionがIAMアクセスキーを使ってCloudWatch Logsにアクセスする際に権限の問題でアクセス拒否されているようです。

"message":"User: arn:aws:iam::XXXXXXXXXXXX:user/auth0-logs-put-user is not authorized to perform: logs:DescribeLogStreams on resource: arn:aws:logs:ap-northeast-1:XXXXXXXXXXXX:log-group:/auth0/dev-tenant:log-stream:","code":"AccessDeniedException",`

アクセスキーを発行しているIAMユーザーに付与した下記のポリシーを見直すと、確かにリソースの指定で/auth0/dev-tenant:log-stream:への権限が割あたっていないようでした。(この場合は初回の出力のみ成功してて2回目以降がこけるというデバッグのしづらい動作となります)

{
  "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:logs"
    }
  ]
}

よってResource部分の記述を下記のように修正しました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      //略
      "Resource": "arn:aws:logs:ap-northeast-1:*:log-group:/auth0/dev-tenant:log-stream:*"
    }
  ]
}

すると正常にAuth0のイベントログが出力されるようになりました。

おわりに

Auth0でLogs to CloudWatchによるログ出力がうまく動作しない時の調査方法についてでした。

少し分かりづらいですが、なぜログ出力が動作しないのか困っていたためメニューが見つけられてよかったです。

以上