# AWS S3

## 개요

Panther는 S3 버킷을 통해 Amazon Web Services(AWS) S3 로그 수집을 지원합니다.

## AWS S3 로그를 Panther에 온보딩하는 방법

S3 로그를 Panther로 가져오려면 AWS 계정에서 데이터를 스트리밍하기 위해 Panther 콘솔에서 S3 버킷을 설정해야 합니다.

1. Panther 콘솔의 왼쪽 탐색 모음에서 클릭하세요 **구성** > **로그 소스**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **새로 만들기**.
3. 사용 가능한 로그 소스 목록을 보려면 "AWS"를 검색하세요.
4. 선택하세요 **AWS S3 서버 액세스**.
5. 선택하세요 **AWS S3 버킷** 소스를 선택하여 설정을 시작하세요. [데이터 전송을 위해 S3를 구성하는 Panther 문서](https://docs.panther.com/ko/data-onboarding/data-transports/aws/s3).

## 다음의 경우 통합에 제한이 발생할 수 있습니다:

Panther의 사전 작성된 AWS 룰은 [panther-analysis Github 리포지토리](https://github.com/panther-labs/panther-analysis/tree/master/rules).

## 데이터 익스플로러에서 로그 쿼리하기

Panther의 [panther\_monitor](https://docs.panther.com/ko/search/data-explorer)에서 사용하기 위한 예제 SQL 쿼리는 [s3-access-logs-queries](https://docs.panther.com/ko/search/data-explorer/example-queries/s3-access-logs-queries "mention").

## 지원되는 AWS S3 로그

### AWS.S3ServerAccess

S3ServerAccess는 S3 액세스 로그입니다. 자세한 내용은 [S3 로그 형식에 대한 AWS 문서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html).

```yaml
스키마: AWS.S3ServerAccess
설명: S3ServerAccess는 AWS S3 액세스 로그입니다.
참조URL: https://docs.aws.amazon.com/AmazonS3/latest/dev/LogFormat.html
필드:
  - name: bucketowner
    required: true
    설명: 소스 버킷 소유자의 정규화된 사용자 ID. 정규화된 사용자 ID는 AWS 계정 ID의 다른 형태입니다.
    type: string
  - name: bucket
    설명: 요청이 처리된 버킷의 이름. 시스템이 잘못된 요청을 받아 버킷을 결정할 수 없으면 해당 요청은 어떤 서버 액세스 로그에도 나타나지 않습니다.
    type: string
  - 이름: time
    설명: 요청이 수신된 시간(UTC).
    type: timestamp
    시간 형식: rfc3339
  - name: remoteip
    설명: 요청자의 겉보기 인터넷 주소. 중간 프록시와 방화벽은 요청을 수행한 기계의 실제 주소를 가릴 수 있습니다.
    type: string
  - name: requester
    설명: 요청자의 정규화된 사용자 ID, 또는 인증되지 않은 요청의 경우 NULL. 요청자가 IAM 사용자였던 경우 이 필드는 요청자의 IAM 사용자 이름과 해당 IAM 사용자가 속한 AWS 루트 계정을 반환합니다. 이 식별자는 접근 제어 목적으로 사용되는 동일한 식별자입니다.
    type: string
  - name: requestid
    설명: 각 요청을 고유하게 식별하기 위해 Amazon S3에서 생성한 문자열.
    type: string
  - 이름: operation
    설명: 여기에 나열된 작업은 SOAP.operation, REST.HTTP_method.resource_type, WEBSITE.HTTP_method.resource_type 또는 BATCH.DELETE.OBJECT로 선언됩니다.
    type: string
  - 이름: key
    설명: 요청의 키 부분으로 URL 인코딩되거나, 작업이 키 매개변수를 사용하지 않는 경우 NULL.
    type: string
  - name: requesturi
    설명: HTTP 요청 메시지의 Request-URI 부분.
    type: string
  - name: httpstatus
    설명: 응답의 숫자형 HTTP 상태 코드.
    type: bigint
  - name: errorcode
    설명: Amazon S3 오류 코드, 오류가 발생하지 않은 경우 NULL.
    type: string
  - name: bytessent
    설명: HTTP 프로토콜 오버헤드를 제외한 전송된 응답 바이트 수, 또는 0이면 NULL.
    type: bigint
  - name: objectsize
    설명: 해당 객체의 전체 크기.
    type: bigint
  - name: totaltime
    설명: 서버 관점에서 요청이 진행된 밀리초 수. 이 값은 요청이 수신된 시점부터 응답의 마지막 바이트가 전송된 시점까지 측정됩니다. 클라이언트 관점에서 측정한 값은 네트워크 지연으로 인해 더 길 수 있습니다.
    type: bigint
  - name: turnaroundtime
    설명: Amazon S3가 요청을 처리하는 데 소요된 밀리초 수. 이 값은 요청의 마지막 바이트가 수신된 시점부터 응답의 첫 번째 바이트가 전송된 시점까지 측정됩니다.
    type: bigint
  - name: referrer
    설명: 존재하는 경우 HTTP Referer 헤더의 값. HTTP 사용자 에이전트(예: 브라우저)는 일반적으로 요청을 할 때 이 헤더를 연결하거나 포함한 페이지의 URL로 설정합니다.
    type: string
  - name: useragent
    설명: HTTP User-Agent 헤더의 값.
    type: string
  - name: versionid
    설명: 요청의 버전 ID, 또는 작업이 versionId 매개변수를 사용하지 않는 경우 NULL.
    type: string
  - name: hostid
    설명: x-amz-id-2 또는 Amazon S3 확장 요청 ID.
    type: string
  - name: signatureversion
    설명: 요청을 인증하는 데 사용된 서명 버전(SigV2 또는 SigV4), 또는 인증되지 않은 요청의 경우 NULL.
    type: string
  - name: ciphersuite
    설명: HTTPS 요청에 대해 협상된 보안 소켓 계층(SSL) 암호 또는 HTTP의 경우 NULL.
    type: string
  - name: authenticationtype
    설명: 사용된 요청 인증 유형으로, 인증 헤더의 경우 AuthHeader, 쿼리 문자열(사전 서명된 URL)의 경우 QueryString, 또는 인증되지 않은 요청의 경우 NULL.
    type: string
  - name: hostheader
    설명: Amazon S3에 연결하는 데 사용된 엔드포인트.
    type: string
  - name: tlsVersion
    설명: "클라이언트가 협상한 전송 계층 보안(TLS) 버전. 값은 다음 중 하나입니다: TLSv1, TLSv1.1, TLSv1.2; 또는 TLS가 사용되지 않은 경우 NULL."
    type: string
  - name: accesspointarn
    설명: "요청의 액세스 포인트에 대한 Amazon 리소스 이름(ARN)."
    type: string
  - name: aclrequired
    설명: "요청이 권한 부여를 위해 액세스 제어 목록(ACL)을 필요로 했는지를 나타내는 문자열."
    type: string
  - name: additionalFields
    설명: 레코드의 나머지 열을 배열로 표현한 것.
    type: array
    element:
      type: string
```
