View a markdown version of this page

CloudWatch Logs のログ形式 - Amazon Simple Storage Service

CloudWatch Logs のログ形式

Amazon S3 サーバーアクセスログが Amazon CloudWatch Logs に配信されると、各ログレコードは構造化された JSON オブジェクトになります。これは、Amazon S3 汎用バケットへの配信に使用されるスペース区切りのテキスト形式とは異なります。構造化された形式により、正規表現解析なしで CloudWatch Logs Insights でフィールドを直接クエリ可能になります。

注記

汎用バケット配信に使用されるスペース区切りのテキスト形式については、「Amazon S3 サーバーアクセスログの形式」を参照してください。

ログレコードフィールド

次の表は、CloudWatch Logs に配信される各サーバーアクセスログレコードのフィールドを示しています。

CloudWatch Logs のサーバーアクセスログフィールド
フィールド タイプ 説明
schema_version_id string ログレコードスキーマのバージョン識別子 (例: V_1_0)。このフィールドを使用して、将来のバージョンで新しいフィールドが追加されたときのスキーマ変更を検出します。
bucket_arn string ソースバケットの ARN。
bucket_name string リクエストが行われたバケットの名前。バケット ARN から派生します。
request_time string リクエストを受信した時刻 (UTC)。ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS'Z') としてフォーマットされます。S3 Tables 統合 (Iceberg) では、このフィールドは timestamptz として保存されます。
bucket_owner_id string ソースバケット所有者の正規ユーザー ID。
remote_ip string リクエスタの表面上の IP アドレス。使用できない場合は、デフォルトで null になります。
requester string リクエスタの正規ユーザー ID。認証されていないリクエストの場合は null です。IAM ユーザーとロールの場合、これは ARN です。
request_id string リクエストごとに Amazon S3 によって生成される一意の識別子。使用できない場合は、デフォルトで null になります。
operation string REST.GET.OBJECTREST.PUT.OBJECT などの、実行されたオペレーション。使用できない場合は、デフォルトで null になります。
key_name string リクエストのオブジェクトキー、またはオペレーションにオブジェクトが含まれていない場合は null
request_uri string HTTP リクエストメッセージの Request-URI 部分。使用できない場合は null
http_status int レスポンスの数値の HTTP ステータスコード (例: 200 または 403)。使用できない場合は、デフォルトで null になります。
error_code string NoSuchKey または AccessDenied などの Amazon S3 エラーコード。エラーが発生しなかった場合は null
bytes_sent_size long 送信されたレスポンスのバイト数 (HTTP プロトコルオーバーヘッドを除きます)。使用できない場合は、デフォルトで null になります。
object_size long オブジェクトの合計サイズ。使用できない場合は、デフォルトで null になります。
total_duration long リクエストが受信されてから送信されたレスポンスの最後のバイトまでのリクエストの合計時間 (ミリ秒単位)。使用できない場合は、デフォルトで null になります。
turn_around_duration long Amazon S3 がリクエストの処理にかかった時間 (ミリ秒単位)。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。使用できない場合は、デフォルトで null になります。
referer string HTTP Referer ヘッダーの値 (存在しない場合は null)。
user_agent string HTTP User-Agent ヘッダーの値。使用できない場合は、デフォルトで null になります。
version_id string リクエストのバージョン ID。オペレーションにバージョニングされたオブジェクトが含まれていない場合は null
host_id string Amazon S3 拡張リクエスト ID (x-amz-id-2)。使用できない場合は、デフォルトで null になります。
signature_version string リクエストの認証に使用される署名バージョン: SigV2 または SigV4。認証されていないリクエストの場合は、デフォルトで null になります。
cipher_suite string HTTP リクエストのためにネゴシエートされた TLS 暗号スイート。HTTP の場合は null
authentication_type string リクエスト認証のタイプ: AuthHeaderQueryString、または null
host_header string Amazon S3 への接続に使用するエンドポイント。使用できない場合は、デフォルトで null になります。
tls_version string クライアントによってネゴシエートされた TLS バージョン: TLSv1.1TLSv1.2TLSv1.3、または null
access_point_arn string リクエストに使用されるアクセスポイントの ARN。リクエストがアクセスポイントを使用しなかった場合は null
acl_required boolean リクエストに ACL が必要だったかどうか。適用できない場合、デフォルトで null になります。
source_region string リクエストの発信元の AWS リージョン。発信元のリージョンを特定できない場合 (PrivateLink 接続、Direct Connect 接続、Bring your own IP addresses (BYOIP)、非 AWS IP アドレスなど)、またはライフサイクルやチェックサムなど、お客様が設定したポリシーやアクションに基づいてトリガーされたオペレーションによってログが生成された場合は、null になります。

サンプルログレコード

以下は、CloudWatch Logs に表示されるサーバーアクセスログレコードの例です。

{ "schema_version_id": "V_1_0", "bucket_arn": "arn:aws:s3:::my-data-bucket", "bucket_name": "my-data-bucket", "request_time": "2026-04-29T14:32:16.000Z", "bucket_owner_id": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be", "remote_ip": "203.0.113.45", "requester": "arn:aws:iam::123456789012:role/DataAnalystRole", "request_id": "3E57427F33A59F07", "operation": "REST.GET.OBJECT", "key_name": "reports/2026/quarterly-summary.parquet", "request_uri": "GET /my-data-bucket/reports/2026/quarterly-summary.parquet HTTP/1.1", "http_status": 200, "error_code": null, "bytes_sent_size": 1048576, "object_size": 1048576, "total_duration": 45, "turn_around_duration": 12, "referer": null, "user_agent": "aws-sdk-java/2.20.0", "version_id": null, "host_id": "s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=", "signature_version": "SigV4", "cipher_suite": "TLS_AES_128_GCM_SHA256", "authentication_type": "AuthHeader", "host_header": "my-data-bucket.s3.us-east-1.amazonaws.com", "tls_version": "TLSv1.3", "access_point_arn": null, "acl_required": false, "source_region": "us-east-1" }

汎用バケットログ形式との違い

CloudWatch Logs ログ形式は、次の点で汎用バケットログ形式とは異なります。

  • 形式 – CloudWatch Logs ログは構造化された JSON オブジェクトです。汎用バケットログはスペース区切りのテキストです。

  • フィールド名 – CloudWatch Logs 形式では、記述的なアンダースコア区切りのフィールド名 (bytes_sent_sizetotal_durationkey_nameauthentication_type など) を使用します。汎用バケット形式は、名前付きの列がないスペース区切りテキストです。

  • 追加フィールド – CloudWatch Logs 形式には、汎用バケットテキスト形式では存在しない schema_version_idbucket_arn が含まれます。

  • 解析は不要 – CloudWatch Logs ログは構造化された JSON であるため、正規表現解析なしで CloudWatch Logs Insights で個々のフィールドを直接クエリできます。汎用バケットテキスト形式には、フィールドを抽出するための正規表現またはカスタムパーサーが必要です。