説明
API Gateway のアクセスログは、リクエスト ID や応答ステータスなど指定した項目を記録し、障害やセキュリティイベントの調査を支援します。必要なステージで収集していないと、個々のリクエストを追跡する情報が不足する場合があります。
想定される影響
- 不審なリクエストやエラーの発生経路を調査しにくくなる場合があります。
- メトリクスだけでは原因が分からない障害の分析が遅れるおそれがあります。
対処方法
Stage の accessLogSettings に、実際の CloudWatch ロググループ ARN とリクエスト ID を含む形式を指定してください。書き込み権限と保持期間を設定し、リクエストを送って収集を確認してください。機密データが記録されないよう、項目も確認してください。
例
API Gateway v2 のステージでアクセスログを比較する抜粋です。exampleApi、exampleLogGroup、ステージ名、デプロイ設定などは別途準備してください。
変更前
yaml
resources:
example:
type: aws:apigatewayv2:Stage
properties:
apiId: ${exampleApi.id}
変更後
yaml
resources:
example:
type: aws:apigatewayv2:Stage
properties:
apiId: ${exampleApi.id}
accessLogSettings:
destinationArn: ${exampleLogGroup.arn}
format: '{"requestId":"$context.requestId","status":"$context.status"}'
変更後はリクエスト ID と応答ステータスを記録する JSON 形式を指定します。必要な運用項目を追加する場合も、認証情報やシークレットを不必要に記録しないでください。