Lightsail 버킷 로그를 사용하여 객체 스토리지 액세스 분석
액세스 로깅은 Amazon Lightsail 객체 스토리지 서비스의 버킷에 대한 요청에 대한 자세한 기록을 제공합니다. 보안 및 액세스 감사를 위해 액세스 로그를 사용하거나 고객 기반에 대해 알아볼 수 있습니다. 이 섹션에서는 액세스 로그 파일에 대한 형식과 기타 세부 정보를 설명합니다. 로깅 기초 사항에 대한 자세한 내용은 버킷 액세스 로그를 참조하세요.
액세스 로그 파일은 줄 바꿈으로 구분되는 로그 레코드의 시퀀스로 구성됩니다. 각 로그 레코드는 하나의 요청을 표시하며 공백으로 구분된 필드로 구성됩니다.
다음은 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
참고
모든 로그 레코드 필드를 –
(대시)로 설정하여 데이터를 알 수 없거나 사용할 수 없거나 해당 필드가 요청에 적용될 수 없음을 나타낼 수 있습니다.
목차
로그 레코드 필드
다음 목록에서는 로그 레코드 필드에 대해 설명합니다.
액세스 포인트 ARN(Amazon 리소스 이름)
요청 액세스 포인트의 Amazon 리소스 이름(ARN) 입니다. 액세스 포인트 ARN의 형식이 잘못되었거나 이를 사용하지 않으면 필드에 '-'가 포함됩니다. 액세스 포인트에 대한 자세한 내용은 액세스 포인트 사용을 참조하십시오. ARN에 대한 자세한 내용은 AWS 일반 참조의 Amazon 리소스 이름(ARN)에 대한 주제를 참조하십시오.
입력 예
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
버킷 소유자
원본 버킷의 정식 사용자 ID입니다. 정식 사용자 ID는 또 다른 형식의 AWS 계정 ID입니다. 정식 사용자 ID에 대한 자세한 내용은 AWS 일반 참조에서 AWS 계정 식별자를 참조하세요. 계정의 정식 사용자 ID를 찾는 방법에 대한 자세한 내용은 AWS 계정의 정식 사용자 ID 찾기를 참조하세요.
입력 예
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 오류 코드 또는 오류가 발생하지 않은 경우 "-"입니다.
입력 예
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
복사 작업을 위한 추가 로깅
복사 작업에는 GET
및 PUT
이 관련됩니다. 그러므로 복사 작업을 수행할 때 2개의 레코드가 로그됩니다. 작업의 PUT
부분과 관련된 필드는 이전 표에 설명되어 있습니다. 아래 목록에서는 복사 작업의 GET
부분과 관련된 레코드의 필드에 대해 설명합니다.
버킷 소유자
복사 중인 객체가 저장되어 있는 버킷의 정식 사용자 ID입니다. 정식 사용자 ID는 또 다른 형식의 AWS 계정 ID입니다. 정식 사용자 ID에 대한 자세한 내용은 AWS 일반 참조에서 AWS 계정 식별자를 참조하세요. 계정의 정식 사용자 ID를 찾는 방법에 대한 자세한 내용은 AWS 계정의 정식 사용자 ID 찾기를 참조하세요.
입력 예
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
사용자 지정 액세스 로그 정보
요청에 대한 액세스 로그 레코드에 저장할 사용자 지정 정보를 포함할 수 있습니다. 이렇게 하려면 요청의 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 인터페이스에서만 사용할 수 있습니다.
확장 가능한 액세스 로그 형식에 대한 프로그래밍 고려 사항
때때로 각 줄의 끝에 새로운 필드를 추가하여 액세스 로그 레코드 형식을 확장할 수 있습니다. 따라서 이해하지 못할 수 있는 후행 필드를 처리하기 위해 액세스 로그를 구문 분석하는 코드를 작성해야 합니다.