Amazon S3 서버 접근 로그 형식

Amazon S3 서버 접근 로그 형식

서버 접근 로깅은 Amazon S3 버킷에 이루어진 요청에 대한 상세 기록을 제공해요. 서버 접근 로그는 다음과 같은 목적으로 사용할 수 있어요.

  • 보안 및 접근 감사 수행
  • 고객 기반 파악
  • Amazon S3 요금 이해

이 섹션에서는 Amazon S3 서버 접근 로그 파일의 형식과 기타 세부 정보를 설명해요.

참고: 이 페이지는 일반 용도 Amazon S3 버킷으로 전달되는 로그에 사용되는 공백으로 구분된 텍스트 형식을 다뤄요. Amazon CloudWatch Logs에서 사용되는 구조화된 JSON 형식은 "CloudWatch Logs의 로그 형식"을 참고하세요.

서버 접근 로그 파일은 줄바꿈으로 구분된 일련의 로그 레코드로 구성돼요. 각 로그 레코드는 하나의 요청을 나타내며 공백으로 구분된 필드로 구성돼요.

다음은 다섯 개의 로그 레코드로 구성된 로그 예시예요.

참고: 어떤 필드든 -로 설정되어 데이터가 알 수 없거나 사용할 수 없음을 나타내거나, 해당 필드가 이 요청에 적용되지 않았음을 나타낼 수 있어요.

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 us-east-1
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 - - us-east-1
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 us-east-1
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 - - us-east-1
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 us-east-1

다음은 Compute checksum(체크섬 계산) 작업에 대한 로그 레코드 예시예요.

7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be e5042925-b524-4b3b-a869-f3881e78ff3a S3.COMPUTE.OBJECT.CHECKSUM example-object - - - - 1048576 - - - - - bPf7qjG4XwYdPgDQTl72GW/uotRhdPz2UryEyAFLDSRmKrakUkJCYLtAw6fdANcrsUYc1M/kIulXM1u5vZQT5g== - - - - - - - -

Topics:

  • 로그 레코드 필드
  • 복사 작업에 대한 추가 로깅
  • 사용자 지정 접근 로그 정보
  • 확장 가능한 서버 접근 로그 형식에 대한 프로그래밍 고려 사항

출처: 문서

본문

로그 레코드 필드

다음 목록은 로그 레코드 필드를 설명해요.

Bucket Owner(버킷 소유자) — 소스 버킷의 소유자의 정규 사용자 ID예요. 정규 사용자 ID는 AWS 계정 ID의 또 다른 형태예요. 정규 사용자 ID에 대한 자세한 내용은 AWS General Reference의 AWS 계정 식별자를 참고하세요. 계정의 정규 사용자 ID를 찾는 방법은 AWS 계정의 정규 사용자 ID 찾기를 참고하세요.

예시 항목: 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

Bucket(버킷) — 요청이 처리된 버킷의 이름이에요. 시스템이 잘못된 요청을 받아 버킷을 확인할 수 없으면 해당 요청은 어떤 서버 접근 로그에도 나타나지 않아요.

예시 항목: amzn-s3-demo-bucket1

Time(시간) — 요청이 수신된 시간으로, 이러한 날짜와 시간은 협정 세계시(UTC)예요. strftime() 용어를 사용한 형식은 다음과 같아요: [%d/%b/%Y:%H:%M:%S %z]

예시 항목: [06/Feb/2019:00:00:38 +0000]

Remote IP(원격 IP) — 요청자의 표시 IP 주소예요. 중간 프록시와 방화벽이 요청을 하는 머신의 실제 IP 주소를 가릴 수 있어요.

예시 항목: 192.0.2.3

Requester(요청자) — 요청자의 정규 사용자 ID이거나, 인증되지 않은 요청의 경우 -예요. 요청자가 IAM 사용자라면 이 필드는 요청자의 IAM 사용자 이름과 그 IAM 사용자가 속한 AWS 계정을 함께 반환해요. 이 식별자는 접근 제어 목적으로 사용되는 것과 동일한 식별자예요.

예시 항목: 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

요청자가 수임 역할(assumed role)을 사용 중이라면 이 필드는 수임된 IAM 역할을 반환해요.

예시 항목: arn:aws:sts::123456789012:assumed-role/roleName/test-role

Request ID(요청 ID) — 각 요청을 고유하게 식별하기 위해 Amazon S3가 생성한 문자열이에요. Compute checksum 작업 요청의 경우 Request ID 필드는 연결된 작업 ID를 표시해요. 자세한 내용은 Compute checksums를 참고하세요.

예시 항목: 3E57427F33A59F07

