# Azure Monitor 로그

## 개요

Panther는 다음을 수집하는 것을 지원합니다 [Azure 모니터 로그](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/data-platform-logs) 공통을 통해 [데이터 전송](https://docs.panther.com/data-onboarding/data-transports) 옵션(예: Azure) [Event Hub](https://docs.panther.com/ko/data-onboarding/data-transports/azure/event-hub) 와 [Blob Storage](https://docs.panther.com/ko/data-onboarding/data-transports/azure/blob-storage).

또한 수집하는 것이 가능합니다 [Microsoft Defender for Cloud](https://azure.microsoft.com/en-us/products/defender-for-cloud/) 이 소스를 사용하여 알러트를 포함하여 [보안 카테고리](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#security-category) 동안 [온보딩 프로세스의 2단계](#step-2-export-azure-monitor-logs-to-azure-blob-storage)를(을) 아래에서 확인하십시오.

## Azure Monitor 로그를 Panther로 온보딩하는 방법

먼저 Panther에서 Azure Blob Storage 또는 Azure Event Hub 소스를 생성한 다음 Azure를 구성하여 해당 위치로 로그를 내보냅니다.

### 1단계: Panther에서 Azure Monitor 소스 생성

1. Panther 콘솔의 왼쪽 탐색 창에서 **구성** > **로그 소스**.
2. 오른쪽 상단에서 클릭하세요 **새로 만들기**.
3. "Azure Monitor"를 검색한 다음 해당 타일을 클릭합니다.
   * 슬라이드 아웃 패널에서 **전송 메커니즘** 우측 상단의 드롭다운은 미리 채워진 상태일 것입니다 **Azure Event Hub** 옵션. 이 선택을 그대로 두거나 **Azure Blob Storage**.
4. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **설정 시작**.
5. Panther의 지침에 따라 다음을 구성하세요 [Azure Event Hub](https://docs.panther.com/ko/data-onboarding/data-transports/azure/event-hub) 이전에 생성한 Snowflake 사용자 이름, 예를 들면 [Azure Blob Storage 소스](https://docs.panther.com/ko/data-onboarding/data-transports/azure/blob-storage).
   * Azure Blob Storage를 선택하고 [2단계: 필요한 Azure 인프라 생성](https://docs.panther.com/ko/data-transports/azure/blob-storage#step-2-create-required-azure-infrastructure) Azure 리소스를 수동으로 생성하기로 선택한 경우(테라폼 대신), [Azure 컨테이너를 생성하는 단계를](https://docs.panther.com/data-onboarding/data-transports/azure/blob-storage#step-5-create-container-and-add-permission)건너뛰세요. 아래 단계 2에서 스토리지 계정에 컨테이너가 자동으로 생성됩니다.

{% hint style="info" %}
대기 시간이 두 옵션 간에 다릅니다: **Blob Storage** 옵션을 선택하면 Panther는 매시간 Azure Monitor 파일을 검색합니다. 선택한 경우 **Event Hub**를 선택하면 수집이 거의 실시간으로 이루어집니다.
{% endhint %}

### 2단계: Azure Monitor 로그 내보내기

Azure Monitor 로그를 Event Hubs 또는 스토리지 계정으로 내보내려면 아래 지침을 따르십시오:

1. Azure 대시보드에서 다음으로 이동합니다 **모니터** 서비&#xC2A4;**.**
2. 왼쪽 탐색 패널에서 클릭합니다 **활동 로그**.
3. 페이지 상단 근처에서 **활동 로그 내보내기**.
4. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **진단 설정 추가**.
5. 페이지에서 **진단 설정** 페이지에서 다음 필드에 대한 값을 입력하세요:
   * **진단 설정 이름**: 설명적인 이름을 입력하세요.
   * **카테고리** (아래 **로그**): 수집하려는 각 로그 카테고리를 선택하십시오:
     * [관리](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#administrative-category)
     * [서비스 상태](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#administrative-category)
     * [리소스 상태](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#resource-health-category)
     * [알러트](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#alert-category)
     * [자동 스케일](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#autoscale-category)
     * [보안](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#security-category) (Microsoft Defender for Cloud)
     * [권장 사항](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#recommendation-category)
     * [정책](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log-schema#policy-category)
   * **대상 세부정보**: 다음 중 하나를 선택하세요 **스토리지 계정으로 보관** 이전에 생성한 Snowflake 사용자 이름, 예를 들면 **이벤트 허브 허브로 스트리밍**, Panther에서 사용한 데이터 전송 메커니즘을 기반으로 [1단계](#step-1-create-the-microsoft-defender-xdr-source-in-panther).
     * 을(를) 선택하면 **스토리지 계정으로 보관**의 **스토리지 계정** 필드에서 스토리지 계정을 선택하세요.
     * 을(를) 선택하면 **이벤트 허브로 스트리밍**의 **이벤트 허브 네임스페이스** 필드에서 이벤트 허브를 선택하세요.
6. 왼쪽 상단 모서리에서 클릭합니다 **"Resource": "\<secret ARN>"**.

### (Blob Storage 전송만 해당) 단계 3: 컨테이너에 역할 할당

{% hint style="warning" %}
이 단계는 1단계에서 Azure Blob Storage를 선택한 경우에만 해당합니다. Azure Event Hub를 사용한 경우 이 단계를 건너뛰세요.
{% endhint %}

1. 방금 생성한 이름의 컨테이너를 클릭합니다 `insights-activity-logs`그런 다음 왼쪽 탐색 막대에서 클릭합니다 **액세스 제어(IAM)**.
2. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **+추가**.\
   ![In the panthertestcontainer3 Access Control (IAM) page, an arrow is drawn to the +Add button](https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-0cf0e7d954d47ee1ba4917a8630b0a8e0c779dbe%2FIAM.webp?alt=media)
3. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **역할 할당 추가**.
4. "Storage Blob Data Reader"를 검색하고 표시되는 일치하는 역할을 선택하세요.\
   ![In the Add role assignment page of the Azure console, "storage blob" has been searched for in the search box. One of the results, Storage Blob Data Reader, is circled.](https://2400888838-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LgdiSWdyJcXPahGi9Rs-2910905616%2Fuploads%2Fgit-blob-50fbb32cdf92d1f99768192395f37a535cc1c844%2Fadd%20role%20assign.webp?alt=media)
5. 을 클릭하세요 **구성원** 탭을 클릭하세요.
6. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **+구성원 선택**.
7. 위에서 생성한 등록된 앱의 이름을 검색하세요 [Azure Blob Storage 소스에서 필수 Azure 인프라를 생성하는 과정 중에](https://docs.panther.com/ko/data-transports/azure/blob-storage#step-2-create-required-azure-infrastructure)를 클릭하고 **선택하세요**.
8. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. **검토+할당**.
   * Panther는 Azure Monitor 파일을 시간마다 한 번 검색하므로 초기 데이터가 Panther에 도착하기까지 최대 한 시간의 지연이 있을 수 있음을 기억하십시오.

## 지원되는 로그 유형

Panther는 Azure.MonitorActivity 스키마로 처리되는 Azure Monitor 활동 로그를 지원합니다.

### Azure.MonitorActivity

```yaml
필드:
  - 이름: time
    required: true
    description: 기록된 이벤트의 타임스탬프(UTC).
    type: timestamp
    timeFormats:
      - rfc3339
      - '%Y-%m-%d %H:%M:%SZ'
      - '%Y-%m-%d %H:%M:%S.%N'
    isEventTime: true
  - name: resourceId
    required: true
    description: 이벤트를 발생시킨 리소스의 리소스 ID. 테넌트 서비스의 경우 /tenants/tenant-id/providers/provider-name 형식입니다.
    type: string
  - name: tenantId
    description: 이 이벤트와 연결된 Active Directory 테넌트의 테넌트 ID. 이 속성은 테넌트 수준 로그에만 사용됩니다. 리소스 수준 로그에는 나타나지 않습니다.
    type: string
  - name: operationName
    required: true
    description: 이 이벤트가 기록하는 작업의 이름(예: Microsoft.Storage/storageAccounts/blobServices/blobs/Read). operationName은 일반적으로 Azure Resource Manager 작업의 형식인 Microsoft.<providerName>/<resourceType>/<subtype>/<Write|Read|Delete|Action>로 모델링되지만 문서화된 Resource Manager 작업이 아닐 수도 있습니다.
    type: string
  - name: operationVersion
    description: 작업이 API(예: http://myservice.windowsazure.net/object?api-version=2016-06-01)를 통해 수행된 경우 해당 작업과 연결된 API 버전. 이 작업에 해당하는 API가 없으면 버전은 향후 작업과 관련된 속성이 변경될 경우를 대비한 해당 작업의 버전을 나타냅니다.
    type: string
  - name: category
    required: true
    description: 기록되는 이벤트의 로그 카테고리. 카테고리는 특정 리소스에서 로그를 활성화하거나 비활성화할 수 있는 세분성입니다. 이벤트의 properties 블롭 내에 나타나는 속성은 특정 로그 카테고리 및 리소스 유형 내에서 동일합니다. 일반적인 로그 카테고리는 감사(Audit), 운영(Operational), 실행(Execution), 요청(Request)입니다.
    type: string
  - name: resultType
    description: 적용 가능한 경우 기록된 이벤트의 상태. 값에는 Started, In Progress, Succeeded, Failed, Active 및 Resolved가 포함됩니다.
    type: string
  - name: resultSignature
    description: 이벤트의 하위 상태. 이 작업이 REST API 호출에 해당하는 경우 이 필드는 해당 REST 호출의 HTTP 상태 코드입니다.
    type: string
  - name: resultDescription
    description: 이 작업의 정적 텍스트 설명; 예: 저장소 파일 가져오기.
    type: string
  - name: durationMs
    description: 작업의 지속 시간(밀리초).
    type: bigint
  - name: callerIpAddress
    description: 작업이 공개적으로 사용 가능한 IP 주소를 가진 엔터티에서 발생하는 API 호출에 해당하는 경우 호출자 IP 주소.
    type: string
    지표:
      - ip
  - name: correlationId
    description: 관련 이벤트 집합을 그룹화하는 데 사용되는 GUID. 일반적으로 두 이벤트가 동일한 operationName 값을 가지지만 서로 다른 두 가지 상태(예: Started 및 Succeeded)를 가지면 동일한 correlationID 값을 공유합니다. 이는 이벤트 간의 다른 관계를 나타낼 수도 있습니다.
    type: string
    지표:
      - trace_id
  - name: identity
    description: 작업을 수행한 사용자 또는 애플리케이션의 ID를 설명하는 JSON 블롭. 일반적으로 이 필드에는 Active Directory의 권한 부여 및 클레임 또는 JWT 토큰이 포함됩니다.
    유형: json
  - 이름: level
    description: 이벤트의 심각도 수준. 값에는 Informational, Warning, Error 및 Critical이 포함됩니다.
    type: string
  - 이름: location
    description: 이벤트를 발생시키는 리소스의 리전; 예: East US 또는 France South.
    type: string
  - name: properties
    description: 이 카테고리의 이벤트와 관련된 모든 확장 속성. 모든 사용자 지정 또는 고유 속성은 스키마의 이 '파트 B' 내부에 배치되어야 합니다.
    유형: json
  - name: roleLocation
    description: 역할의 위치.
    type: string
  - name: providerGuid
    description: 이벤트를 발생시키는 서비스 제공자의 GUID.
    type: string
  - name: providerName
    description: 이벤트를 발생시키는 서비스 제공자의 이름.
    type: string
```
