

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Lightsail 버킷 로그를 사용하여 객체 스토리지 액세스 분석
<a name="amazon-lightsail-bucket-access-log-format"></a>

액세스 로깅은 Amazon Lightsail 객체 스토리지 서비스의 버킷에 대한 요청에 대한 자세한 기록을 제공합니다. 보안 및 액세스 감사를 위해 액세스 로그를 사용하거나 고객 기반에 대해 알아볼 수 있습니다. 이 섹션에서는 액세스 로그 파일에 대한 형식과 기타 세부 정보를 설명합니다. 로깅 기초 사항에 대한 자세한 내용은 [버킷 액세스 로그](amazon-lightsail-bucket-access-logs.md)를 참조하세요.

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

다음은 5개 로그 레코드로 구성된 로그 예제입니다.

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV2 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket.s3.us-west-1.amazonaws.com TLSV1.1
```

**참고**  
모든 로그 레코드 필드를 `–`(대시)로 설정하여 데이터를 알 수 없거나 사용할 수 없거나 해당 필드가 요청에 적용될 수 없음을 나타낼 수 있습니다.

**목차**
+ [로그 레코드 필드](#log-record-fields)
+ [복사 작업을 위한 추가 로깅](#additional-logging-for-copy-operations)
+ [사용자 지정 액세스 로그 정보](#custom-access-log-information)
+ [확장 가능한 액세스 로그 형식에 대한 프로그래밍 고려 사항](#programing-considerations)

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

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

**액세스 포인트 ARN(Amazon 리소스 이름)**

요청 액세스 포인트의 Amazon 리소스 이름(ARN) 입니다. 액세스 포인트 ARN의 형식이 잘못되었거나 이를 사용하지 않으면 필드에 '-'가 포함됩니다. 액세스 포인트에 대한 자세한 내용은 [액세스 포인트 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)을 참조하십시오. 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
```

**버킷 소유자**

원본 버킷의 정식 사용자 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/general/latest/gr/acct-identifiers.html#FindingCanonicalId)를 참조하세요.

입력 예

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**버킷**

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

입력 예

```
amzn-s3-demo-bucket
```

**Time**

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

입력 예

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

**원격 IP**

요청자의 명백한 인터넷 주소입니다. 중간 프록시 및 방화벽이 요청 시스템의 실제 주소를 가릴 수 있습니다.

입력 예

```
192.0.2.3
```

**요청자**

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

입력 예

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**요청 ID**

각 요청을 고유하게 식별하기 위해 Lightsail에서 생성한 문자열입니다.

입력 예

```
3E57427F33A59F07
```

**작업**

여기에 나열된 작업은 `SOAP.operation`, `REST.HTTP_method.resource_type`, `WEBSITE.HTTP_method.resource_type` 또는 `BATCH.DELETE.OBJECT`로 선언됩니다.

입력 예

```
REST.PUT.OBJECT
```

**Key(키)**

요청의 "키" 부분. URL로 인코딩되거나 작업에 키 파라미터가 없을 경우 "-".

입력 예

```
/photos/2019/08/puppy.jpg
```

**요청-URII**

HTTP 요청 메시지의 Request-URI 부분.