Operation(작업) — 여기에 나열된 작업은 SOAP.operation, REST.HTTP_method.resource_type, WEBSITE.HTTP_method.resource_type 또는 BATCH.DELETE.OBJECT로 선언되며, S3 Lifecycle 및 로깅의 경우 S3.action.resource_type으로 선언돼요. Compute checksum 작업 요청의 경우 작업은 S3.COMPUTE.OBJECT.CHECKSUM으로 나열돼요.

예시 항목: REST.PUT.OBJECT / S3.COMPUTE.OBJECT.CHECKSUM

Key(키) — 요청의 키(객체 이름) 부분이에요.

예시 항목: /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 status(HTTP 상태) — 응답의 숫자 HTTP 상태 코드예요.

예시 항목: 200

Error Code(오류 코드) — Amazon S3 오류 응답이거나, 오류가 발생하지 않은 경우 -예요.

예시 항목: NoSuchBucket

Bytes Sent(전송 바이트) — HTTP 프로토콜 오버헤드를 제외한 응답으로 전송된 바이트 수이거나, 0이면 -예요.

예시 항목: 2662992

Object Size(객체 크기) — 해당 객체의 총 크기예요.

예시 항목: 3462992

Total Time(총 시간) — 서버 관점에서 요청이 전송 중이던 밀리초 수예요. 이 값은 요청이 수신된 시점부터 응답의 마지막 바이트가 전송된 시점까지 측정돼요. 클라이언트 관점에서 측정한 값은 네트워크 지연 때문에 더 길 수 있어요.

예시 항목: 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"

Version Id(버전 ID) — 요청의 버전 ID이거나, 작업이 versionId 매개변수를 사용하지 않는 경우 -예요.

예시 항목: 3HL4kqtJvjVBH40Nrjfkd

Host Id(호스트 ID) — x-amz-id-2 또는 Amazon S3 확장 요청 ID예요.

예시 항목: s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=

Signature Version(서명 버전) — 요청을 인증하는 데 사용된 서명 버전인 SigV2 또는 SigV4이거나, 인증되지 않은 요청의 경우 -예요.

예시 항목: SigV2

Cipher Suite(암호화 스위트) — HTTPS 요청에 대해 협상된 TLS(전송 계층 보안) 암호화이거나, HTTP의 경우 -예요.

예시 항목: ECDHE-RSA-AES128-GCM-SHA256

Authentication Type(인증 유형) — 사용된 요청 인증 유형으로, 인증 헤더의 경우 AuthHeader, 쿼리 문자열(pre-signed URL)의 경우 QueryString, 인증되지 않은 요청의 경우 -이에요.

예시 항목: AuthHeader

Host Header(호스트 헤더) — Amazon S3에 연결하는 데 사용된 엔드포인트예요.

예시 항목: s3.us-west-2.amazonaws.com

일부 초기 리전은 레거시 엔드포인트를 지원해요. 서버 접근 로그나 AWS CloudTrail 로그에서 이러한 엔드포인트가 보일 수 있어요. 자세한 내용은 Legacy endpoints를 참고하세요. Amazon S3 리전 및 엔드포인트의 전체 목록은 Amazon Web Services General Reference의 Amazon S3 endpoints and quotas를 참고하세요.

TLS version(TLS 버전) — 클라이언트가 협상한 TLS 버전이에요. 값은 TLSv1.1, TLSv1.2, TLSv1.3 중 하나이거나, TLS를 사용하지 않았다면 -이에요.

예시 항목: TLSv1.2

Access Point ARN(액세스 포인트 ARN) — 요청의 액세스 포인트의 Amazon 리소스 이름(ARN)이에요. 액세스 포인트 ARN이 잘못되었거나 사용되지 않으면 필드에 -가 포함돼요. 액세스 포인트에 대한 자세한 내용은 Using Amazon S3 access points for general purpose buckets를 참고하세요. ARN에 대한 자세한 내용은 AWS Reference Guide의 Amazon Resource Name (ARN)을 참고하세요.

예시 항목: arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP

aclRequired — 요청이 인증에 액세스 제어 목록(ACL)을 요구했는지 나타내는 문자열이에요. 요청이 인증에 ACL을 요구했다면 문자열은 Yes예요. ACL이 필요 없었다면 문자열은 -이에요. ACL에 대한 자세한 내용은 Access control list (ACL) overview를 참고하세요. aclRequired 필드를 사용해 ACL을 비활성화하는 방법에 대한 자세한 내용은 Controlling ownership of objects and disabling ACLs for your bucket을 참고하세요.

예시 항목: Yes

