# 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 이벤트 모니터링](https://docs.panther.com/ko/data-onboarding/supported-logs/salesforce/event-monitoring) 로그를 주기적으로 가져오는 통합.

## 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** 또는 **이벤트 모니터링** 애드온 구독.
  * 다음 **실시간 이벤트 모니터링 데이터 보기** 사용자 권한.

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

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

   <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fv8vrQ2K8DbqKoCGKp8fA%2Fimage.png?alt=media&#x26;token=ae49ef10-5ddb-4097-ba76-482ac260ba4c" alt="Salesforce drop-down menu showing &#x22;Setup&#x22; option"><figcaption></figcaption></figure>
3. 검색 상자에 다음을 입력하고 선택합니다. **이벤트 관리자**.

<figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2F3s0L6apxlGzsi9gCkXHi%2Fimage.png?alt=media&#x26;token=541e1ec9-3fbe-4e71-8c5c-7b6ac0972d9d" alt="Salesforce search bar showing &#x22;Event Manager&#x22;"><figcaption></figcaption></figure>

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

   <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2F6elZWighGLQKXG8yi0Zl%2Fsalesforce-realtime-enable-stream.png?alt=media&#x26;token=c031b3bd-05ea-4c17-9016-65b491db13b4" alt=""><figcaption></figcaption></figure>

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

이벤트 스트리밍을 활성화한 후에는 데이터를 AWS EventBridge로 보내기 위해 Event Relay를 만들어야 합니다.

Event Relay를 생성하는 방법에는 두 가지가 있습니다:

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

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

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

{% columns %}
{% column %}
{% file src="<https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2FYTHyDnfxm2HPjv4SZgJS%2Fsfdc_event_relays.sh?alt=media&token=92c7b631-d1c7-43e7-bf43-60900e3de135>" %}
Linux/Mac
{% endfile %}
{% endcolumn %}

{% column %}
{% file src="<https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2FEXVhiAgF1OEdgdZHOtlf%2Fsfdc_event_relays.ps1?alt=media&token=aa1782df-f57c-4e60-8245-ccf5b0ed4e66>" %}
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의 오른쪽 상단 모서리에 있는 기어 아이콘을 클릭한 다음 **일반**. AWS 정보가 페이지 하단에 표시됩니다.

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

   <figure><img src="https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2FFSiz9CA6oSX02qoiJS1f%2Fimage.png?alt=media&#x26;token=b271b8d4-b608-489f-be9b-7e885e624878" 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의 오른쪽 상단 모서리에 있는 기어 아이콘을 클릭한 다음 **일반**. 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` Real-Time Event Monitoring 이벤트는 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 Relay** 페이지. 다음을 복사하세요. **파트너 이벤트 소스 이름** 각 Event Relay에서. 다음 단계에서 필요합니다.

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

Event Relay 상태를 확인하려면:

1. Salesforce에서 다음으로 이동합니다. **설정** → **Event Relay.**
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 Real-Time Events 통합은 다음 모니터링 이벤트를 지원합니다:

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