Amazon S3 サーバーアクセスログの形式
サーバーアクセスのログには、Amazon S3 バケットに対するリクエストの詳細が記録されます。サーバーアクセスログは次の目的で使用できます。
-
セキュリティ監査とアクセス監査の実施
-
顧客ベースについて学ぶ
-
Amazon S3 の請求書を理解する
このセクションでは、Amazon S3 サーバーアクセスログファイルの形式およびその他の詳細について説明します。
サーバーアクセスのログファイルは、一連のログレコードを改行で区切って構成します。各ログレコードは 1 個のリクエストを表し、各フィールドをスペースで区切って構成します。
次に示すのは、5 個のログレコードで構成されるログの例です。
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes
注記
任意のフィールドを -
に設定して、データが不明または使用不可であること、またはフィールドがこのリクエストに適用されなかったことを示すことができます。
ログレコードフィールド
次のリストは、ログレコードのフィールドについて説明しています。
- Bucket Owner
-
ソースバケット所有者の正規ユーザー ID。正規ユーザー ID は、別の形式の AWS アカウント ID です。正規ユーザー ID の詳細については、AWS 全般のリファレンス の「AWS アカウント IDID」を参照してください。アカウントの正規ユーザー ID を検索する方法については、「AWS アカウントの正規ユーザー ID を検索する」を参照してください。
エントリ例
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
- バケット
-
リクエストの処理ターゲットのバケットの名前。システムで受け取ったリクエストの形式に誤りがあり、バケットを特定できない場合、そのリクエストはサーバーアクセスログに表示されません。
エントリ例
- 時間
-
リクエストが受信された時間。これらの日付と時刻は協定世界時 (UTC) です。
strftime()
terminology を使用した形式は次のようになります:[%d/%b/%Y:%H:%M:%S %z]
エントリ例
[06/Feb/2019:00:00:38 +0000]
- リモート IP
-
リクエスタの表面上の IP アドレス。中間プロキシやファイアウォールにより、リクエストを作成したマシンの実際の IP アドレスが不明確になる場合があります。
エントリ例
192.0.2.3
- リクエスタ
-
リクエスタの正規ユーザー ID。認証されていないリクエストの場合は
-
です。リクエスタが IAM ユーザーであった場合、このフィールドは、リクエスタの IAM ユーザー名と IAM ユーザーが属する AWS アカウントを返します。この識別子は、アクセスコントロールに使用されるものと同じです。エントリ例
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
リクエスタが引き受けたロールを使用している場合、このフィールドは、引き受けた IAM ロールを返します。
エントリ例
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- リクエスト ID
-
各リクエストを一意に識別するために Amazon S3 で生成される文字列。
エントリ例
3E57427F33A59F07
- オペレーション
-
ここに表示されているオペレーションは、
SOAP.
、operation
REST.
、HTTP_method
.resource_type
WEBSITE.
またはHTTP_method
.resource_type
BATCH.DELETE.OBJECT
、または S3 ライフサイクルとログ記録 のS3.action.resource_type
として宣言されます。エントリ例
REST.PUT.OBJECT
- キー
-
リクエストのキー (オブジェクト名) 部分。
エントリ例
/photos/2019/08/puppy.jpg
- Request-URI
-
HTTP リクエストメッセージの
Request-URI
の部分。エントリ例
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
- HTTP ステータス
-
レスポンスの HTTP ステータスの数値。
エントリ例
200
- エラーコード
-
Amazon S3 エラーレスポンス、またはエラーが発生しなかった場合は「
-
」。エントリ例
NoSuchBucket
- 送信バイト数
-
送信されたレスポンスのバイト数 (HTTP プロトコルオーバーヘッドを除きます)。ゼロの場合は「
-
」。エントリ例
2662992
- オブジェクトのサイズ
-
該当するオブジェクトの合計サイズ。
エントリ例
3462992
- 合計時間
-
サーバーから見た、リクエストの転送中の時間数 (ミリ秒単位)。これは、リクエストが受信されてから、レスポンスの最終バイトが送信されるまでの時間を計測した値です。クライアント側での計測値は、ネットワーク遅延により長くなる場合があります。
エントリ例
70
- Turn−Around Time
-
Amazon S3 でリクエストの処理に要した時間数 (ミリ秒単位)。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。
エントリ例
10
- Referer
-
HTTP
Referer
ヘッダーの値 (存在する場合)。一般に、HTTP ユーザーエージェント (ブラウザなど) は、このヘッダーをリクエスト作成時のリンクページや埋め込みページの URL に設定します。エントリ例
"http://www.example.com/webservices"
- User-Agent
-
HTTP
User-Agent
ヘッダーの値エントリ例
"curl/7.15.1"
- バージョン ID
-
リクエストのバージョン ID、または オペレーションが
versionId
パラメータを取らない場合は「-
」。エントリ例
3HL4kqtJvjVBH40Nrjfkd
- ホスト ID
-
x-amz-id-2
または Amazon S3 拡張リクエスト ID。エントリ例
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
- 署名バージョン
-
署名バージョン
SigV2
かSigV4
(リクエストの認証に使用)、または-
(認証されていないリクエストの場合)。エントリ例
SigV2
- 暗号スイート
-
HTTPS リクエストまたは HTTP の
-
に対してネゴシエートされた Secure Sockets Layer (SSL) 暗号。エントリ例
ECDHE-RSA-AES128-GCM-SHA256
- 認証タイプ
-
使用されるリクエスト認証のタイプ。認証ヘッダーは
AuthHeader
、クエリ文字列 (署名付き URL) はQueryString
、認証されていないリクエストには「-
」。エントリ例
AuthHeader
- ホストヘッダー
-
Amazon S3 への接続に使用するエンドポイント。
エントリ例
s3.us-west-2.amazonaws.com
一部の古いリージョンでは、レガシーエンドポイントがサポートされています。これらのエンドポイントは、サーバーアクセスログまたは AWS CloudTrail ログに表示される場合があります。詳細については、「レガシーエンドポイント」を参照してください。Amazon S3 リージョンとエンドポイントの完全なリストについては、Amazon Web Services 全般のリファレンス の「Amazon S3 エンドポイントとクォータ」を参照してください。
- TLS のバージョン
-
クライアントによってネゴシエートされた Transport Layer Security (TLS) バージョン。値は
TLSv1.1
、TLSv1.2
、TLSv1.3
、-
のいずれかです (TLS を使用しなかった場合)。エントリ例
TLSv1.2
- アクセスポイント ARN
-
リクエストのアクセスポイントの Amazon リソースネーム (ARN) です。アクセスポイントの ARN の形式が不正、または使用されていない場合、このフィールドには「
-
」が含まれます。アクセスポイントの詳細については、「アクセスポイントの使用」を参照してください。ARN の詳細については、「AWS リファレンスガイド」の「Amazon リソースネーム (ARN)」を参照してください。エントリ例
arn:aws:s3:
us-east-1
:123456789012
:accesspoint/example-AP
- aclRequired
-
リクエストの承認のためにアクセスコントロールリスト (ACL) が必要かどうかを示す文字列。リクエストに承認用の ACL が必要な場合、文字列は「
Yes
」です。ACL が必要なかった場合、文字列は「-
」です。ACL の詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。aclRequired
フィールドを使用して ACL を無効にする方法の詳細については、オブジェクトの所有権の制御とバケットの ACL の無効化。 を参照してください。エントリ例
Yes
コピーオペレーションの追加ログ記録
コピーオペレーションには GET
と PUT
が含まれます。このため、コピーオペレーションの実行時には 2 つのログレコードが記録されます。前述のセクションでは、コピーオペレーションの PUT
部分に関連するフィールドを説明しています。次のリストでは、コピーオペレーションの GET
部分に関連するフィールドを説明します。
- バケット所有者
-
コピーされたオブジェクトを格納するバケットの正規ユーザー ID。正規ユーザー ID は、別の形式の AWS アカウント ID です。正規ユーザー ID の詳細については、AWS 全般のリファレンス の「AWS アカウント IDID」を参照してください。アカウントの正規ユーザー ID を検索する方法については、「AWS アカウントの正規ユーザー ID を検索する」を参照してください。
エントリ例
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
- バケット
-
コピー対象オブジェクトのオブジェクトを格納するバケットの名前。
エントリ例
- 時間
-
リクエストが受信された時間。これらの日付と時刻は協定世界時 (UTC) です。
strftime()
terminology を使用した形式は次のようになります:[%d/%B/%Y:%H:%M:%S %z]
エントリ例
[06/Feb/2019:00:00:38 +0000]
- リモート IP
-
リクエスタの表面上の IP アドレス。中間プロキシやファイアウォールにより、リクエストを作成したマシンの実際の IP アドレスが不明確になる場合があります。
エントリ例
192.0.2.3
- リクエスタ
-
リクエスタの正規ユーザー ID。認証されていないリクエストの場合は
-
です。リクエスタが IAM ユーザーであった場合、このフィールドは、リクエスタの IAM ユーザー名と IAM ユーザーが属する AWS アカウントのルートユーザーを返します。この識別子は、アクセスコントロールに使用されるものと同じです。エントリ例
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
リクエスタが引き受けたロールを使用している場合、このフィールドは、引き受けた IAM ロールを返します。
エントリ例
arn:aws:sts::123456789012:assumed-role/roleName/test-role
- リクエスト ID
-
各リクエストを一意に識別するために Amazon S3 で生成される文字列。
エントリ例
3E57427F33A59F07
- 操作
-
ここに表示されているオペレーションは、
SOAP.
、operation
REST.
、HTTP_method
.resource_type
WEBSITE.
またはHTTP_method
.resource_type
BATCH.DELETE.OBJECT
と表示されます。エントリ例
REST.COPY.OBJECT_GET
- キー
-
コピー対象オブジェクトのキー (オブジェクト名) 部分。オペレーションがキーパラメータを取らない場合は「
-
」。エントリ例
/photos/2019/08/puppy.jpg
- Request-URI
-
HTTP リクエストメッセージの
Request-URI
の部分。エントリ例
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar"
- HTTP ステータス
-
コピーオペレーションの
GET
部分の HTTP ステータスの数値。エントリ例
200
- エラーコード
-
コピーオペレーションの
GET
部分の Amazon S3 エラーレスポンス、またはエラーがない場合は「-
」。エントリ例
NoSuchBucket
- 送信バイト数
-
送信されたレスポンスのバイト数 (HTTP プロトコルオーバーヘッドを除く)。ゼロの場合は「
-
」。エントリ例
2662992
- オブジェクトのサイズ
-
該当するオブジェクトの合計サイズ。
エントリ例
3462992
- 合計時間
-
サーバーから見た、リクエストの転送中の時間数 (ミリ秒単位)。これは、リクエストが受信されてから、レスポンスの最終バイトが送信されるまでの時間を計測した値です。クライアント側での計測値は、ネットワーク遅延により長くなる場合があります。
エントリ例
70
- Turn−Around Time
-
Amazon S3 でリクエストの処理に要した時間数 (ミリ秒単位)。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。
エントリ例
10
- Referer
-
HTTP
Referer
ヘッダーの値 (存在する場合)。一般に、HTTP ユーザーエージェント (ブラウザなど) は、このヘッダーをリクエスト作成時のリンクページや埋め込みページの URL に設定します。エントリ例
"http://www.example.com/webservices"
- User-Agent
-
HTTP
User-Agent
ヘッダーの値エントリ例
"curl/7.15.1"
- バージョン ID
-
コピー対象オブジェクトのバージョン ID、または
x-amz-copy-source
ヘッダーでコピー元の一部としてversionId
パラメータを指定しなかった場合は「-
」。エントリ例
3HL4kqtJvjVBH40Nrjfkd
- ホスト ID
-
x-amz-id-2
または Amazon S3 拡張リクエスト ID。エントリ例
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
- 署名バージョン
-
Signature Version、
SigV2
かSigV4
(リクエストの認証に使用)、または-
(認証されていないリクエストの場合)。エントリ例
SigV4
- 暗号スイート
-
HTTPS リクエストまたは HTTP の
-
に対してネゴシエートされた Secure Sockets Layer (SSL) 暗号。エントリ例
ECDHE-RSA-AES128-GCM-SHA256
- 認証タイプ
-
使用されるリクエスト認証のタイプ。認証ヘッダーは
AuthHeader
、クエリ文字列 (署名付き URL) はQueryString
、認証されていないリクエストには「-
」。エントリ例
AuthHeader
- ホストヘッダー
-
Amazon S3 への接続に使用するエンドポイント。
エントリ例
s3.us-west-2.amazonaws.com
一部の古いリージョンでは、レガシーエンドポイントがサポートされています。これらのエンドポイントは、サーバーアクセスログまたは AWS CloudTrail ログに表示される場合があります。詳細については、「レガシーエンドポイント」を参照してください。Amazon S3 リージョンとエンドポイントの完全なリストについては、Amazon Web Services 全般のリファレンス の「Amazon S3 エンドポイントとクォータ」を参照してください。
- TLS のバージョン
-
クライアントによってネゴシエートされた Transport Layer Security (TLS) バージョン。値は
TLSv1.1
、TLSv1.2
、TLSv1.3
、-
のいずれかです (TLS を使用しなかった場合)。エントリ例
TLSv1.2
- アクセスポイント ARN
-
リクエストのアクセスポイントの Amazon リソースネーム (ARN) です。アクセスポイントの ARN の形式が不正、または使用されていない場合、このフィールドには「
-
」が含まれます。アクセスポイントの詳細については、「アクセスポイントの使用」を参照してください。ARN の詳細については、「AWS リファレンスガイド」の「Amazon リソースネーム (ARN)」を参照してください。エントリ例
arn:aws:s3:
us-east-1
:123456789012
:accesspoint/example-AP
- aclRequired
-
リクエストの承認のためにアクセスコントロールリスト (ACL) が必要かどうかを示す文字列。リクエストに承認用の ACL が必要な場合、文字列は「
Yes
」です。ACL が必要なかった場合、文字列は「-
」です。ACL の詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。aclRequired
フィールドを使用して ACL を無効にする方法の詳細については、オブジェクトの所有権の制御とバケットの ACL の無効化。 を参照してください。エントリ例
Yes
カスタムアクセスログ情報
リクエストのアクセスログレコードに保存するカスタム情報を含めることができます。これを行うには、リクエストの URL にカスタムクエリ文字列パラメータを追加します。Amazon S3 では、「x-
」で始まるクエリ文字列パラメータは無視されますが、これらのパラメータはログレコードの Request-URI
フィールドの一部として、リクエストのアクセスログレコードに追加されます。
例えば、GET
の "s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"
リクエストは、"s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg"
のリクエストと同じように動作します。ただし 、"x-user=johndoe"
文字列は関連付けられたログレコードの Request-URI
フィールドに含まれている点が異なります。この機能は REST インターフェイスでのみ利用できます。
拡張可能なサーバーアクセスログの形式のプログラミングに関する考慮事項
場合によっては、新しいフィールドを各行末に追加することで、アクセスログレコードの形式を拡張することがあります。したがって、サーバーアクセスログを解析するコードは、理解できない可能性のある後続フィールドを処理するよう作成する必要があります。