Source region(소스 리전) — 요청이 시작된 AWS 리전이에요. 이 필드는 시작 리전을 확인할 수 없을 때(예: PrivateLink 연결, Direct Connect 연결, BYOIP(Bring your own IP addresses) 또는 AWS가 아닌 IP 주소) 또는 로그가 수명 주기 및 체크섬 같은 고객 설정 정책이나 작업으로 트리거된 운영에 의해 생성될 때 대시(-)를 표시해요.

예시 항목: us-east-1

복사 작업에 대한 추가 로깅

복사 작업은 GET과 PUT을 수반해요. 그 때문에 복사 작업을 수행할 때 우리는 두 레코드를 기록해요. 이전 섹션에서는 작업의 PUT 부분과 관련된 필드를 설명했어요. 다음 목록은 복사 작업의 GET 부분과 관련된 레코드의 필드를 설명해요.

Bucket Owner(버킷 소유자) — 복사 대상 객체를 저장하는 버킷의 정규 사용자 ID예요. 정규 사용자 ID는 AWS 계정 ID의 또 다른 형태예요. 정규 사용자 ID에 대한 자세한 내용은 AWS General Reference의 AWS 계정 식별자를 참고하세요. 계정의 정규 사용자 ID를 찾는 방법은 AWS 계정의 정규 사용자 ID 찾기를 참고하세요.

예시 항목: 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

Bucket(버킷) — 복사 대상 객체를 저장하는 버킷의 이름이에요.

예시 항목: amzn-s3-demo-bucket1

Time(시간) — 요청이 수신된 시간으로, 이러한 날짜와 시간은 협정 세계시(UTC)예요. strftime() 용어를 사용한 형식은 다음과 같아요: [%d/%B/%Y:%H:%M:%S %z]

예시 항목: [06/Feb/2019:00:00:38 +0000]

Remote IP(원격 IP) — 요청자의 표시 IP 주소예요. 중간 프록시와 방화벽이 요청을 하는 머신의 실제 IP 주소를 가릴 수 있어요.

예시 항목: 192.0.2.3

Requester(요청자) — 요청자의 정규 사용자 ID이거나, 인증되지 않은 요청의 경우 -예요. 요청자가 IAM 사용자라면 이 필드는 요청자의 IAM 사용자 이름과 그 IAM 사용자가 속한 AWS 계정 루트 사용자를 함께 반환해요. 이 식별자는 접근 제어 목적으로 사용되는 것과 동일한 식별자예요.

예시 항목: 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

요청자가 수임 역할(assumed role)을 사용 중이라면 이 필드는 수임된 IAM 역할을 반환해요.

예시 항목: arn:aws:sts::123456789012:assumed-role/roleName/test-role

Request ID(요청 ID) — 각 요청을 고유하게 식별하기 위해 Amazon S3가 생성한 문자열이에요. Compute checksum 작업 요청의 경우 Request ID 필드는 연결된 작업 ID를 표시해요. 자세한 내용은 Compute checksums를 참고하세요.

예시 항목: 3E57427F33A59F07

Operation(작업) — 여기에 나열된 작업은 SOAP.operation, REST.HTTP_method.resource_type, WEBSITE.HTTP_method.resource_type 또는 BATCH.DELETE.OBJECT로 선언돼요.

예시 항목: REST.COPY.OBJECT_GET

Key(키) — 복사 대상 객체의 키(객체 이름)이거나, 작업이 키 매개변수를 사용하지 않는 경우 -이에요.

예시 항목: /photos/2019/08/puppy.jpg

Request-URI — HTTP 요청 메시지의 Request-URI 부분이에요. 이 필드에는 사용자 입력의 이스케이프되지 않은 따옴표가 포함될 수 있어요.

예시 항목: "GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar"

HTTP status(HTTP 상태) — 복사 작업의 GET 부분의 숫자 HTTP 상태 코드예요.

예시 항목: 200

Error Code(오류 코드) — 복사 작업의 GET 부분의 Amazon S3 오류 응답이거나, 오류가 발생하지 않은 경우 -이에요.

예시 항목: NoSuchBucket

Bytes Sent(전송 바이트) — HTTP 프로토콜 오버헤드를 제외한 응답으로 전송된 바이트 수이거나, 0이면 -이에요.

예시 항목: 2662992

Object Size(객체 크기) — 해당 객체의 총 크기예요.

예시 항목: 3462992

Total Time(총 시간) — 서버 관점에서 요청이 전송 중이던 밀리초 수예요. 이 값은 요청이 수신된 시점부터 응답의 마지막 바이트가 전송된 시점까지 측정돼요. 클라이언트 관점에서 측정한 값은 네트워크 지연 때문에 더 길 수 있어요.

예시 항목: 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"

Version Id(버전 ID) — 복사 대상 객체의 버전 ID이거나, x-amz-copy-source 헤더가 복사 소스의 일부로 versionId 매개변수를 지정하지 않은 경우 -이에요.