입력 예

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
```

**HTTP 상태**

응답의 숫자 HTTP 상태 코드.

입력 예

```
200
```

**오류 코드**

Amazon S3 [오류 코드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingRESTError.html#ErrorCode) 또는 오류가 발생하지 않은 경우 "-"입니다.

입력 예

```
NoSuchBucket
```

**보낸 바이트**

HTTP 프로토콜 오버헤드를 제외한 보낸 응답 바이트 수, 영일 경우 "-".

입력 예

```
2662992
```

**객체 크기**

해당 객체의 총 크기.

입력 예

```
3462992
```

**총 시간**

버킷의 관점에서 요청이 진행 중인 시간(밀리초)입니다. 이 값은 요청이 수신된 시간부터 응답의 마지막 바이트가 전송된 시간까지 측정됩니다. 클라이언트 관점의 측정값은 네트워크 지연 시간으로 인해 더 길 수 있습니다.

입력 예

```
70
```

**반환 시간**

Lightsail가 요청을 처리하는 데 소비한 시간(밀리초). 이 값은 요청의 마지막 바이트가 수신된 시간부터 응답의 첫 바이트가 전송된 시간까지 측정됩니다.

입력 예

```
10
```

**참조자**

HTTP Referrer 헤더의 값(있는 경우). HTTP 사용자 에이전트(예: 브라우저)는 일반적으로 이 헤더를 요청 시 연결 또는 포함 페이지의 URL로 설정합니다.

입력 예

```
"http://www.amazon.com/webservices"
```

**사용자 에이전트**

HTTP User-Agent 헤더의 값.

입력 예

```
"curl/7.15.1"
```

**버전 ID**

요청의 버전 ID 또는 작업이 `versionId` 파라미터를 사용하지 않는 경우 `-`입니다.

입력 예

```
3HL4kqtJvjVBH40Nrjfkd
```

**호스트 Id**

x-amz-id-2 또는 Lightsail 확장 요청 ID.

입력 예

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**서명 버전**

요청을 인증하는 데 사용된 서명 버전, `SigV2` 또는 `SigV4` 또는 인증되지 않은 요청에 대한 `-`.

입력 예

```
SigV2
```

**암호 그룹**

HTTPS 요청에 대해 협상된 Secure Sockets Layer (SSL) 암호 또는 HTTP에 대해 협상된 `-` 암호.

입력 예

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

**인증 유형**

사용된 요청 인증 유형, 인증 헤더의 경우 `AuthHeader`, 쿼리 문자열(사전 서명된 URL)에 대해서는 `QueryString`, 인증되지 않은 요청에 대해서는 `-`.

입력 예

```
AuthHeader
```

**호스트 헤더**

Lightsail에 연결하는 데 사용된 엔드포인트

입력 예

```
s3.us-west-2.amazonaws.com
```

**TLS 버전**

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

입력 예

```
TLSv1.2
```

## 복사 작업을 위한 추가 로깅
<a name="additional-logging-for-copy-operations"></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/general/latest/gr/acct-identifiers.html#FindingCanonicalId)를 참조하세요.

입력 예

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**버킷**

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

입력 예

```
amzn-s3-demo-bucket
```

**Time**

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

입력 예

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

**원격 IP**

요청자의 명백한 인터넷 주소입니다. 중간 프록시 및 방화벽이 요청 시스템의 실제 주소를 가릴 수 있습니다.

입력 예

```
192.0.2.3
```

**요청자**

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

입력 예

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**요청 ID**

각 요청을 고유하게 식별하기 위해 Lightsail에서 생성한 문자열입니다.

입력 예

```
3E57427F33A59F07
```

**작업**

여기에 나열된 작업은 `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
```

**요청-URII**

HTTP 요청 메시지의 Request-URI 부분.

입력 예

```
"GET /amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-foo=bar"
```

**HTTP 상태**

복사 작업 `GET` 부분의 숫자 HTTP 상태 코드.

입력 예

```
200
```

**오류 코드**

복사 작업 부분의 `GET`의 Amazon S3 오류 코드 또는 오류가 발생하지 않은 경우 `-`입니다.

입력 예

```
NoSuchBucket
```

**보낸 바이트**

HTTP 프로토콜 오버헤드를 제외한 보낸 응답 바이트 수, 영일 경우 "-".

입력 예

```
2662992
```

**객체 크기**

해당 객체의 총 크기.

입력 예

```
3462992
```

**총 시간**

버킷의 관점에서 요청이 진행 중인 시간(밀리초)입니다. 이 값은 요청이 수신된 시간부터 응답의 마지막 바이트가 전송된 시간까지 측정됩니다. 클라이언트 관점의 측정값은 네트워크 지연 시간으로 인해 더 길 수 있습니다.

입력 예

```
70
```

**반환 시간**

Lightsail가 요청을 처리하는 데 소비한 시간(밀리초). 이 값은 요청의 마지막 바이트가 수신된 시간부터 응답의 첫 바이트가 전송된 시간까지 측정됩니다.

입력 예

```
10
```

**참조자**

HTTP Referrer 헤더의 값(있는 경우). HTTP 사용자 에이전트(예: 브라우저)는 일반적으로 이 헤더를 요청 시 연결 또는 포함 페이지의 URL로 설정합니다.

입력 예

```
"http://www.amazon.com/webservices"
```

**사용자 에이전트**

HTTP User-Agent 헤더의 값.

입력 예

```
"curl/7.15.1"
```

**버전 ID**

복사 중인 객체의 버전 ID 또는 `x-amz-copy-source` 헤더가 복사 소스의 일부로 `versionId` 파라미터를 지정하지 않은 경우 `-`입니다.

입력 예

```
3HL4kqtJvjVBH40Nrjfkd
```

**호스트 Id**

x-amz-id-2 또는 Lightsail 확장 요청 ID.

입력 예

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**서명 버전**

요청을 인증하는 데 사용된 서명 버전, `SigV2` 또는 `SigV4` 또는 인증되지 않은 요청에 대한 `-`.

입력 예

```
SigV2
```

**암호 그룹**

HTTPS 요청에 대해 협상된 Secure Sockets Layer (SSL) 암호 또는 HTTP에 대해 협상된 `-` 암호.

입력 예

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

**인증 유형**

사용된 요청 인증 유형, 인증 헤더의 경우 `AuthHeader`이고, 쿼리 문자열(사전 서명된 URL)의 경우 `QueryString`이며 인증되지 않은 요청의 경우 `-`입니다.

입력 예

```
AuthHeader
```

**호스트 헤더**

Lightsail에 연결하는 데 사용된 엔드포인트

입력 예

```
s3.us-west-2.amazonaws.com
```

**TLS 버전**

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

입력 예

```
TLSv1.2
```

## 사용자 지정 액세스 로그 정보
<a name="custom-access-log-information"></a>

요청에 대한 액세스 로그 레코드에 저장할 사용자 지정 정보를 포함할 수 있습니다. 이렇게 하려면 요청에 대한 URL에 사용자 지정 쿼리 문자열 파라미터를 추가합니다. Lightsail는 "x-"로 시작하는 쿼리 문자열 파라미터를 무시하지만 요청에 대한 액세스 로그 레코드에 이러한 파라미터를 로그 레코드 `Request-URI` 필드의 일부로 포함합니다.

예를 들어 `GET`에 대한 `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg?x-user=johndoe"` 요청은 관련 로그 레코드의 `"s3.amazonaws.com/amzn-s3-demo-bucket/photos/2019/08/puppy.jpg"` 필드에 `"x-user=johndoe"` 문자열이 포함된다는 점을 제외하고 `Request-URI`에 대한 요청과 동일하게 작동합니다. 이 기능은 REST 인터페이스에서만 사용할 수 있습니다.

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

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