ヤマムギ

growing hard days.

*

API GatewayのアクセスログをCloudWatchに記録する

   


Amazon API GatewayのアクセスログをCloudWatchに記録できるようになっていたので設定しました。

まず、AWSアカウントのAmazon API Gateway全体にCloudWatchログへの書き込みを有効にする必要があるので、
CloudWatch Logに書き込み権限を持つIAMロールを作成して、
Amazon API Gatewayに設定します。
そして、設定対象のAPI Gatewayでロググループを設定して有効にします。

AWS IAMロールの作成

IAMロールを作成して、サービスで「API Gateway」を選択して、ユースケースでは、「Allows API Gateway to push logs to
CloudWatch Logs.」を選択します。
そのままです。

すでにAmazonAPIGatewayPushToCloudWatchLogs というAWS管理ポリシーがアタッチされています。
ポリシーを見てみます。

CloudWatch Logsに対しての書き込み権限が許可されています。

ロール名を設定してIAMロールを作成します。

作成SいたIAMロールのarnを控えておきます。

アカウントのAmazon API Gateway全体にCloudWatchログへの書き込みの有効設定

API Gatewayの[設定]で、「CloudWatchログのロールARN」にIAMロールのarnを設定します。

arnは
arn:aws:iam::account_id:role/role_name
です。

※account_id と role_nameは書き換えてください。

対象のAPI Gatewayでアクセスログを有効にする

対象のAPI Gatewayのステージを選択して[ログ]タブで「アクセスログの有効化」にチェックを入れます。

CloudWatchグループには、CloudWatchのロググループをarnで指定します。
新規に作成する場合は指定したロググループ名で自動作成されます。

arnは
arn:aws:logs:region:account_id:log-group:group_name
です。

※region と account_id と group_nameは書き換えてください。

ログの形式は変数を書いて指定しますが、「入力の例」でフォーマットのボタンを押せば自動入力してくれます。
今回は[JSON]にしました。

アクセスしてみる

POSTMANでAPIにアクセスしてみます。

ログが記録されています。

失敗したこと

CloudWatchグループのarnを最初、
arn:aws:logs:region:account_id:group_name
で設定しようとしたところ、

「Access log destination must only contain characters a-z, A-Z, 0-9, ‘_’, ‘-‘, ‘/’, ‘.’: ‘group_name’」

のメッセージが出て保存出来ませんでした。

そのあと、
arn:aws:logs:region:account_id:log-group:group_name
に直して、保存したのですが、上のメッセージを消さないままで[保存]ボタンを押してたので、
保存出来ているのに、保存出来ていないように思ってしまいました。

メッセージは確認した後、次のアクションまでに消しておかなければ。
ややこしや。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , ,

ad

ad

  関連記事

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

「関西AWSスタートアップ勉強会」に行ってきました

第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …

JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを作る側からの物申す〜に参加、運営、登壇しました

先日、JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを …

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …

slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)

slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら …

[事前準備] JAWS-UG 関西IoT専門支部「マクニカkibo + AWS IoTハンズオン」

来る12/19(土)の JAWS-UG 関西IoT専門支部第一回勉強会「マクニカ …

Amazon LinuxにRedmine をインストールする(手順整理版)

Amazon LinuxにRedmineをインストールしました手順を記載します。 …

再会の日 ~re:Union 2018 Osaka by JAWS-UG~

8/5は大阪でre:Unionでした。 「再会」と名うったこのイベントは、6月に …

JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会

「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …

WordPressをAmazon CloudFrontで配信してついでにACM(AWS Certificate Manager)を使って常時SSL化する

当サイトの500と502の発生状況がドイヒーであるとの苦情をいただきまして、Am …