예시 항목: 3HL4kqtJvjVBH40Nrjfkd

Host Id(호스트 ID) — x-amz-id-2 또는 Amazon S3 확장 요청 ID예요.

예시 항목: s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=

Signature Version(서명 버전) — 요청을 인증하는 데 사용된 서명 버전인 SigV2 또는 SigV4이거나, 인증되지 않은 요청의 경우 -이에요.

예시 항목: SigV4

Cipher Suite(암호화 스위트) — HTTPS 요청에 대해 협상된 TLS 암호화이거나, HTTP의 경우 -이에요.

예시 항목: ECDHE-RSA-AES128-GCM-SHA256

Authentication Type(인증 유형) — 사용된 요청 인증 유형으로, 인증 헤더의 경우 AuthHeader, 쿼리 문자열(pre-signed URL)의 경우 QueryString, 인증되지 않은 요청의 경우 -이에요.

예시 항목: AuthHeader

Host Header(호스트 헤더) — Amazon S3에 연결하는 데 사용된 엔드포인트예요.

예시 항목: s3.us-west-2.amazonaws.com

일부 초기 리전은 레거시 엔드포인트를 지원해요. 서버 접근 로그나 AWS CloudTrail 로그에서 이러한 엔드포인트가 보일 수 있어요. 자세한 내용은 Legacy endpoints를 참고하세요. Amazon S3 리전 및 엔드포인트의 전체 목록은 Amazon Web Services General Reference의 Amazon S3 endpoints and quotas를 참고하세요.

TLS version(TLS 버전) — 클라이언트가 협상한 TLS 버전이에요. 값은 TLSv1.1, TLSv1.2, TLSv1.3 중 하나이거나, TLS를 사용하지 않았다면 -이에요.

예시 항목: TLSv1.2

Access Point ARN(액세스 포인트 ARN) — 요청의 액세스 포인트의 Amazon 리소스 이름(ARN)이에요. 액세스 포인트 ARN이 잘못되었거나 사용되지 않으면 필드에 -가 포함돼요. 액세스 포인트에 대한 자세한 내용은 Using Amazon S3 access points for general purpose buckets를 참고하세요. ARN에 대한 자세한 내용은 AWS Reference Guide의 Amazon Resource Name (ARN)을 참고하세요.

예시 항목: arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP

aclRequired — 요청이 인증에 액세스 제어 목록(ACL)을 요구했는지 나타내는 문자열이에요. 요청이 인증에 ACL을 요구했다면 문자열은 Yes예요. ACL이 필요 없었다면 문자열은 -이에요. ACL에 대한 자세한 내용은 Access control list (ACL) overview를 참고하세요. aclRequired 필드를 사용해 ACL을 비활성화하는 방법에 대한 자세한 내용은 Controlling ownership of objects and disabling ACLs for your bucket을 참고하세요.

예시 항목: Yes

Source region(소스 리전) — 요청이 시작된 AWS 리전이에요. 이 필드는 시작 리전을 확인할 수 없을 때(예: PrivateLink 연결, Direct Connect 연결, BYOIP(Bring your own IP addresses) 또는 AWS가 아닌 IP 주소) 또는 로그가 수명 주기 및 체크섬 같은 고객 설정 정책이나 작업으로 트리거된 운영에 의해 생성될 때 대시(-)를 표시해요.

예시 항목: us-east-1

사용자 지정 접근 로그 정보

요청에 대한 접근 로그 레코드에 저장할 사용자 지정 정보를 포함할 수 있어요. 이렇게 하려면 요청 URL에 사용자 지정 쿼리 문자열 매개변수를 추가하세요. Amazon S3는 x-로 시작하는 쿼리 문자열 매개변수를 무시하지만, 해당 매개변수를 요청의 접근 로그 레코드에 로그 레코드의 Request-URI 필드의 일부로 포함해요.

예를 들어, "s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"에 대한 GET 요청은 "s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg"에 대한 요청과 동일하게 작동해요. 다만 "x-user=johndoe" 문자열이 연결된 로그 레코드의 Request-URI 필드에 포함된다는 점만 달라요. 이 기능은 REST 인터페이스에서만 사용할 수 있어요.

확장 가능한 서버 접근 로그 형식에 대한 프로그래밍 고려 사항

때때로 우리는 각 줄의 끝에 새 필드를 추가해 접근 로그 레코드 형식을 확장할 수 있어요. 따라서 서버 접근 로그를 구문 분석하는 코드가 이해하지 못하는 후행 필드를 처리할 수 있는지 확인해야 해요.

더 알아보기 (Learn more)