

# Amazon S3 서버 액세스 로그 형식
<a name="LogFormat"></a>

서버 액세스 로깅은 Amazon S3 버킷에 수행된 요청에 대한 상세 레코드를 제공합니다. 서버 액세스 로그는 다음과 같은 목적으로 사용 가능합니다.
+ 보안 및 액세스 감사 수행
+ 고객층 조사
+ Amazon S3 청구서 이해

이 섹션에서는 Amazon S3 서버 액세스 로그 파일에 대한 형식과 기타 세부 정보를 설명합니다.

서버 액세스 로그 파일은 줄 바꿈으로 구분되는 로그 레코드의 시퀀스로 구성됩니다. 각 로그 레코드는 하나의 요청을 표시하며 공백으로 구분된 필드로 구성됩니다.

다음은 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 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
```

다음은 **체크섬 계산** 작업에 대한 예제 로그 레코드입니다.

```
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**
+ [로그 레코드 필드](#log-record-fields)
+ [복사 작업을 위한 추가 로깅](#AdditionalLoggingforCopyOperations)
+ [사용자 지정 액세스 로그 정보](#LogFormatCustom)
+ [확장 가능한 서버 액세스 로그 형식에 대한 프로그래밍 고려 사항](#LogFormatExtensible)

## 로그 레코드 필드
<a name="log-record-fields"></a>

다음 목록에서는 로그 레코드 필드에 대해 설명합니다.

**버킷 소유자**  
원본 버킷의 정식 사용자 ID입니다. 정식 사용자 ID는 또 다른 형식의 AWS 계정 ID입니다. 정식 사용자 ID에 대한 자세한 내용은 **AWS 일반 참조에서 [AWS 계정 식별자](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)를 참조하십시오. 계정의 정식 사용자 ID를 찾는 방법에 대한 자세한 내용은 [AWS 계정에 대한 정식 사용자 ID 찾기](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)를 참조하십시오.  
**입력 예**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**버킷**  
요청이 처리된 버킷의 이름. 시스템이 잘못된 양식의 요청을 수신하여 버킷을 결정할 수 없을 경우 해당 요청이 어떤 서버 액세스 로그에도 표시되지 않습니다.  
**입력 예**  

```
amzn-s3-demo-bucket1
```

**시간**  
요청이 수신된 시간입니다. 이 날짜 및 시간은 협정 세계시(UTC)로 표시됩니다. `strftime()` 용어를 사용하는 형식은 `[%d/%b/%Y:%H:%M:%S %z]`입니다.  
**입력 예**  

```
[06/Feb/2019:00:00:38 +0000]
```

**원격 IP**  
요청자의 명백한 IP 주소. 중간 프록시 및 방화벽이 요청 시스템의 실제 IP 주소를 가릴 수 있습니다.  
**입력 예**  

```
192.0.2.3
```

**요청자**  
요청자의 정식 사용자 ID 또는 인증되지 않은 요청의 `-`입니다. 요청자가 IAM 사용자인 경우 이 필드는 IAM 사용자가 속한 AWS 계정와 함께 요청자의 IAM 사용자 이름을 반환합니다. 이 식별자는 액세스 제어 목적으로 사용되는 것과 동일합니다.  
**입력 예**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
요청자가 수임된 역할을 사용하는 경우 이 필드는 수임된 IAM 역할을 반환합니다.  
**입력 예**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**요청 ID**  
각 요청을 고유하게 식별하기 위해 Amazon S3에서 생성한 문자열입니다. **체크섬 계산** 작업 요청의 경우 연결된 작업 ID가 **요청 ID** 필드에 표시됩니다. 자세한 내용은 [체크섬 계산](batch-ops-compute-checksums.md) 섹션을 참조하세요.  
**입력 예**  

```
3E57427F33A59F07
```

**작업**  
여기에 나열된 작업은 `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` 또는 `BATCH.DELETE.OBJECT`로 선언되거나 `S3.action.resource_type`의 경우 [S3 수명 주기 및 로깅](lifecycle-and-other-bucket-config.md#lifecycle-general-considerations-logging)으로 선언됩니다. [https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html) 작업 요청의 경우 작업은 `S3.COMPUTE.OBJECT.CHECKSUM`으로 나열됩니다.  
**입력 예**  

```
REST.PUT.OBJECT
S3.COMPUTE.OBJECT.CHECKSUM
```

**키**  
요청의 키(객체 이름) 부분입니다.  
**입력 예**  

```
/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 [오류 응답](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html), 오류가 없을 경우 `-`.  
**입력 예**  

```
NoSuchBucket
```

**보낸 바이트**  
HTTP 프로토콜 오버헤드를 제외한 보낸 응답 바이트 수. 영일 경우 `-`.  
**입력 예**  

```
2662992
```

**객체 크기**  
해당 객체의 총 크기.  
**입력 예**  

```
3462992
```

**총 시간**  
서버 관점에서 요청이 플라이트 상태를 유지한 밀리초 단위 시간. 이 값은 요청이 수신된 시간부터 응답의 마지막 바이트가 전송된 시간까지 측정됩니다. 클라이언트 관점의 측정값은 네트워크 지연 시간으로 인해 더 길 수 있습니다.  
**입력 예**  

```
70
```

**반환 시간**  
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 요청에 대해 협상된 Transport Layer Security(TLS) 암호 또는 HTTP에 대해 협상된 `-` 암호.  
**입력 예**  

```
ECDHE-RSA-AES128-GCM-SHA256
```

**인증 유형**  
사용된 요청 인증 유형: 인증 헤더의 경우 `AuthHeader`, 쿼리 문자열(사전 서명된 URL)의 경우 `QueryString`, 미인증 요청의 경우 `-`.  
**입력 예**  

```
AuthHeader
```

**호스트 헤더**  
Amazon S3에 연결하는 데 사용된 엔드포인트  
**입력 예**  

```
s3.us-west-2.amazonaws.com
```
일부 초기 리전은 레거시 엔드포인트를 지원합니다. 서버 액세스 로그 또는 AWS CloudTrail 로그에 이러한 엔드포인트가 표시될 수 있습니다. 자세한 내용은 [레거시 엔드포인트](VirtualHosting.md#s3-legacy-endpoints) 섹션을 참조하세요. Amazon S3 리전 및 엔드포인트의 전체 목록은 **Amazon Web Services 일반 참조에서 [Amazon S3 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/s3.html)을 참조하십시오.

**TLS 버전**  
클라이언트가 협상한 TLS(전송 계층 보안) 버전. 값은 `TLSv1.1`, `TLSv1.2`, `TLSv1.3` 또는 `-`(TLS가 사용되지 않은 경우) 중 하나입니다.  
**입력 예**  

```
TLSv1.2
```

**액세스 포인트 ARN**  
요청 액세스 포인트의 Amazon 리소스 이름(ARN) 입니다. 액세스 포인트 ARN의 형식이 잘못되었거나 이를 사용하지 않으면 필드에 `-`가 포함됩니다. 액세스 포인트에 대한 자세한 내용은 [범용 버킷의 Amazon S3 Access Points 사용](using-access-points.md) 섹션을 참조하십시오. ARN에 대한 자세한 내용은 *AWS 참조 안내서*의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)을 참조하십시오.  
**입력 예**  

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**aclRequired**  
승인을 위해 요청에 액세스 제어 목록(ACL)이 필요한지 여부를 나타내는 문자열입니다. 승인을 위해 요청에 ACL이 필요한 경우, 문자열은 `Yes` 입니다. ACL이 필요하지 않은 경우 문자열은 `-`입니다. ACL에 대한 자세한 내용은 [ACL(액세스 제어 목록) 개요](acl-overview.md) 섹션을 참조하세요. `aclRequired` 필드를 사용하여 ACL을 비활성화하는 방법에 대한 자세한 내용은 [객체 소유권 제어 및 버킷에 대해 ACL 사용 중지](about-object-ownership.md) 페이지를 참조하십시오.  
**입력 예**  

```
Yes
```

**소스 리전**  
요청이 시작된 AWS 리전입니다. 오리진 리전을 확인할 수 없거나(예: PrivateLink 연결, Direct Connect 연결, 기존 보유 IP 주소 사용(BYOIP) 또는 비 AWS IP 주소) 고객이 설정한 정책 또는 작업(예: 수명 주기 및 체크섬)에 따라 트리거된 작업으로 인해 로그가 생성된 경우 이 필드에 대시(`-`)가 표시됩니다.  
**입력 예**  

```
us-east-1
```

## 복사 작업을 위한 추가 로깅
<a name="AdditionalLoggingforCopyOperations"></a>

복사 작업에는 `GET` 및 `PUT`이 관련됩니다. 그러므로 복사 작업을 수행할 때 2개의 레코드가 로그됩니다. 작업의 `PUT` 부분과 관련된 필드는 이전 표에 설명되어 있습니다. 아래 목록에서는 복사 작업의 `GET` 부분과 관련된 레코드의 필드에 대해 설명합니다.

**버킷 소유자**  
복사 중인 객체가 저장되어 있는 버킷의 정식 사용자 ID입니다. 정식 사용자 ID는 또 다른 형식의 AWS 계정 ID입니다. 정식 사용자 ID에 대한 자세한 내용은 **AWS 일반 참조에서 [AWS 계정 식별자](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)를 참조하십시오. 계정의 정식 사용자 ID를 찾는 방법에 대한 자세한 내용은 [AWS 계정에 대한 정식 사용자 ID 찾기](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)를 참조하십시오.  
**입력 예**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**버킷**  
복사 중인 객체가 저장되어 있는 버킷의 이름.  
**입력 예**  

```
amzn-s3-demo-bucket1
```

**시간**  
요청이 수신된 시간입니다. 이 날짜 및 시간은 협정 세계시(UTC)로 표시됩니다. `strftime()` 용어를 사용하는 형식은 `[%d/%B/%Y:%H:%M:%S %z]`입니다.  
**입력 예**  

```
[06/Feb/2019:00:00:38 +0000]
```

**원격 IP**  
요청자의 명백한 IP 주소. 중간 프록시 및 방화벽이 요청 시스템의 실제 IP 주소를 가릴 수 있습니다.  
**입력 예**  

```
192.0.2.3
```

**요청자**  
요청자의 정식 사용자 ID 또는 인증되지 않은 요청의 `-`입니다. 요청자가 IAM 사용자인 경우 이 필드는 IAM 사용자가 속한 AWS 계정 루트 사용자와 함께 요청자의 IAM 사용자 이름을 반환합니다. 이 식별자는 액세스 제어 목적으로 사용되는 것과 동일합니다.  
**입력 예**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
요청자가 수임된 역할을 사용하는 경우 이 필드는 수임된 IAM 역할을 반환합니다.  
**입력 예**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**요청 ID**  
각 요청을 고유하게 식별하기 위해 Amazon S3에서 생성한 문자열입니다. **체크섬 계산** 작업 요청의 경우 연결된 작업 ID가 **요청 ID** 필드에 표시됩니다. 자세한 내용은 [체크섬 계산](batch-ops-compute-checksums.md) 섹션을 참조하세요.  
**입력 예**  

```
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 [오류 응답](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html), 오류가 없을 경우 `-`.  
**입력 예**  

```
NoSuchBucket
```

**보낸 바이트**  
HTTP 프로토콜 오버헤드를 제외한 보낸 응답 바이트 수. 영일 경우 `-`.  
**입력 예**  

```
2662992
```

**객체 크기**  
해당 객체의 총 크기.  
**입력 예**  

```
3462992
```

**총 시간**  
서버 관점에서 요청이 플라이트 상태를 유지한 밀리초 단위 시간. 이 값은 요청이 수신된 시간부터 응답의 마지막 바이트가 전송된 시간까지 측정됩니다. 클라이언트 관점의 측정값은 네트워크 지연 시간으로 인해 더 길 수 있습니다.  
**입력 예**  

```
70
```

**반환 시간**  
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=
```

**서명 버전**  
요청을 인증하는 데 사용된 서명 버전, `SigV2` 또는 `SigV4`. 미인증 요청의 경우 `-`.  
**입력 예**  

```
SigV4
```

**암호 그룹**  
HTTPS 요청에 대해 협상된 Transport Layer Security(TLS) 암호 또는 HTTP에 대해 협상된 `-` 암호.  
**입력 예**  

```
ECDHE-RSA-AES128-GCM-SHA256
```

**인증 유형**  
사용된 요청 인증 유형: 인증 헤더의 경우 `AuthHeader`, 쿼리 문자열(사전 서명된 URL)의 경우 `QueryString`, 미인증 요청의 경우 `-`.  
**입력 예**  

```
AuthHeader
```

**호스트 헤더**  
Amazon S3에 연결하는 데 사용된 엔드포인트.  
**입력 예**  

```
s3.us-west-2.amazonaws.com
```
일부 초기 리전은 레거시 엔드포인트를 지원합니다. 서버 액세스 로그 또는 AWS CloudTrail 로그에 이러한 엔드포인트가 표시될 수 있습니다. 자세한 내용은 [레거시 엔드포인트](VirtualHosting.md#s3-legacy-endpoints) 섹션을 참조하세요. Amazon S3 리전 및 엔드포인트의 전체 목록은 **Amazon Web Services 일반 참조에서 [Amazon S3 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/s3.html)을 참조하십시오.

**TLS 버전**  
클라이언트가 협상한 TLS(전송 계층 보안) 버전. 값은 `TLSv1.1`, `TLSv1.2`, `TLSv1.3` 또는 `-`(TLS가 사용되지 않은 경우) 중 하나입니다.  
**입력 예**  

```
TLSv1.2
```

**액세스 포인트 ARN**  
요청 액세스 포인트의 Amazon 리소스 이름(ARN) 입니다. 액세스 포인트 ARN의 형식이 잘못되었거나 이를 사용하지 않으면 필드에 `-`가 포함됩니다. 액세스 포인트에 대한 자세한 내용은 [범용 버킷의 Amazon S3 Access Points 사용](using-access-points.md) 섹션을 참조하십시오. ARN에 대한 자세한 내용은 *AWS 참조 안내서*의 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)을 참조하십시오.  
**입력 예**  

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**aclRequired**  
승인을 위해 요청에 액세스 제어 목록(ACL)이 필요한지 여부를 나타내는 문자열입니다. 승인을 위해 요청에 ACL이 필요한 경우, 문자열은 `Yes` 입니다. ACL이 필요하지 않은 경우 문자열은 `-`입니다. ACL에 대한 자세한 내용은 [ACL(액세스 제어 목록) 개요](acl-overview.md) 섹션을 참조하세요. `aclRequired` 필드를 사용하여 ACL을 비활성화하는 방법에 대한 자세한 내용은 [객체 소유권 제어 및 버킷에 대해 ACL 사용 중지](about-object-ownership.md) 페이지를 참조하십시오.  
**입력 예**  

```
Yes
```

**소스 리전**  
요청이 시작된 AWS 리전입니다. 오리진 리전을 확인할 수 없거나(예: PrivateLink 연결, Direct Connect 연결, 기존 보유 IP 주소 사용(BYOIP) 또는 비 AWS IP 주소) 고객이 설정한 정책 또는 작업(예: 수명 주기 및 체크섬)에 따라 트리거된 작업으로 인해 로그가 생성된 경우 이 필드에 대시(`-`)가 표시됩니다.  
**입력 예**  

```
us-east-1
```

## 사용자 지정 액세스 로그 정보
<a name="LogFormatCustom"></a>

요청에 대한 액세스 로그 레코드에 저장할 사용자 지정 정보를 포함할 수 있습니다. 이렇게 하려면 요청의 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 인터페이스에서만 사용할 수 있습니다.

## 확장 가능한 서버 액세스 로그 형식에 대한 프로그래밍 고려 사항
<a name="LogFormatExtensible"></a>

때때로 각 줄의 끝에 새로운 필드를 추가하여 액세스 로그 레코드 형식을 확장할 수 있습니다. 따라서, 서버 액세스 로그를 파싱하여 이해되지 못할 수 있는 후행 필드를 처리하는 코드를 작성해야 합니다.