# EventBridge

## 개요

[Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 는 서버리스 이벤트 버스로, 이벤트를 수신, 필터링, 변환, 라우팅 및 전달할 수 있게 해줍니다. 귀하의 환경에서는 이미 EventBridge를 사용 중일 수 있는데, 이는 AWS 서비스, 사용자 지정 애플리케이션, SaaS 애플리케이션 및 마이크로서비스로부터의 데이터 수신을 지원하기 때문입니다.

{% hint style="warning" %}
귀하가 [Cloud Connected](/ko/system-configuration/panther-deployment-types/cloud-connected.md) 고객인 경우, Panther 배포가 위치한 계정과는 별도의 AWS 계정에 모든 로그 소스 인프라를 생성하세요.
{% endhint %}

### 지원되는 대상

EventBridge는 Panther가 연결할 수 있는 많은 [대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) 을 지원하며, 여기에는 SNS 주제, SQS 큐, Firehose 전달 스트림, S3 버킷 등이 포함됩니다. 이는 다양한 워크플로를 가능하게 합니다. 예를 들면:

* Okta -> EventBridge -> AWS SNS 주제 -> Panther SQS
  * 기본적으로 EventBridge는 로그를 `detail` 객체 안에 중첩합니다. Panther의 기본 Okta 스키마를 활용하려면 EventBridge 변환을 사용해야 합니다. 변환을 생성하는 방법은 [AWS 문서](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-transform-target-input.html) 를 참조하세요.
* 사용자 지정 애플리케이션 -> EventBridge -> Firehose 전달 스트림 -> S3 -> Panther
* AWS GuardDuty -> EventBridge -> AWS SNS 주제 -> Panther SQS
  * 아래 예시에서 [EventBridge를 통해 GuardDuty 결과를 Panther로 전송하는 방법](#end-to-end-example-send-guardduty-findings-to-panther-via-eventbridge).

## EventBridge를 Panther와 함께 사용하는 방법

일반적으로 적용 가능한 워크플로는 아래 단계를 참조하세요.

EventBridge를 사용하여 GuardDuty 결과를 Panther로 보내는 구체적인 예시는 [아래 섹션을 참조하세요](#end-to-end-example-send-guardduty-findings-to-panther-via-eventbridge).

### 1단계: Amazon SNS에서 주제 생성

1. AWS 콘솔에 로그인한 후 다음으로 이동하세요. **Amazon SNS > 주제**. 다음을 클릭하세요. **주제 생성**.
   * 이미 SNS 주제를 생성해 두었다면 2단계로 건너뛰세요.
2. 세부 정보를 입력하세요:
   * **유형**: 다음을 선택합니다 `표준`.
   * **이름**: `panther-eventbridge-guard-duty`
3. 클릭하세요. **주제 생성**.
4. 다음 단계에서 필요하므로 ARN 값을 복사하여 안전한 위치에 저장하세요.
   * 예시 ARN: `arn:aws:sns:region:accountid:topic`

### 2단계: Panther에 SQS 소스 생성

1. 다음을 따르세요 [SQS 로그 소스를 생성하기 위한 Panther의 문서](/ko/data-onboarding/data-transports/aws/sqs.md).
   * 에서 **허용된 소스 ARN** 필드에 1단계에서 생성한 SNS 주제의 ARN을 입력하세요. [1단계](#step-1-create-a-topic-in-amazon-sns).
2. 클릭하세요. **SQS 큐 ARN** 을 사용해 SQS 큐의 ARN을 복사하세요. 다음 단계에서 필요하므로 안전한 위치에 저장하세요.

### 3단계: SNS 주제를 SQS 큐에 구독으로 생성

* 다음을 따르세요 [SQS 큐에 대한 SNS 구독을 생성하기 위한 Panther의 지침](/ko/data-onboarding/data-transports/aws/sqs/sns.md#step-2-create-sns-subscription-to-sqs-queue).
  * 1단계에서 생성한 주제를 선택하세요. [1단계](#step-1-create-a-topic-in-amazon-sns).
  * 에서 **프로토콜** 필드에 다음을 입력하세요. `Amazon SQS`.
  * 에서 **엔드포인트** 필드에는 2단계에서 생성한 SQS 큐의 ARN을 사용하세요. [2단계](#step-2-create-the-sqs-source-in-panther).

### 4단계: EventBridge에서 룰 생성 또는 수정

#### 룰 만들기

1. AWS에서 EventBridge로 이동합니다.
2. 다음으로 이동 **Events > Rules** 그런 다음 **룰 생성**.
   1. 룰 세부 정보를 정의합니다.
      * 이름, 설명, 이벤트 버스 및 룰 유형을 입력합니다.
   2. 이벤트 패턴을 생성합니다.
      * 일치시킬 데이터 소스와 패턴을 선택합니다.
   3. 대상(들)을 선택합니다.
      * 일치한 데이터를 어디로 라우팅할지 선택합니다.
   4. 태그 구성(선택 사항).
      * 이 AWS 리소스에 레이블을 추가하도록 선택합니다.
3. "검토 및 생성" 페이지에서 **룰 생성**.

#### 기존 룰 수정

1. AWS에서 다음으로 이동합니다. **Events > Rules** 그런 다음 수정하려는 룰을 클릭합니다.
2. 다음 항목을 클릭합니다. **대상** 탭을 클릭한 다음 **편집**.
   1. 클릭하세요. **다른 대상 추가**.
   2. 대상 유형으로 "AWS Service", 대상으로 "SNS topic"을 사용한 다음, 이전 단계에서 Panther Managed SQS를 추가한 SNS topic을 선택합니다.
3. 클릭하세요. **다음**, 클릭 **다음**, 그런 다음 클릭합니다 **룰 업데이트**.

이제 데이터 파이프라인이 완료되었으므로 Panther Console에서 로그 이벤트가 들어오는 것을 보게 되며, 여기서 Schema를 조정하고 알러트를 트리거할 수 있는 Detections를 생성할 수 있습니다.

## 엔드투엔드 예시: EventBridge를 통해 GuardDuty 발견 사항을 Panther로 전송

아래 단계는 AWS GuardDuty 데이터에 대한 고급 모니터링을 수행할 수 있도록 EventBridge에서 사용할 필요한 AWS 리소스를 빠르게 구성하는 데 도움이 되도록 마련되었습니다.

Panther에는 별도의 [S3 또는 SQS를 통한 GuardDuty 통합 문서가](/ko/data-onboarding/supported-logs/aws/guardduty.md) 있다는 점에 유의하세요.

<figure><img src="/files/7260d1da651ac7957f9e69270ed3a9d43406838e" alt="An Amazon EventBridge diagram"><figcaption></figcaption></figure>

### 데이터 파이프라인

아래 단계에서는 다음 데이터 파이프라인을 안내합니다:

GuardDuty -> EventBridge -> AWS SNS Topic -> Panther SQS

### 1단계: Amazon SNS에서 주제 생성

1. AWS 콘솔에 로그인한 후 다음으로 이동하세요. **Amazon SNS > 주제**. 다음을 클릭하세요. **주제 생성**.
   * 이미 SNS 주제를 생성해 두었다면 2단계로 건너뛰세요.
2. 세부 정보를 입력하세요:
   * **유형**: 다음을 선택합니다 `표준`.
   * **이름**: `panther-eventbridge-guard-duty`
3. 클릭하세요. **주제 생성**.
4. 다음 단계에서 필요하므로 ARN 값을 복사하여 안전한 위치에 저장하세요.
   * 예시 ARN: `arn:aws:sns:region:accountid:topic`

### 2단계: Panther에 SQS 소스 생성

1. 다음을 따르세요 [SQS 로그 소스를 생성하기 위한 Panther의 문서](/ko/data-onboarding/data-transports/aws/sqs.md).
   1. 에서 **허용된 소스 ARN** 필드에 1단계에서 생성한 SNS 주제의 ARN을 입력하세요. [1단계](#step-1-create-a-topic-in-amazon-sns-1).
2. 클릭하세요. **SQS 큐 ARN** 을 사용해 SQS 큐의 ARN을 복사하세요. 다음 단계에서 필요하므로 안전한 위치에 저장하세요.

### 3단계: SNS 주제를 SQS 큐에 구독으로 생성

* 다음을 따르세요 [SQS 큐에 대한 SNS 구독을 생성하기 위한 Panther의 지침](/ko/data-onboarding/data-transports/aws/sqs/sns.md#step-2-create-sns-subscription-to-sqs-queue).
  * 1단계에서 생성한 주제를 선택하세요. [1단계](#step-1-create-a-topic-in-amazon-sns-1).
  * 에서 **프로토콜** 필드에 다음을 입력하세요. `Amazon SQS`.
  * 에서 **엔드포인트** 필드에는 2단계에서 생성한 SQS 큐의 ARN을 사용하세요. [2단계](#step-2-create-the-sqs-source-in-panther-1).

### 4단계: EventBridge에서 룰 생성

이 단계에서는 EventBridge를 통해 GuardDuty 발견 사항을 Panther로 전송하는 방법을 보여줍니다. 또한 샘플 GuardDuty 발견 사항을 생성하거나, 누군가 TOR에서 역할을 맡을 때 알러트를 보내는 룰을 작성하는 옵션도 있습니다.

1. AWS 콘솔에서 GuardDuty로 이동하여 활성화되어 있는지 확인합니다.
2. EventBridge로 이동한 다음 **Events > Rules**.
3. 클릭하세요. **룰 생성**.
4. 룰 세부 정보 섹션을 채웁니다:
   * **이름**: 설명적인 이름을 입력하세요.
   * **설명**: 설명을 입력합니다(예: `GuardDuty에서 이벤트를 필터링하여 Panther Managed SQS로 전송`)
   * **이벤트 버스**: 드롭다운 메뉴를 `default`*.*
   * **선택한 이벤트 버스에서 룰 활성화**: 이 설정을 활성화하려면 토글을 클릭합니다.
   * **룰 유형**: 다음을 선택합니다 `이벤트 패턴이 있는 룰`.\
     ![](/files/898d2f8ec2f6e8c7e63efc61212345ed42734e8c)
5. 클릭하세요. **다음**.
6. "이벤트 패턴 생성" 페이지에서 다음을 입력합니다:
   * **이벤트 소스**: 다음을 선택합니다 `AWS 이벤트 또는 EventBridge 파트너 이벤트`.
   * **이벤트 패턴**:
     * **이벤트 소스**: 다음을 선택합니다 `AWS 서비스`.
     * **AWS 서비스**: 다음을 선택합니다 `GuardDuty`.
     * **이벤트 유형**: 다음을 선택합니다 `GuardDuty Finding`.\
       ![](/files/984c79abf097cbfc619b3b99a742e299322c4ce1)
7. 클릭하세요. **다음**.
8. "대상 선택" 페이지에서 대상 1의 양식을 작성합니다:
   * **대상 유형**: 다음을 선택합니다 `AWS 서비스`.
   * **대상 선택**: 다음을 선택합니다 `SNS 주제` 드롭다운 메뉴에서 선택합니다.
   * **주제**: 1단계에서 생성한 주제를 입력합니다 (`panther-eventbridge-guard-duty`).
   * "추가 설정"에서:
     * **대상 입력 구성**: 다음을 선택합니다 `일치한 이벤트의 일부`.
     * **일치한 이벤트의 부분 지정**: 다음을 선택합니다 `$.detail`
     * **재시도 정책**: 재시도 옵션은 기본값으로 둡니다.
     * **데드 레터 큐**: 기본 옵션으로 둡니다.
   * 여기에서 추가 대상을 더하거나 Panther를 계층으로 추가할 기회가 있다는 점에 유의하세요!\
     ![](/files/a8638318bf664b1482b20d631fd8ede94c325e40)
9. 클릭하세요. **다음**.
10. 선택적으로 태그를 구성합니다.
11. 클릭하세요. **다음**.
12. "검토 및 생성" 페이지에서 **룰 생성**.

이제 GuardDuty가 finding을 개요로 표시하면 해당 이벤트는 Panther로 라우팅되며, 그곳에서 디택션을 작성하여 우리에게 알러트할 수 있습니다.

### 샘플 finding 생성

GuardDuty에서는 샘플 finding을 생성할 수 있으므로, 이를 사용해 엔드투엔드 테스트를 수행할 수 있습니다.

1. GuardDuty에서 다음으로 이동합니다 **설정 > 샘플 Findings**.
2. 클릭하세요. **샘플 Findings 생성** 테스트하려면.

누군가 TOR를 통해 AWS에 액세스했을 때를 알고 싶다면 Panther 내의 예시 룰은 다음과 같을 수 있습니다:

```python
from panther_base_helpers import deep_get

def 룰(event):
    return deep_get(event, 'detail', 'type') == 'Discovery:S3/TorIPCaller'

def title(event):
    return f"{event.get('detail-type')}: {deep_get(event, 'detail', 'type')} from principal id: {deep_get(event, 'detail', 'resource', 'accessKeyDetails', 'principalId')}"

def 알러트_context(event):
    return {
        "account": event.get('account'),
        "principalId": deep_get(event, 'detail', 'resource', 'accessKeyDetails', 'principalId'),
        "guardduty-finding-arn": deep_get(event, 'detail', 'arn')
    }
```

## 수집된 로그 보기

로그 소스가 구성된 후에는 다음을 사용하여 수집된 데이터를 검색할 수 있습니다. [검색](/ko/search/search-tool.md) 또는 [데이터 탐색기](/ko/search/data-explorer.md).


---

# Agent Instructions: 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:

```
GET https://docs.panther.com/ko/data-onboarding/data-transports/aws/eventbridge.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
