SAM API のアクセスログが未設定

SAM API のリクエストを記録するアクセスログを設定します。

説明

SAM API のアクセスログは、リクエスト ID や応答ステータスなど、リクエストごとの情報を記録します。未設定の場合、API Gateway のリクエスト履歴を分析するための情報が不足するおそれがあります。

想定される影響

障害の原因調査や不審な呼び出しの追跡に必要な記録を確保できないことがあります。

対処方法

AWS::Serverless::Api には AccessLogSetting、AWS::Serverless::HttpApi には AccessLogSettings を指定してください。送信先、リクエスト ID を含む形式、ログ送信権限、保持期間を設定してください。

例

この抜粋では REST API のリクエスト ID とステータスを記録します。ロググループは別途作成し、API Gateway のログ送信権限を設定してください。

変更前

yaml
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true

変更後

yaml
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      TracingEnabled: true
      AccessLogSetting:
        DestinationArn: arn:aws:logs:ap-northeast-2:123456789012:log-group:api-access-log
        Format: '{"requestId":"$context.requestId","status":"$context.status"}'

参考資料