> For the complete documentation index, see [llms.txt](https://docs.panther.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.panther.com/ko/data-onboarding/supported-logs/aws/eks.md).

# AWS EKS

## 개요

Panther는 AWS CloudWatch Logs를 통해 Amazon Web Services(AWS) Elastic Kubernetes Service(EKS) 로그의 수집을 지원합니다.

EKS는 로그를 S3로 직접 보낼 수 없습니다. 대신 EKS 로그를 [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)로 보내도록 한 다음, [Kinesis Data Firehose](https://aws.amazon.com/kinesis/data-firehose/?p=pm\&c=aa\&pd=kinesis\&z=4) 를 구성하여 이를 Panther가 읽을 S3 버킷으로 전송해야 합니다.

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

### 1단계: EKS 컨트롤 플레인 로깅 활성화

EKS 컨트롤 플레인 로그를 활성화하면 AWS가 해당 로그를 CloudWatch Logs로 라우팅하기 시작합니다.

* 다음을 따르세요 [EKS 컨트롤 플레인 로깅을 활성화하는 AWS 문서](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html).
  * EKS 콘솔에서 로깅을 구성할 때는 다음에 대해서만 로깅을 활성화해야 합니다. **Audit** 그리고 **Authenticator** 로그 유형만 활성화하세요. Panther는 현재 다른 로그 유형을 지원하지 않습니다.

### 2단계: Panther 콘솔에서 CloudWatch Logs 소스 구성

EKS 컨트롤 플레인 로깅을 활성화하면 EKS 감사 및 인증자 로그를 CloudWatch Logs에서 사용할 수 있습니다. 이제 Panther에서 CloudWatch Logs 소스를 설정할 차례입니다.

1. Panther Console의 왼쪽 탐색 바에서 다음을 클릭하세요 **구성** > **로그 소스**.
2. 오른쪽 상단 모서리에서 다음을 클릭하세요 **새로 만들기**.
3. 다음을 클릭합니다: **사용자 지정 로그 형식** 타일.
4. 다음에서 **AWS CloudWatch Logs** 타일에서 다음을 클릭합니다: **시작**.
5. "소스 구성" 페이지에서 다음 필드를 채우세요:
   * **이름:** CloudWatch Logs 소스의 설명적인 이름을 입력합니다.
   * **로그 그룹 이름**: CloudWatch Logs 그룹의 고유한 이름을 입력합니다. AWS CloudWatch Logs LogGroup의 이름 형식은 `/aws/eks/{your_cluster_name}/cluster`
   * **AWS 계정 ID**: EKS 클러스터를 호스팅하는 AWS 계정의 ID 번호를 입력합니다.
   * (선택 사항) **패턴 필터**: 로그 이벤트를 필터링할 패턴을 입력합니다. 다음을 참조하세요. [AWS의 CloudWatch Logs 패턴 필터 문서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) 에서 자세히 알아보세요.
   * **로그 유형**: 다음을 선택합니다: `Amazon.EKS.Audit` 그리고 `Amazon.EKS.Authenticator`.
6. 다음을 클릭합니다: **설정**.

### 3단계: S3 버킷, Kinesis Data Firehose 및 IAM 역할 설정

Panther가 CloudWatch Logs 소스에서 객체를 읽으려면 다양한 AWS 리소스가 필요합니다. 이를 구성하기 위해 Panther는 S3 버킷, Kinesis Data Firehose, IAM 역할 및 기타 필요한 리소스를 설정하는 CloudFormation 템플릿을 제공합니다.

1. Panther 콘솔에서 **AWS Console UI 사용**을 클릭하세요. 그러면 템플릿이 미리 채워진 상태로 AWS CloudFormation 콘솔 UI로 리디렉션됩니다.
   * 또한 템플릿을 다운로드하여 자체 파이프라인을 통해 적용하거나, 리소스를 수동으로 구성할 수도 있습니다. 자세한 내용은 다음을 참조하세요. [CloudWatch Logs 소스 문서](/ko/data-onboarding/data-transports/aws/cloudwatch.md#setup-an-iam-role).
2. EKS 클러스터를 호스팅하는 AWS 계정 ID와 리전에 CloudFormation 스택 템플릿을 설치합니다.
   * CloudFormation 스택 생성이 완료될 때까지 기다려야 합니다.
3. CloudFormation 스택이 준비되면 다음을 입력하세요. **버킷 이름** 그리고 **Role ARN** 을 Panther 콘솔에 입력합니다.
   * CloudFormation 스택 생성이 완료되면 AWS의 스택 "Outputs" 섹션에서 리소스 ARN을 찾을 수 있습니다.

### 4단계: Panther에서 소스 설정 완료

성공 화면으로 이동합니다:

<figure><img src="/files/e0820e5acb9452e294cfe3ba72060f0fbbfd3b32" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="281"><figcaption></figcaption></figure>

* 선택적으로 하나 이상의 [디택션 팩](https://docs.panther.com/detections/panther-managed/packs).
* 해당 **이벤트가 처리되지 않을 때 알러트를 트리거** 설정의 기본값은 **YES**. 일정 시간이 지나 로그 소스에서 데이터 흐름이 중지되면 알림을 받게 되므로 이 기능을 활성화한 상태로 두는 것을 권장합니다. 기간은 구성 가능하며 기본값은 24시간입니다.\\\\

  <figure><img src="/files/7db146cd7acee3d0704a4a8b2157f230cfa22168" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>

## Panther가 만든 탐지

Panther의 미리 작성된 AWS 규칙은 다음에서 확인하세요: [panther-analysis GitHub 저장소](https://github.com/panther-labs/panther-analysis/tree/master/rules).

## 지원되는 AWS EKS 로그 유형

Panther는 지원합니다 [Amazon.EKS.Audit](#amazon.eks.audit) 그리고 [Amazon.EKS.Authenticator](#amazon.eks.authenticator) 로그.

### Amazon.EKS.Audit

EKS 감사 로그는 IAM 자격 증명을 사용하여 Kubernetes 역할 기반 액세스 제어(RBAC) 인증에 영향을 준 개별 사용자, 관리자 또는 시스템 구성 요소의 기록을 제공합니다. 자세한 내용은 다음을 참조하세요. [EKS 컨트롤 플레인 로그에 대한 AWS 문서](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html).

```yaml
fields:
  - 이름: responseObject
    type: object
    fields:
      - 이름: secrets
        type: array
        element:
          type: object
          fields:
            - 이름: name
              required: true
              type: string
      - 이름: rules
        type: array
        element:
          type: object
          fields:
            - 이름: apiGroups
              type: array
              element:
                type: string
            - 이름: resources
              type: array
              element:
                type: string
            - 이름: verbs
              type: array
              element:
                type: string
      - 이름: spec
        유형: json
      - 이름: apiVersion
        type: string
      - 이름: kind
        type: string
      - 이름: metadata
        type: object
        fields:
          - 이름: namespace
            type: string
          - 이름: annotations
            유형: json
          - 이름: creationTimestamp
            type: timestamp
            timeFormats:
              - rfc3339
          - 이름: labels
            유형: json
          - 이름: managedFields
            type: array
            element:
              type: object
              fields:
                - 이름: apiVersion
                  type: string
                - 이름: fieldsType
                  type: string
                - name: manager
                  type: string
                - 이름: operation
                  type: string
                - 이름: time
                  type: timestamp
                  timeFormats:
                    - rfc3339
          - 이름: name
            type: string
          - 이름: resourceVersion
            type: string
          - name: uid
            type: string
          - 이름: ownerReferences
            유형: json
  - 이름: requestObject
    type: object
    fields:
      - 이름: rules
        type: array
        element:
          type: object
          fields:
            - 이름: apiGroups
              type: array
              element:
                type: string
            - 이름: resources
              type: array
              element:
                type: string
            - 이름: verbs
              type: array
              element:
                type: string
      - 이름: spec
        유형: json
      - 이름: apiVersion
        type: string
      - 이름: kind
        type: string
      - 이름: metadata
        type: object
        fields:
          - 이름: annotations
            유형: json
          - 이름: namespace
            type: string
          - 이름: labels
            유형: json
          - 이름: name
            type: string
          - 이름: ownerReferences
            유형: json
          - 이름: resourceVersion
            type: string
      - 이름: status
        type: object
        fields:
          - 이름: $setElementOrder/conditions
            type: array
            element:
              type: object
              fields:
                - 이름: type
                  type: string
          - 이름: conditions
            type: array
            element:
              type: object
              fields:
                - 이름: lastHeartbeatTime
                  type: timestamp
                  timeFormats:
                    - rfc3339
                - 이름: type
                  type: string
  - 이름: objectRef
    type: object
    fields:
      - 이름: subresource
        type: string
      - 이름: resourceVersion
        type: string
      - name: uid
        type: string
      - 이름: namespace
        type: string
      - 이름: name
        type: string
      - 이름: apiGroup
        type: string
      - 이름: apiVersion
        required: true
        type: string
      - 이름: resource
        required: true
        type: string
  - 이름: annotations
    유형: json
  - 이름: apiVersion
    required: true
    type: string
  - 이름: auditID
    required: true
    type: string
  - 이름: kind
    required: true
    type: string
  - 이름: level
    required: true
    type: string
  - 이름: requestReceivedTimestamp
    required: true
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
  - 이름: requestURI
    type: string
  - 이름: responseStatus
    type: object
    fields:
      - 이름: reason
        type: string
      - name: message
        type: string
      - 이름: status
        type: string
      - 이름: code
        required: true
        type: bigint
  - 이름: sourceIPs
    required: true
    type: array
    element:
      type: string
      표시자:
        - ip
  - 이름: stage
    required: true
    type: string
  - 이름: stageTimestamp
    required: true
    type: timestamp
    timeFormats:
      - rfc3339
  - 이름: user
    required: true
    type: object
    fields:
      - 이름: extra
        type: object
        fields:
          - 이름: authentication.kubernetes.io/pod-name
            type: array
            element:
              type: string
          - 이름: authentication.kubernetes.io/pod-uid
            type: array
            element:
              type: string
          - 이름: accessKeyId
            type: array
            element:
              type: string
          - 이름: arn
            type: array
            element:
              type: string
              표시자:
                - aws_arn
          - 이름: canonicalArn
            type: array
            element:
              type: string
              표시자:
                - aws_arn
          - 이름: sessionName
            type: array
            element:
              type: string
      - name: uid
        type: string
      - 이름: groups
        type: array
        element:
          type: string
      - 이름: username
        type: string
        표시자:
          - 사용자명
  - 이름: userAgent
    type: string
  - 이름: verb
    required: true
    type: string

```

### Amazon.EKS.Authenticator

이러한 로그는 EKS가 IAM 자격 증명을 사용하여 Kubernetes 역할 기반 액세스 제어(RBAC) 인증에 사용하는 컨트롤 플레인 구성 요소를 나타냅니다. 자세한 내용은 다음을 참조하세요. [EKS 컨트롤 플레인 로그에 대한 AWS 문서](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html).

```yaml
fields:
    - 이름: timestamp
      required: true
      설명: timestamp
      type: timestamp
      timeFormat: rfc3339
      isEventTime: true
    - 이름: level
      required: true
      설명: level
      type: string
    - 이름: access_key_id
      설명: access_key_id
      type: string
    - name: message
      required: true
      설명: message
      type: string
    - 이름: account_id
      설명: account_id
      type: string
      표시자:
        - aws_account_id
    - 이름: arn
      설명: arn
      type: string
      표시자:
        - aws_arn
    - 이름: client
      설명: client
      type: string
    - 이름: method
      설명: method
      type: string
    - name: path
      설명: path
      type: string
    - 이름: session
      설명: session
      type: string
    - 이름: user_id
      설명: user_id
      type: string
    - 이름: groups
      설명: groups
      type: string
    - name: uid
      설명: uid
      type: string
      표시자:
        - trace_id
    - 이름: username
      설명: username
      type: string
      표시자:
        - 사용자명
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.panther.com/ko/data-onboarding/supported-logs/aws/eks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
