# Salesforce 실시간 이벤트

## 개요

Panther는 수집을 지원합니다 [Salesforce 실시간 이벤트](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_objects_monitoring.htm) Salesforce 계정의 활동을 실시간으로 모니터링하기 위한 것입니다. 이 통합은 Amazon EventBridge를 사용하여 Salesforce에서 Panther로 이벤트를 직접 스트리밍합니다.

이 통합은 [Salesforce 이벤트 모니터링](/ko/data-onboarding/supported-logs/salesforce/event-monitoring.md) 로그가 주기적으로 수집되는 통합과는 별개입니다.

## Salesforce 제한 사항

* 다음을 생성할 수 있습니다. [최대 3개의 사용자 지정 채널](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_event_limits.htm#platform_events_limits_common) 실시간 이벤트 모니터링용으로.
* 각 이벤트 채널은 최대 10개의 이벤트로 제한됩니다.
  * 10개를 초과하는 이벤트 유형을 모니터링해야 하는 경우, 여러 채널에 분산해야 합니다.
* 최대 3개의 사용자 지정 채널과 채널당 10개의 이벤트를 사용하면 총 30개의 이벤트 유형을 모니터링할 수 있습니다.

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

### 사전 요구 사항

* Salesforce 조직의 관리자여야 합니다.
* Salesforce 조직에 [실시간 이벤트 모니터링이 활성화되어 있어야 합니다](https://help.salesforce.com/s/articleView?id=xcloud.real_time_event_monitoring_enable.htm\&type=5). 또한 다음이 필요합니다:
  * 다음 **Salesforce Shield** 또는 **Event Monitoring** 추가 구독.
  * 다음 **실시간 이벤트 모니터링 데이터 보기** 사용자 권한.

### 1단계: Salesforce 이벤트 스트리밍 구성

1. 관리자로 Salesforce에 로그인합니다.
2. 오른쪽 상단에서 톱니바퀴 아이콘을 클릭한 다음 **설정**.

   <figure><img src="/files/0a65277ac227eb25b038be8e49be30983071ad83" alt="Salesforce drop-down menu showing &#x22;Setup&#x22; option"><figcaption></figcaption></figure>
3. 검색 상자에 입력하고 선택합니다 **Event Manager**.

<figure><img src="/files/6a5535da0598329435998d7472d5c93e2e5fdc18" alt="Salesforce search bar showing &#x22;Event Manager&#x22;"><figcaption></figcaption></figure>

3. Panther로 보내려는 각 이벤트에 대해 오른쪽의 화살표를 클릭한 다음 선택합니다 **스트리밍 사용**.<br>

   <figure><img src="/files/85d889bec4a76cd3ad406cff73a92adfabb2c853" alt=""><figcaption></figcaption></figure>

### 2단계: 이벤트 릴레이 생성

이벤트 스트리밍을 사용하도록 설정한 후, 데이터를 AWS EventBridge로 보내기 위해 Event Relay를 생성해야 합니다.

Event Relay를 생성하는 데는 두 가지 옵션이 있습니다:

* 옵션 1(권장): 자동화된 스크립트를 사용하여 Event Relay 생성
* 옵션 2: 수동으로 Event Relay 생성

#### **옵션 1(권장): 자동화된 스크립트 사**용하여 Event Relay 생성

1. 다음 스크립트 중 하나를 다운로드합니다. 이러한 스크립트는 모든 이벤트 유형을 추가하고 관련 Event Relay를 생성합니다.

{% columns %}
{% column %}
{% file src="/files/c4ea5adec218dc68e7ad974a878eb5997458a9d8" %}
Linux/Mac
{% endfile %}
{% endcolumn %}

{% column %}
{% file src="/files/8542554de8eb630d4e220162d58b66753ece0b57" %}
Windows PowerShell
{% endfile %}
{% endcolumn %}
{% endcolumns %}

2. 스크립트를 실행하기 전에 다음 변수를 구성합니다:

```bash
USERNAME="YOUR_USER_MAME"
PASSWORD="YOUR_PASSWORD"
SECURITY_TOKEN="YOUR_SECURITY_TOKEN"
LOGIN_BASE="https://login.salesforce.com"  # 또는 샌드박스용 test.salesforce.com
API_VERSION="v64.0"
AWS_REGION="YOUR_AWS_REGION"  # 대문자로 입력해야 함
AWS_ACCOUNT_ID="YOUR_AWS_ACCOUNT_ID"
```

* Panther Console에서 AWS 리전과 계정 ID를 확인할 수 있습니다.
  * Panther Console의 오른쪽 상단에 있는 톱니바퀴 아이콘을 클릭한 다음 **General**. 페이지 하단에 AWS 정보가 표시됩니다.

3. 스크립트를 실행합니다. 다음을 복사합니다. **AWS EventBridge 리소스** 스크립트 출력에&#xC11C;**.** 다음 단계에서 필요합니다.
4. Salesforce에서 **Event Relays** 페이지에 구성한 릴레이가 표시되어야 합니다.<br>

   <figure><img src="/files/ff3fb5902eecc4341a65bdc9259ac0c7bf7b8d7f" alt="Salesforce Event Relays showing configured relays"><figcaption></figcaption></figure>

#### **옵션 2: 수동으로 Event Relay 생성**

{% hint style="info" %}
더 자세한 지침은 다음을 참조하세요. [Salesforce에서 Amazon EventBridge로 릴레이 이벤트 가이드](https://help.salesforce.com/s/articleView?id=platform.ev_relay_events_section.htm\&type=5).
{% endhint %}

1. Salesforce 지침을 따라 [Event Relay 설정용 명명된 자격 증명 만들기](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_named_credential.htm\&type=5).
   * 다음 필드를 입력합니다:
     * **레이블**: `PantherAWSNamedCredential`
     * **이름**: `PantherAWSNamedCredential`
     * **URL**: `arn:aws:YOUR-REGION:YOUR-ACCOUNT-ID`
       * Panther Console에서 AWS 리전과 계정 ID를 확인할 수 있습니다.
         * Panther Console의 오른쪽 상단에 있는 톱니바퀴 아이콘을 클릭한 다음 **General**. 페이지 하단에 AWS 정보가 표시됩니다.
     * **ID 유형**: `명명된 주체`
     * **인증 프로토콜**: `인증 없음`
2. Salesforce 지침을 따라 [Postman을 Salesforce에 연결](https://trailhead.salesforce.com/content/learn/projects/quick-start-connect-postman-to-salesforce).
3. Salesforce 지침을 따라 [사용자 지정 플랫폼 이벤트용 채널 만들기](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_channel_pe.htm\&type=5) Postman으로.
4. 각 이벤트 유형에 대해 Salesforce 지침을 따라 [새 채널 멤버에 사용자 지정 플랫폼 이벤트 추가](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_channel_member_pe.htm\&type=5).
   * 본문 예시:

     ```json
     {
       "FullName": "Event_Monitoring_Channel_chn_ReportAnomalyEvent",
       "Metadata": {
         "eventChannel": "Event_Monitoring_Channel__chn",
         "selectedEntity": "ReportAnomalyEvent"
       }
     }
     ```

{% hint style="warning" %}
다음을 추가할 수 없습니다. `ApiEventStream` 또는 `ReportEventStream` 실시간 이벤트 모니터링 이벤트는 Tooling API에서 사용할 수 없기 때문에 Tooling API를 통해 사용자 지정 채널에 추가할 수 없습니다. 대신 Metadata API를 통해 추가해야 합니다. 자세한 내용은 다음을 참조하세요. [Platform Events 개발자 가이드](https://resources.docs.salesforce.com/latest/latest/en-us/sfdc/pdf/platform_events.pdf).
{% endhint %}

5. Salesforce 지침을 따라 [이벤트 릴레이 만들기](https://help.salesforce.com/s/articleView?id=platform.ev_relay_create_ui.htm\&type=5).
6. Salesforce 지침을 따라 [이벤트 릴레이 시작](https://help.salesforce.com/s/articleView?id=platform.ev_relay_start_ui.htm\&type=5).
7. Salesforce에서 다음으로 이동합니다. **Event Relays** 페이지. 다음을 복사합니다. **파트너 이벤트 소스 이름** 각 Event Relay에서. 다음 단계에서 필요합니다.

### 3단계: Salesforce에서 모든 Event Relay가 실행 중인지 확인

Event Relay 상태를 확인하려면:

1. Salesforce에서 다음으로 이동합니다. **설정** → **Event Relays.**
2. 모든 Event Relay에 다음이 표시되는지 확인합니다. **"실행 중"** 에서 **상태** 열을 찾아 확인할 수 있습니다.

{% hint style="warning" %}
모든 Event Relay가 실행 중으로 확인된 후에만 4단계로 진행하세요. Event Relay가 실행 중이 아니면 Panther에서 로그 소스를 설정할 수 없습니다.
{% endhint %}

### 4단계: Panther에서 Salesforce 실시간 로그 소스 구성

1. Panther Console의 왼쪽 탐색 모음에서 다음을 클릭하세요. **구성** > **로그 소스**.
2. 다음을 클릭하세요. **새로 만들기.**
3. 다음을 선택합니다 **Salesforce 실시간** 사용 가능한 로그 소스 목록에서. 클릭 **설정 시작**.
4. 다음 항목에서 **소스를 구성하세요** 페이지에서 다음 필드를 입력합니다:
   * **이름**: 소스에 대한 설명적인 이름을 입력합니다(예: `Salesforce 실시간 이벤트`).
   * **EventBridge 버스 이름**: 다음을 입력합니다. **AWS EventBridge 리소스** 또는 **파트너 이벤트 소스 이름** 이전에 복사한 항목.
     * 다음을 클릭하여 추가 버스 이름을 추가합니다. **버스 이름 추가**.
5. 다음을 클릭하세요. **설정**.

### 지원되는 이벤트 유형

Salesforce 실시간 이벤트 통합은 다음 모니터링 이벤트를 지원합니다:

<details>

<summary>지원되는 이벤트</summary>

* **LoginEventStream** - 실시간 사용자 로그인 이벤트
* **LogoutEventStream** - 실시간 사용자 로그아웃 이벤트
* **LoginAsEventStream** - 실시간 다른 사용자로 로그인 이벤트
* **SessionHijackingEventStream** - 세션 하이재킹 디택션 이벤트
* **CredentialStuffingEventStream** - 자격 증명 스터핑 공격 시도
* **ReportEventStream** - 보고서 액세스 및 수정 모니터링
* **ListViewEventStream** - 목록 보기 액세스 이벤트
* **UriEventStream** - URI 액세스 이벤트(Salesforce Classic)
* **LightningUriEventStream** - Lightning URI 액세스 이벤트
* **ApiEventStream** - API 액세스 이벤트
* **ApiAnomalyEventStream** - API 이상 디택션 이벤트
* **ReportAnomalyEventStream** - 보고서 이상 디택션 이벤트
* **LoginAnomalyEventStream** - 로그인 이상 디택션 이벤트
* **GuestUserAnomalyEventStream** - 게스트 사용자 이상 디택션 이벤트
* **BulkApiResultEventStream** - Bulk API 작업 결과
* **FileEventStream** - 파일 액세스 및 다운로드 이벤트
* **PermissionSetEventStream** - 권한 집합 할당 및 수정 이벤트
* **ConcurrentLongRunningEventStream** - 동시 장기 실행 이벤트 모니터링

</details>

이벤트 유형은 다음에서 지정됩니다. `유형` 필드에 각 이벤트 유형을 기준으로 필터링하고 디택션 규칙을 생성할 수 있습니다.

## 지원되는 로그 유형

### Salesforce.RealtimeEvent

Salesforce의 실시간 이벤트에는 Salesforce 환경의 보안 활동에 대한 포괄적인 정보가 포함됩니다.

자세한 내용은 다음을 참조하세요. [Salesforce 실시간 이벤트 모니터링 설명서](https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_objects_monitoring.htm).

```yaml
스키마: Salesforce.RealtimeEvent
설명: Salesforce 계정의 활동을 모니터링하기 위한 Salesforce 실시간 이벤트.
참조 URL: https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_objects_monitoring.htm
fields:
  - name: Type
    required: true
    설명: 발생한 이벤트의 유형입니다. 예: LoginEventStream.
    type: string
  - name: EventDate
    설명: 지정된 이벤트의 로그인 시간입니다. 예: 2020-01-20T19:12:26.965Z. 밀리초가 가장 세분화된 단위입니다.
    type: timestamp
    timeFormats:
      - rfc3339
    isEventTime: true
  - name: AdditionalInfo
    설명: 로그인 요청 중 HTTP 헤더에서 캡처된 추가 정보의 JSON 직렬화입니다.
    type: string
  - name: ApiType
    설명: '로그인에 사용된 API 유형입니다. 값에는 SOAP Enterprise, SOAP Partner, REST API가 포함됩니다'
    type: string
  - name: ApiVersion
    설명: API의 버전 번호입니다. 버전 번호를 사용할 수 없으면 “Unknown”이 반환됩니다.
    type: string
  - name: Application
    설명: 조직에 액세스하는 데 사용된 애플리케이션입니다.
    type: string
  - name: AuthMethodReference
    설명: OpenID Connect 싱글 사인온 프로토콜에서 제3자 식별 공급자가 사용한 인증 방법입니다.
    type: string
  - name: AuthServiceId
    설명: 로그인 이벤트에 대한 인증 서비스의 18자 ID입니다. 예를 들어 이 필드를 사용하여 사용자가 로그인한 SAML 또는 인증 공급자 구성을 식별할 수 있습니다.
    type: string
    indicators:
      - trace_id
  - name: Browser
    설명: 알려진 경우 브라우저 이름과 버전입니다.
    type: string
  - name: CipherSuite
    설명: 로그인에 사용된 TLS 암호화 모음입니다. 값은 하이픈 구분 기호가 있는 OpenSSL 스타일 암호화 모음 이름입니다.
    type: string
  - name: City
    설명: "사용자의 IP 주소가 물리적으로 위치한 도시입니다. 이 값은 현지화되지 않습니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    type: string
  - name: ClientVersion
    설명: 로그인 클라이언트의 버전 번호입니다. 버전 번호를 사용할 수 없으면 "Unknown"이 반환됩니다.
    type: string
  - name: Country
    설명: "사용자의 IP 주소가 물리적으로 위치한 국가입니다. 이 값은 현지화되지 않습니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    type: string
  - name: CountryIso
    설명: 사용자의 IP 주소가 물리적으로 위치한 국가의 ISO 3166 코드입니다. 자세한 내용은 Country Codes - ISO 3166을 참조하세요.
    type: string
  - name: EvaluationTime
    설명: 트랜잭션 보안 정책을 평가하는 데 걸린 시간(밀리초)입니다.
    유형: float
  - name: EventIdentifier
    설명: 이벤트의 고유 ID로, 해당 저장 오브젝트와 공유됩니다. 예: 0a4779b0-0da1-4619-a373-0a36991dff90. 이 필드를 사용하여 이벤트를 저장 오브젝트와 연관시킵니다. 또한 쿼리의 기본 키로 이 필드를 사용합니다. API 버전 42.0 이상에서 사용할 수 있습니다.
    type: string
    indicators:
      - trace_id
  - name: EventUuid
    설명: 플랫폼 이벤트 메시지를 식별하는 전역 고유 식별자(UUID)입니다. 이 필드는 API 버전 52.0 이상에서 사용할 수 있습니다.
    type: string
    indicators:
      - trace_id
  - name: ForwardedForIp
    설명: 클라이언트가 보낸 HTTP 요청의 X-Forwarded-For 헤더 값입니다. 하나 이상의 HTTP 프록시를 사용하는 로그인에서는 X-Forwarded-For 헤더가 원본 IP와 모든 프록시 IP를 저장하는 데 사용되기도 합니다. ForwardedForIp 필드는 클라이언트가 보내는 모든 값을 저장하며, IP 주소가 아닐 수도 있습니다. 최대 길이는 256자입니다. 더 긴 값은 잘립니다. OAuth 흐름 또는 싱글 사인온(SSO)을 통해 완료된 로그인에는 ForwardedForIp 필드가 채워지지 않습니다. API 버전 61.0 이상에서 사용할 수 있습니다.
    type: string
    indicators:
      - ip
  - name: HttpMethod
    설명: 로그인 요청의 HTTP 메서드입니다. 가능한 값은 GET, POST, Unknown입니다.
    type: string
  - name: LoginGeoId
    설명: 로그인 사용자의 IP 주소와 관련된 LoginGeo 오브젝트의 Salesforce ID입니다. 예: 04FB000001TvhiPMAR.
    type: string
  - name: LoginHistoryId
    설명: 사용자 세션을 추적하여 사용자 활동을 특정 로그인 인스턴스와 연관시킬 수 있습니다. 이 필드는 LoginHistory, AuthSession, LoginHistory 오브젝트에서도 사용할 수 있어 이벤트를 사용자의 원래 인증으로 추적하기 더 쉽습니다. 예: 0YaB000002knVQLKA2.
    type: string
    indicators:
      - trace_id
  - name: LoginKey
    설명: 특정 사용자의 로그인 세션에 있는 모든 이벤트를 연결하는 문자열입니다. 세션은 로그인 이벤트로 시작하여 로그아웃 이벤트 또는 사용자 세션 만료로 끝납니다. 예: lUqjLPQTWRdvRG4.
    type: string
    indicators:
      - trace_id
  - name: LoginLatitude
    설명: "사용자의 IP 주소가 물리적으로 위치한 위도입니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    유형: float
  - name: LoginLongitude
    설명: "사용자의 IP 주소가 물리적으로 위치한 경도입니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    유형: float
  - name: LoginSubType
    설명: 사용된 로그인 흐름의 유형입니다. 가능한 값 목록은 Object Reference 가이드의 LoginHistory의 LoginSubType 필드를 참조하세요. 레이블은 Login Subtype입니다.
    type: string
  - name: LoginType
    설명: 세션에 액세스하는 데 사용된 로그인 유형입니다. 가능한 값 목록은 Object Reference 가이드의 LoginHistory의 LoginType 필드를 참조하세요.
    type: string
  - name: LoginUrl
    설명: 요청이 들어오는 로그인 호스트의 URL입니다. 예: yourInstance.salesforce.com.
    type: string
    indicators:
      - url
      - hostname
  - name: NetworkId
    설명: 사용자가 로그인하는 Experience Cloud 사이트의 ID입니다. 이 필드는 조직에서 Salesforce Experience Cloud가 활성화된 경우 사용할 수 있습니다.
    type: string
  - name: Platform
    설명: 로그인 이벤트 동안 사용된 운영 체제 이름과 버전입니다. 플랫폼 이름을 사용할 수 없으면 "Unknown"이 반환됩니다. 예: Mac OSX 또는 iOS/Mac.
    type: string
  - name: PolicyId
    설명: 이 이벤트와 관련된 트랜잭션 보안 정책의 ID입니다. 예: 0NIB000000000KOOAY.
    type: string
  - name: PolicyOutcome
    설명: '트랜잭션 정책의 결과입니다. 가능한 값은 Block, Error, ExemptNoAction, FailedInvalidPassword, FailedPasswordLockout, MeteringBlock, MeteringNoAction, NoAction, Notified, TwoFAAutomatedSuccess, TwoFADenied, TwoFAFailedGeneralError, TwoFAFailedInvalidCode, TwoFAFailedTooManyAttempts, TwoFAInitiated, TwoFAInProgress, TwoFANoAction, TwoFARecoverableError, TwoFAReportedDenied, TwoFASucceeded입니다.'
    type: string
  - name: PostalCode
    설명: "사용자의 IP 주소가 물리적으로 위치한 우편번호입니다. 이 값은 현지화되지 않습니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    type: string
  - name: RelatedEventIdentifier
    설명: 관련 이벤트의 EventIdentifier를 나타냅니다. 예: bd76f3e7-9ee5-4400-9e7f-54de57ecd79c. 이 필드는 이 이벤트가 모니터링하는 활동에 다중 인증과 같은 추가 인증이 필요할 때만 채워집니다. 이 경우 Salesforce는 더 많은 이벤트를 생성하고 새 이벤트의 RelatedEventIdentifier 필드에 원래 이벤트의 EventIdentifier 필드 값을 설정합니다. 이 필드를 EventIdentifier 필드와 함께 사용하여 모든 관련 이벤트를 연관시킵니다. 추가 인증이 필요하지 않으면 이 필드는 비어 있습니다.
    type: string
    indicators:
      - trace_id
  - name: RemoteIdentifier
    설명: 향후 사용을 위해 예약됨.
    type: string
  - name: ReplayId
    설명: 시스템에 의해 채워지며 이벤트 스트림에서 이벤트의 위치를 나타내는 ID 값입니다. Replay ID 값이 연속된 이벤트에 대해 연속적이라고 보장되지는 않습니다. 구독자는 replay ID 값을 저장한 뒤 재구독 시 이를 사용하여 보존 기간 내에 있는 누락된 이벤트를 검색할 수 있습니다.
    type: string
  - name: SessionKey
    설명: 사용자의 고유 세션 ID입니다. 이 값을 사용하여 세션 내의 모든 사용자 이벤트를 식별합니다. 사용자가 로그아웃한 후 다시 로그인하면 새 세션이 시작됩니다. 예: vMASKIU6AxEr+Op5.
    type: string
    indicators:
      - trace_id
  - name: SessionLevel
    설명: '세션 수준 보안은 연결된 앱 및 보고서와 같이 이를 지원하는 기능에 대한 사용자 액세스를 제어합니다. 가능한 값은 HIGH_ASSURANCE, LOW, STANDARD입니다.'
    type: string
  - name: SourceIp
    설명: 로그인 중 Salesforce에 처음 도달하는 들어오는 클라이언트 요청의 IP 주소입니다. 예: 126.7.4.2. 하나 이상의 HTTP 프록시를 통해 리디렉션되는 클라이언트의 경우, 이 필드는 Salesforce에 도달하는 첫 번째 프록시의 IP 주소를 저장합니다. 이러한 경우 원본 IP를 더 잘 식별하려면 대신 ForwardedForIp 필드를 확인하세요.
    type: string
    indicators:
      - ip
  - name: Status
    설명: 시도된 로그인의 상태를 표시합니다. 상태는 성공 또는 실패 사유 중 하나입니다.
    type: string
  - name: Subdivision
    설명: "사용자의 IP 주소가 물리적으로 위치한 세부 구역의 이름입니다. 미국에서는 일반적으로 주 이름입니다(예: Pennsylvania). 이 값은 현지화되지 않습니다. 이 필드는 API 버전 47.0 이상에서 사용할 수 있습니다. 참고: 지리 위치 기술의 특성상 이 필드의 정확도는 달라질 수 있습니다."
    type: string
  - name: TlsProtocol
    설명: '로그인에 사용된 TLS 프로토콜 버전입니다. 유효한 값은 TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3, Unknown입니다.'
    type: string
  - 이름: UserId
    설명: 사용자의 고유 ID입니다. 예: 005000000000123.
    type: string
    indicators:
      - actor_id
  - name: Username
    설명: user@company.com 형식의 사용자 이름입니다.
    type: string
    indicators:
      - username
      - email
  - name: UserType
    설명: '사용자 라이선스의 범주입니다. 각 UserType은 하나 이상의 UserLicense 레코드와 연결됩니다. 각 UserLicense는 하나 이상의 프로필과 연결됩니다. 유효한 값은 CsnOnly, CspLitePortal, CustomerSuccess, Guest, PowerCustomerSuccess, PowerPartner, SelfService, Standard입니다.'
    type: string
  - name: CreatedDate
    설명: CreatedDate 필드
    type: timestamp
    timeFormats:
      - rfc3339
  - name: CreatedById
    설명: 로그인 이벤트를 생성한 사용자의 ID입니다.
    type: string
    indicators:
      - trace_id
  - name: Operation
    설명: 이벤트를 생성한 API 호출입니다. 예: Query.
    type: string
  - name: QueriedEntities
    설명: 이벤트와 관련된 엔터티 유형입니다.
    type: string
  - name: RequestIdentifier
    설명: 단일 트랜잭션의 고유 ID입니다. 트랜잭션에는 하나 이상의 이벤트가 포함될 수 있습니다. 주어진 트랜잭션의 각 이벤트는 동일한 REQUEST_ID를 가집니다. 예: 3nWgxWbDKWWDIk0FKfF5D.
    type: string
    indicators:
      - trace_id
  - name: RowsProcessed
    설명: 현재 작업의 총 행 수입니다. 예: 2500.
    유형: float
  - name: Score
    설명: 이 이벤트가 추적하는 API 실행 또는 내보내기의 이상 점수를 나타내는 0에서 1 사이의 숫자입니다. 이상 점수는 사용자의 현재 API 활동이 평소 활동과 어떻게 다른지 보여줍니다. 낮은 점수는 사용자의 현재 API 활동이 평소 활동과 비슷함을 나타냅니다. 높은 점수는 다르다는 것을 나타냅니다.
    유형: float
  - name: SecurityEventData
    설명: 이 이상 이벤트를 유발한 API 활동에 대한 기능 집합입니다. 예를 들어, 사용자가 일반적으로 10개의 계정을 다운로드하지만 이후 그 패턴에서 벗어나 1,000개의 계정을 다운로드하는 경우 이 이벤트가 트리거되고 기여한 기능이 이 필드에 캡처됩니다. 가능한 기능에는 행 수, 열 수, 평균 행 크기, 요일, 보고서 활동에 사용된 브라우저의 사용자 에이전트가 포함됩니다. 이 필드에 캡처된 데이터는 특정 기능이 이 이상 이벤트의 트리거에 얼마나 기여했는지도 백분율로 보여줍니다. 데이터는 JSON 형식입니다.
    type: string
  - name: Summary
    설명: '이 이벤트가 생성되도록 한 API 이상에 대한 텍스트 요약입니다. 예: API was exported from an infrequent network (BigLeaf Networks Inc.) API was generated with an unusually high number of rows (111141).'
    type: string
  - name: Uri
    설명: 요청을 수신하는 페이지의 URI입니다.
    type: string
    indicators:
      - url
      - hostname
  - name: UserAgent
    설명: HTTP 요청에 사용된 UserAgent로, 서버에서 후처리됩니다.
    type: string
  - name: ActionName
    설명: 작업 이름입니다.
    type: string
  - name: BotId
    설명: 봇의 ID입니다.
    type: string
  - name: BotSessionIdentifier
    설명: 봇 세션 ID입니다.
    type: string
  - name: Client
    설명: API 이벤트를 실행한 서비스입니다. 인식되지 않는 클라이언트를 사용하는 경우 이 필드는 "Unknown" 또는 빈 값을 반환합니다.
    type: string
  - name: ConnectedAppId
    설명: API 호출과 관련된 연결된 앱의 15자 ID입니다. 예: 0H4RM00000000Kr0AI. ConnectedAppID 필드는 호출이 OAuth 2.0 인증 프로세스를 트리거할 때 채워지며, 이 프로세스는 사용자를 대신하여 Salesforce 데이터에 액세스하도록 승인된 연결된 앱을 식별합니다. 호출과 연결된 사용자가 이미 활성 인증 토큰을 가지고 있는 경우 ConnectedAppID는 null 값으로 설정됩니다.
    type: string
    indicators:
      - trace_id
  - name: ElapsedTime
    설명: 요청이 완료되는 데 걸린 시간(밀리초)입니다. 이 값의 측정은 쿼리 실행 전에 시작되어 쿼리 완료 시 종료됩니다. 네트워크를 통해 결과를 반환하는 데 걸리는 시간은 포함되지 않습니다.
    유형: bigint
  - name: PlannerId
    설명: 에이전트 플래너의 ID입니다.
    type: string
    indicators:
      - trace_id
  - name: Query
    설명: SOQL 쿼리입니다. 예: SELECT id FROM Lead.
    type: string
  - name: Records
    설명: 조회된 오브젝트의 메타데이터를 나타내는 JSON 문자열입니다. 이 메타데이터에는 엔터티 유형별 쿼리 결과 수와 엔터티 ID가 포함됩니다. Records 필드는 BULK API 쿼리의 경우 null 값으로 설정됩니다. ApiEventStream의 Bulk API 쿼리는 Records 필드의 크기 때문에 대역폭 제한을 초과할 수 있습니다. 페이로드 크기를 줄이기 위해 Records 필드는 null 값으로 설정됩니다.
    type: json
  - name: RowsReturned
    설명: 현재 API 배치에서 반환된 데이터 행 수입니다. RowsProcessed가 API 배치 크기보다 작으면 RowsReturned는 RowsProcessed와 같습니다. RowsProcessed가 API 배치 크기보다 크면 RowsReturned는 API 배치 크기 또는 마지막 배치의 행 수와 같습니다.
    유형: float
  - name: AcceptLanguage
    설명: '클라이언트가 이해하는 영어와 같은 자연어를 지정하는 HTTP 헤더 목록입니다. 예: zh, en-US;q=0.8, en;q=0.6.'
    type: string
  - name: CanDownloadPdf
    설명: 다운로드한 PDF가 다른 파일 형식에서 변환되었는지 여부를 나타냅니다. 기본값은 false입니다.
    type: boolean
  - name: ContentSize
    설명: 문서 크기(바이트)입니다.
    유형: bigint
  - name: DocumentId
    설명: 다운로드 중인 문서의 18자 ID입니다. ID는 ContentDocument 오브젝트에 대한 참조입니다. 일부 경우 FileAction API_DOWNLOAD에서는 DocumentId가 채워지지 않습니다.
    type: string
    indicators:
      - trace_id
  - name: FileAction
    설명: "파일에 대해 수행된 작업입니다. 유효한 값은 API_DOWNLOAD, PREVIEW, UI_DOWNLOAD, UPLOAD입니다. 이미 브라우저 캐시에 있는 이미지에 대해 PREVIEW 작업이 수행되면 Transaction Security의 차단 기능에 영향이 있습니다. 이 필드는 API 버전 58.0 이상에서 사용할 수 있습니다."
    type: string
  - name: FileName
    설명: 파일 확장자를 포함한 파일 이름입니다. FileAction API_DOWNLOAD에서는 FileName이 채워지지 않습니다.
    type: string
  - name: FileSource
    설명: "문서의 원본입니다. 유효한 값은 다음과 같습니다: 'S' — 문서가 Salesforce 내부에 있습니다. 레이블은 Salesforce입니다. 'E' — 문서가 Salesforce 외부에 있습니다. 레이블은 External입니다. 'L' — 문서가 소셜 네트워크에 있으며 Social Customer Service를 통해 액세스됩니다. 레이블은 Social Customer Service입니다."
    type: string
  - name: FileType
    설명: 파일의 콘텐츠 유형입니다. 예: PDF.
    type: string
  - name: IsLatestVersion
    설명: 파일이 가장 최신 버전인지(true), 아닌지(false)를 나타냅니다. 기본값은 false입니다.
    type: boolean
  - name: ProcessDuration
    설명: 파일을 다운로드하는 데 걸린 시간(밀리초)입니다.
    유형: float
  - name: VersionId
    설명: Salesforce CRM Content 또는 Salesforce Files 내 문서의 특정 버전입니다. ID는 ContentVersion 오브젝트에 대한 참조입니다.
    type: string
    indicators:
      - trace_id
  - name: VersionNumber
    설명: 파일의 버전 번호입니다.
    type: string
  - name: RequestedEntities
    설명: '게스트 사용자가 조회한 오브젝트입니다. 예: [" Topic "].'
    type: string
  - name: SoqlCommands
    설명: 게스트 사용자가 실행한 SOQL 명령입니다.
    type: string
  - name: TotalControllerEvents
    설명: 컨트롤러가 트리거된 횟수입니다.
    유형: bigint
  - name: AppName
    설명: 사용자가 액세스한 애플리케이션의 이름입니다.
    type: string
  - name: ConnectionType
    설명: '연결 유형입니다. 가능한 값: CDMA1x, CDMA, EDGE, EVDO0, EVDOA, EVDOB, GPRS, HRPD, HSDPA, HSUPA, LTE, WIFI.'
    type: string
  - name: DeviceId
    설명: 이벤트 추적 시 장치를 식별하는 데 사용되는 고유 식별자입니다. DEVICE_ID는 설치 후 모바일 앱이 처음 실행될 때 생성되는 값입니다.
    type: string
    indicators:
      - trace_id
  - name: DeviceModel
    설명: 장치 모델 이름입니다.
    type: string
  - name: DevicePlatform
    설명: 'name:experience:form 형식의 애플리케이션 경험 유형입니다. Name 값: APP_BUILDER, CUSTOM, S1, SFX. Experience 값: BROWSER, HYBRID. Form 값: DESKTOP, PHONE, TABLET.'
    type: string
  - name: DeviceSessionId
    설명: 페이지 로드 시간을 기준으로 한 사용자의 세션 고유 식별자입니다. 사용자가 페이지를 다시 로드하면 새 세션이 시작됩니다.
    type: string
    indicators:
      - trace_id
  - name: Duration
    설명: 페이지 시작 시간 이후의 지속 시간(밀리초)입니다.
    유형: float
  - name: EffectivePageTime
    설명: 사용자가 페이지 기능과 상호 작용할 수 있기 전에 페이지를 로드하는 데 걸린 시간(밀리초)입니다. 네트워크 속도, 하드웨어 성능, 페이지 복잡성 등 여러 요소가 실제 페이지 시간에 영향을 줄 수 있습니다.
    유형: float
  - name: EffectivePageTimeDeviationErrorType
    설명: "오류의 원인을 나타냅니다. EffectivePageTimeDeviationReason에 PageHasError 값이 포함될 때 이 필드가 채워집니다. 이 필드는 API 버전 58.0 이상에서 사용할 수 있습니다. 가능한 값: Custom—고객 시스템 또는 네트워크에서 발생한 오류. System—Salesforce에서 발생한 오류."
    type: string
  - name: EffectivePageTimeDeviationReason
    설명: "페이지 로딩 시간 편차의 이유입니다. 이 필드는 API 버전 58.0 이상에서 사용할 수 있습니다. 가능한 값: PageInDom—페이지가 캐시에서 로드됨. PageHasError—정의되지 않은 페이지 로딩 오류가 발생함. PageNotLoaded—고객이 로딩 프로세스가 진행 중일 때 페이지에서 벗어나면 페이지 로드가 완료되지 않음. PreviousPageNotLoaded—새 페이지로 이동할 때 이전 페이지가 로딩을 완료하지 못한 경우 다음 페이지에 편차가 있는 것으로 간주됨. 이전 페이지의 불완전한 로딩 프로세스가 다음 페이지 로딩에 영향을 줄 수 있음. InteractionsBeforePageLoaded—페이지가 완전히 로드되기 전에 사용자가 페이지 요소와 상호 작용함. PageInBackgroundBeforeLoaded—페이지에서 백그라운드 로딩 프로세스가 실행됨. 사용자가 다른 브라우저 탭으로 이동하는 경우처럼 페이지와 상호 작용하지 않을 때도 백그라운드 프로세스가 실행될 수 있음."
    type: string
  - name: HasEffectivePageTimeDeviation
    설명: 편차가 감지되면 EffectivePageTimeDeviation이 true로 기록됩니다. 기본값은 false입니다.
    type: boolean
  - name: OsName
    설명: 운영 체제 이름입니다.
    type: string
  - name: OsVersion
    설명: 운영 체제 버전입니다.
    type: string
  - name: PageStartTime
    설명: '페이지가 처음 로드된 시간이며, 밀리초 단위로 측정됩니다. 예: 1471564788642.'
    type: timestamp
    timeFormats:
      - unix_ms
      - rfc3339
  - name: PageUrl
    설명: '사용자가 연 최상위 Lightning Experience 또는 Salesforce 모바일 앱 페이지의 상대 URL입니다. 페이지에는 하나 이상의 Lightning 구성 요소가 포함될 수 있습니다. 여러 레코드 ID가 PageUrl과 연결될 수 있습니다. 예: /sObject/0064100000JXITSAA5/view.'
    type: string
  - name: PreviousPageAppName
    설명: 사용자가 App Launcher에서 액세스한 이전 애플리케이션의 내부 이름입니다.
    type: string
  - name: PreviousPageEntityId
    설명: 이벤트의 이전 페이지 엔터티 고유 식별자입니다.
    type: string
    indicators:
      - trace_id
  - name: PreviousPageEntityType
    설명: 이벤트의 이전 페이지 엔터티 유형입니다.
    type: string
  - name: PreviousPageUrl
    설명: '사용자가 연 이전 Lightning Experience 또는 Salesforce 모바일 앱 페이지의 상대 URL입니다. 예: /sObject/006410000.'
    type: string
  - name: RecordId
    설명: 보고 있거나 편집 중인 레코드의 id입니다. 예: 001RM000003cjx6YAA.
    type: string
    indicators:
      - trace_id
  - name: SdkAppType
    설명: '모바일 SDK 애플리케이션 유형입니다. 가능한 값: HYBRID, HYBRIDLOCAL, HYBRIDREMOTE, NATIVE, REACTNATIVE.'
    type: string
  - name: SdkAppVersion
    설명: 애플리케이션이 사용하는 모바일 SDK 버전입니다.
    type: string
  - name: SdkVersion
    설명: '모바일 SDK 애플리케이션 버전 번호입니다. 예: 5.0.'
    type: string
  - name: ColumnHeaders
    설명: 목록 보기의 열 머리글을 쉼표로 구분한 값입니다. 이 값은 UI에 표시되는 레이블이 아니라 API 이름입니다. 예: Name, BillingState, Phone, Type, Owner.Alias, CaseNumber, Contact.Name, Subject, Status, Priority, CreatedDate, Owner.NameOrAlias.
    type: string
  - name: DeveloperName
    설명: API에서 오브젝트의 고유 이름입니다. 이 이름은 밑줄과 영숫자 문자만 포함하며, 조직 내에서 고유합니다. 비어 있으면 목록 보기는 기본 목록 보기이며(예: Salesforce Classic에서 사용자가 Groups 탭을 클릭할 때 표시되는 목록 보기) 사용자가 명시적으로 만든 것이 아닙니다. 예: AllAccounts 또는 AllOpenLeads.
    type: string
  - name: EventSource
    설명: "이벤트의 소스입니다. 가능한 값은 다음과 같습니다: 'API' — 사용자가 API 호출에서 목록 보기를 생성함. 'Classic' — 사용자가 Salesforce Classic UI의 페이지에서 목록 보기를 생성함. 'Lightning' — 사용자가 Lightning Experience UI의 페이지에서 목록 보기를 생성함."
    type: string
  - name: ExecutionIdentifier
    설명: 목록 보기 실행 데이터가 여러 목록 보기 이벤트로 나뉘면 이 고유 식별자를 사용하여 여러 데이터 청크를 연관시킵니다. 예를 들어 각 청크는 동일한 ExecutionIdentifier a50a4025-84f2-425d-8af9-2c780869f3b5를 가질 수 있으므로 이를 연결하여 목록 보기 실행의 모든 데이터를 가져올 수 있습니다. Sequence 필드에는 여러 이벤트의 순서를 나타내는 증가하는 시퀀스 번호가 포함됩니다.
    type: string
    indicators:
      - trace_id
  - name: FilterCriteria
    설명: '이벤트가 캡처된 시점의 목록 보기 필터 기준을 나타내는 JSON 문자열입니다. 예: {"whereCondition":{"type":"soqlCondition","field":"Type","operator":"equals","values":["''Prospect''"]}}.'
    type: json
  - name: ListViewId
    설명: 이 이벤트와 관련된 목록 보기의 ID입니다. 비어 있으면 목록 보기는 기본 목록 보기이며(예: Salesforce Classic에서 사용자가 Groups 탭을 클릭할 때 표시되는 목록 보기) 사용자가 명시적으로 만든 것이 아닙니다. 예: 00BB0000001c73kMAA.
    type: string
    indicators:
      - trace_id
  - 이름: Name
    설명: 목록 보기/보고서의 표시 이름입니다. 보고서 미리 보기의 경우 값은 null입니다. 비어 있으면 목록 보기는 기본 목록 보기이며(예: Salesforce Classic에서 사용자가 Groups 탭을 클릭할 때 표시되는 목록 보기) 사용자가 명시적으로 만든 것이 아닙니다. 예: All Accounts 및 All Open Leads.
    type: string
  - name: NumberOfColumns
    설명: 목록 보기의 열 수입니다.
    유형: bigint
  - name: OrderBy
    설명: 목록 보기가 정렬되는 열입니다. 예를 들어 계정 목록 보기가 이름 기준 알파벳순으로 정렬되어 있으면 OrderBy 값은 [Name ASC NULLS FIRST, Id ASC NULLS FIRST]입니다. 목록이 유형 기준 알파벳순으로 정렬되어 있으면 OrderBy 값은 [Type ASC NULLS FIRST, Id ASC NULLS FIRST]입니다.
    type: string
  - name: OwnerId
    설명: 목록 보기를 소유한 조직 또는 사용자의 ID입니다. 목록 보기가 저장되지 않은 경우 이 값은 UserId와 같습니다. 예: 005B0000001vURvIAM.
    type: string
    indicators:
      - trace_id
  - name: Scope
    설명: "목록 보기의 필터 기준을 나타냅니다. 가능한 값은 다음과 같습니다: Delegated—다른 사용자에게 작업을 위임한 레코드(예: 위임된 작업). Everything—모든 레코드(예: All Opportunities). Mine—목록 보기를 실행하는 사용자가 소유한 레코드(예: My Opportunities). MineAndMyGroups—목록 보기를 실행하는 사용자가 소유한 레코드 및 사용자의 큐에 할당된 레코드. MyTerritory—목록 보기를 보는 사용자의 지역 내 레코드. 이 옵션은 조직에서 지역 관리가 활성화된 경우 사용할 수 있습니다. MyTeamTerritory—목록 보기를 보는 사용자의 팀 지역 내 레코드. 이 옵션은 조직에서 지역 관리가 활성화된 경우 사용할 수 있습니다. Queue—큐에 할당된 레코드. Team—팀에 할당된 레코드."
    type: string
  - name: Sequence
    설명: 특정 목록 보기 실행으로 인해 생성된 여러 이벤트의 순서를 나타내는 증가 시퀀스 번호입니다. 목록 보기 실행에서 많은 레코드가 반환되면 Salesforce는 레코드 크기에 따라 이 데이터를 청크로 분할한 다음 여러 개의 관련 ListViewEventStreams를 생성합니다. 이러한 관련 ListViewEventStreams의 각 필드 값은 Records는 서로 다른 데이터 청크를 포함하고 Sequence는 각 청크를 순서대로 식별한다는 점을 제외하고 동일합니다. 모든 목록 보기 실행에는 다른 목록 보기 실행과 구분하기 위한 고유한 ExecutionIdentifier 값이 있습니다. 단일 목록 보기 실행의 모든 데이터 청크를 보려면 Sequence 및 ExecutionIdentifier 필드를 함께 사용하세요.
    유형: bigint
  - name: DelegatedOrganizationId
    설명: 다른 사용자로 로그인하는 사용자의 조직 Id입니다. 예: 00Dxx0000001gEH.
    type: string
    indicators:
      - trace_id
  - name: DelegatedUsername
    설명: 다른 사용자로 로그인하는 관리자의 사용자 이름입니다. 예: admin@company.com.
    type: string
    indicators:
      - username
      - email
  - name: LoginAsCategory
    설명: '사용자가 다른 사용자로 로그인하는 방식을 나타냅니다. 가능한 값은 다음과 같습니다: OrgAdmin—관리자가 개별 사용자로 Salesforce에 로그인합니다. 조직 설정에 따라 개별 사용자가 관리자에게 로그인 액세스를 허용합니다. Community—Salesforce Experience Cloud 사이트에 대한 액세스 권한을 부여받은 사용자가 로그인합니다.'
    type: string
  - name: TargetUrl
    설명: 다른 사용자로 로그인에 성공한 후 리디렉션되는 URL입니다.
    type: string
    indicators:
      - url
      - hostname
  - name: HasExternalUsers
    설명: true인 경우 권한 변경을 유발한 작업의 영향을 외부 사용자가 받습니다. 기본값은 false입니다.
    type: boolean
  - name: ImpactedUserIds
    설명: 이벤트의 영향을 받은 사용자 ID를 쉼표로 구분한 목록입니다. 최대 1,000개의 사용자 ID가 포함됩니다. 예를 들어 두 사용자에게 할당된 권한 집합이 업데이트되면 해당 사용자 ID가 이 필드에 기록됩니다.
    type: json
  - name: ParentIdList
    설명: 영향을 받은 권한 집합 또는 권한 집합 그룹의 ID입니다.
    type: json
  - name: ParentNameList
    설명: 영향을 받은 권한 집합 또는 권한 집합 그룹의 이름입니다.
    type: json
  - name: PermissionExpirationList
    설명: 추가된 권한이 취소되는 시점을 지정하는 PermissionSetAssignment.ExpirationDate 필드의 타임스탬프를 쉼표로 구분한 목록입니다. 만료 타임스탬프가 지정되지 않았거나 영향을 받는 사용자에 대해 권한이 제거되면 이 값은 null입니다.
    type: json
  - name: PermissionList
    설명: "이벤트에서 활성화되거나 비활성화된 권한 목록입니다. 이러한 권한에는 AssignPermissionSets(권한 집합 할당), AuthorApex(Apex 작성), CustomizeApplication(애플리케이션 사용자 지정), ForceTwoFactor(사용자 인터페이스 로그인용 다중 인증), FreezeUsers(사용자 동결), ManageEncryptionKeys(암호화 키 관리), ManageInternalUsers(내부 사용자 관리), ManagePasswordPolicies(암호 정책 관리), ManageProfilesPermissionsets(프로필 및 권한 집합 관리), ManageRoles(역할 관리), ManageSharing(공유 관리), ManageUsers(사용자 관리), ModifyAllData(모든 데이터 수정), MonitorLoginHistory(로그인 기록 모니터링), PasswordNeverExpires(암호 만료 안 함), ResetPasswords(사용자 암호 재설정 및 사용자 잠금 해제), ViewAllData(모든 데이터 보기)가 포함될 수 있습니다. 트랜잭션 보안 정책에서 이 이벤트를 사용할 때는 권한의 레이블이 아니라 API 이름을 사용하고, Equals 대신 Contains 연산자를 사용하세요."
    type: json
  - name: PermissionType
    설명: '이벤트에서 업데이트되는 권한 유형입니다. 가능한 값은 ObjectPermission, UserPermission입니다.'
    type: string
  - name: UserCount
    설명: 이벤트의 영향을 받은 사용자 수입니다. 이 필드의 최대 값은 1,000입니다. 사용자가 1,000회 이상 나타나면 값은 1,000으로 유지됩니다.
    type: string
  - name: Report
    설명: 이 이상 이벤트가 탐지된 보고서의 보고서 ID입니다. 예: 00OD0000001leVCMAY. 이 이상이 사용자가 저장되지 않은 보고서를 실행한 결과라면 이 필드의 값은 null입니다.
    type: string
    indicators:
      - trace_id
  - name: DashboardId
    설명: 보고서가 포함되어 있던 대시보드의 ID입니다. 예: 01ZB0000000PmoQ.
    type: string
    indicators:
      - trace_id
  - name: DashboardName
    description: 보고서가 포함되어 있던 대시보드의 제목입니다.
    type: string
  - 이름: Description
    description: 보고서의 설명입니다.
    type: string
  - name: DisplayedFieldEntities
    description: 보고서에 표시되는 필드의 API 값이며, 그룹화된 열 필드의 엔터티 이름을 포함합니다. 예: [ACCOUNTS, OWNERS].
    type: string
  - name: ExportFileFormat
    description: '사용자가 보고서를 내보낸 경우 이 값은 내보낸 보고서의 형식을 나타냅니다. 가능한 값은 CSV, Excel입니다.'
    type: string
  - name: Format
    description: '보고서의 형식입니다. 가능한 값은 Matrix, MultiBlock, Summary, Tabular입니다.'
    type: string
  - name: GroupedColumnHeaders
    description: 요약, 매트릭스, 조인된 보고서에서 그룹화된 열 필드의 쉼표로 구분된 값입니다. 예: [USERNAME, ACCOUNT.NAME, TYPE, DUE_DATE, LAST_UPDATE, ADDRESS1_STATE].
    type: string
  - name: IsScheduled
    description: TRUE이면 보고서가 예약된 것입니다. FALSE이면 보고서가 예약되지 않은 것입니다.
    type: boolean
  - name: ReportId
    description: 이 이벤트와 연결된 보고서의 ID입니다. 예: 00OB00000032FHdMAM.
    type: string
    indicators:
      - trace_id
  - name: CurrentIp
    description: 이전 지문과 달라진 새로 관찰된 지문의 IP 주소입니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 이전 IP 주소는 PreviousIp 필드를 참조하세요. IP 주소가 관찰된 지문 차이에 기여하지 않은 경우 이 필드의 값은 PreviousIp 필드 값과 같습니다. 예: 126.7.4.2.
    type: string
    indicators:
      - ip
  - name: CurrentPlatform
    description: 이전 지문과 달라진 새로 관찰된 지문의 플랫폼입니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 이전 플랫폼은 PreviousPlatform 필드를 참조하세요. 플랫폼이 관찰된 지문 차이에 기여하지 않은 경우 이 필드의 값은 PreviousPlatform 필드 값과 같습니다. 예: MacIntel 또는 Win32.
    type: string
  - name: CurrentScreen
    description: 이전 지문과 달라진 새로 관찰된 지문의 화면입니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 이전 화면은 PreviousScreen 필드를 참조하세요. 화면이 관찰된 지문 차이에 기여하지 않은 경우 이 필드의 값은 PreviousScreen 필드 값과 같습니다. 예: (900.0,1440.0) 또는 (720,1280).
    type: string
  - name: CurrentUserAgent
    description: 이전 지문과 달라진 새로 관찰된 지문의 사용자 에이전트입니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 이전 사용자 에이전트는 PreviousUserAgent 필드를 참조하세요. 사용자 에이전트가 관찰된 지문 차이에 기여하지 않은 경우 이 필드의 값은 PreviousUserAgent 필드 값과 같습니다. 예: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36.
    type: string
  - name: CurrentWindow
    description: 이전 지문과 달라진 새로 관찰된 지문의 브라우저 창입니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 이전 창은 PreviousWindow 필드를 참조하세요. 창이 관찰된 지문 차이에 기여하지 않은 경우 이 필드의 값은 PreviousWindow 필드 값과 같습니다. 예: (1200.0,1920.0).
    type: string
  - name: PreviousIp
    description: 이전 지문의 IP 주소입니다. 새로 관찰된 지문의 IP 주소는 이 값과 달라집니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 새로 관찰된 IP 주소는 CurrentIp 필드를 참조하세요. 예: 128.7.5.2.
    type: string
    indicators:
      - ip
  - name: PreviousPlatform
    description: 이전 지문의 플랫폼입니다. 새로 관찰된 지문의 플랫폼은 이 값과 달라집니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 새로 관찰된 플랫폼은 CurrentPlatform 필드를 참조하세요. 예: Win32 또는 iPhone.
    type: string
  - name: PreviousScreen
    description: 이전 지문의 화면입니다. 새로 관찰된 지문의 화면은 이 값과 달라집니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 새로 관찰된 화면은 CurrentScreen 필드를 참조하세요. 예: (1200.0,1920.0).
    type: string
  - name: PreviousUserAgent
    description: 이전 지문의 사용자 에이전트입니다. 새로 관찰된 지문의 사용자 에이전트는 이 값과 달라집니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 새로 관찰된 사용자 에이전트는 CurrentUserAgent 필드를 참조하세요. 예: Mozilla/5.0 (iPhone; CPU iPhone OS 13_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko).
    type: string
  - name: PreviousWindow
    description: 이전 지문의 브라우저 창입니다. 새로 관찰된 지문의 창은 이 값과 달라집니다. 현재 값과 이전 값의 차이는 세션 하이재킹 공격이 발생했음을 나타내는 지표 중 하나입니다. 새로 관찰된 창은 CurrentWindow 필드를 참조하세요. 예: (1600.0,1920.0).
    type: string
  - name: Message
    description: 엔터티에 대해 수행 중인 작업이 실패한 경우의 실패 메시지입니다(OperationStatus=Failure).
    type: string
  - name: OperationStatus
    description: '엔터티에 대해 수행된 작업(예: 생성)이 성공했는지 실패했는지를 나타냅니다. 작업이 시작되면 값은 항상 INITIATED입니다. 가능한 값은 다음과 같습니다. Failure—작업이 실패했습니다. Initiated—작업이 시작되었습니다. 참고: 생성 및 업데이트 작업은 작업 실패 후 추가 OperationStatus=Initiated 이벤트를 생성할 수 있습니다. 이 추가 레코드는 무시하세요. Success—작업이 성공했습니다.'
    type: string
```


---

# 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/supported-logs/salesforce/real-time-events.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.
