Azure Monitor 로그의 쿼리 감사
로그 쿼리 감사 로그는 Azure Monitor에서 실행되는 로그 쿼리에 대한 원격 분석을 제공합니다. 여기에는 쿼리를 실행한 시간, 실행한 사람, 사용한 도구, 쿼리 텍스트 및 쿼리 실행을 설명하는 성능 통계와 같은 정보가 포함됩니다.
쿼리 감사 구성
쿼리 감사는 Log Analytics 작업 영역에서 진단 설정을 통해 사용하도록 설정됩니다. 이렇게 하면 감사 데이터를 구독의 현재 작업 영역 또는 다른 작업 영역으로 보내거나, Azure 외부로 보내기 위해 Azure Event Hubs로 보내거나, 보관을 위해 Azure Storage로 보낼 수 있습니다.
Azure Portal
다음 위치 중 하나에서 Azure Portal의 Log Analytics 작업 영역에 대한 진단 설정에 액세스합니다.
Azure Monitor 메뉴에서 진단 설정을 선택한 다음 작업 영역을 찾아 선택합니다.
Log Analytics 작업 영역 메뉴에서 작업 영역을 선택한 다음, 진단 설정을 선택합니다.
Resource Manager 템플릿
Log Analytics 작업 영역에 대한 진단 설정에서 예제 Resource Manager 템플릿을 가져올 수 있습니다.
데이터 감사
쿼리를 실행할 때마다 감사 레코드가 만들어집니다. Log Analytics 작업 영역으로 데이터를 보내면 LAQueryLogs라는 테이블에 저장됩니다. 다음 표에는 감사 데이터의 각 레코드에 있는 속성이 설명되어 있습니다.
필드 | 설명 |
---|---|
TimeGenerated | 쿼리가 제출된 UTC 시간입니다. |
CorrelationId | 쿼리를 식별하는 고유 ID입니다. Microsoft에 문의하여 도움을 받을 때 문제 해결 시나리오에 사용할 수 있습니다. |
AADObjectId | 쿼리를 시작한 사용자 계정의 Microsoft Entra ID입니다. |
AADTenantId | 쿼리를 시작한 사용자 계정의 테넌트 ID입니다. |
AADEmail | 쿼리를 시작한 사용자 계정의 테넌트 이메일입니다. |
AADClientId | 쿼리를 시작하는 데 사용되는 애플리케이션의 ID 및 확인된 이름입니다. |
RequestClientApp | 쿼리를 시작하는 데 사용되는 애플리케이션의 확인된 이름입니다. 자세한 내용은 요청 클라이언트 앱을 참조하세요. |
QueryTimeRangeStart | 쿼리에 대해 선택한 시간 범위의 시작입니다. Log Analytics에서 쿼리를 시작한 경우와 같은 특정 시나리오에서는 이 값이 채워지지 않을 수 있으며 시간 범위는 시간 선택기가 아니라 쿼리 내에 지정됩니다. |
QueryTimeRangeEnd | 쿼리에 대해 선택한 시간 범위의 끝입니다. Log Analytics에서 쿼리를 시작한 경우와 같은 특정 시나리오에서는 이 값이 채워지지 않을 수 있으며 시간 범위는 시간 선택기가 아니라 쿼리 내에 지정됩니다. |
QueryText | 실행된 쿼리의 텍스트입니다. |
RequestTarget | API URL은 쿼리를 제출하는 데 사용되었습니다. |
RequestContext | 쿼리를 실행하도록 요청된 리소스 목록입니다. 최대 세 개의 문자열 배열(작업 영역, 애플리케이션 및 리소스)을 포함합니다. 구독 또는 리소스 그룹 대상 쿼리는 리소스로 표시됩니다. RequestTarget에 포함된 대상을 포함합니다. 해결할 수 있는 경우 각 리소스에 대한 리소스 ID가 포함됩니다. 리소스에 액세스하는 동안 오류가 반환되는 경우 이를 해결하지 못할 수 있습니다. 이 경우 쿼리의 특정 텍스트가 사용됩니다. 쿼리에서 여러 구독에 존재하는 작업 영역 이름과 같은 모호한 이름을 사용하는 경우 이 모호한 이름이 사용됩니다. |
RequestContextFilters | 쿼리 호출의 일부로 지정된 필터 세트입니다. 다음과 같은 최대 3개의 가능한 문자열 배열을 포함합니다. - ResourceTypes - 쿼리 범위를 제한하는 리소스 종류 - Workspaces - 쿼리를 제한할 작업 영역 목록 - WorkspaceRegions - 쿼리를 제한할 작업 영역 지역 목록 |
ResponseCode | 쿼리가 제출되었을 때 반환된 HTTP 응답 코드입니다. |
ResponseDurationMs | 응답이 반환될 시간입니다. |
ResponseRowCount | 쿼리에서 반환한 총 이벤트 수입니다. |
StatsCPUTimeMs | 컴퓨팅, 구문 분석 및 데이터 가져오기에 사용되는 총 계산 시간입니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
StatsDataProcessedKB | 쿼리를 처리하기 위해 액세스한 데이터의 양입니다. 대상 테이블의 크기, 사용된 시간 범위, 적용된 필터 및 참조되는 열 수의 영향을 받습니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
StatsDataProcessedStart | 쿼리를 처리하기 위해 액세스한 가장 오래된 데이터의 시간입니다. 적용된 필터 및 쿼리 명시적 시간 범위의 영향을 받습니다. 데이터 분할로 인해 명시적 시간 범위보다 클 수 있습니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
StatsDataProcessedEnd | 쿼리를 처리하기 위해 액세스한 가장 최신 데이터의 시간입니다. 적용된 필터 및 쿼리 명시적 시간 범위의 영향을 받습니다. 데이터 분할로 인해 명시적 시간 범위보다 클 수 있습니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
StatsWorkspaceCount | 쿼리에서 액세스하는 작업 영역의 수입니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
StatsRegionCount | 쿼리에서 액세스하는 지역의 수입니다. 쿼리가 상태 코드 200으로 반환되는 경우에만 채워집니다. |
요청 클라이언트 앱
RequestClientApp | 설명 |
---|---|
AAPBI | Power BI와 Log Analytics 통합 |
AppAnalytics | Azure Portal의 Log Analytics 환경입니다. |
AppInsightsPortalExtension | 통합 문서 또는 Application Insights |
ASC_Portal | 클라우드용 Microsoft Defender. |
ASI_Portal | Sentinel입니다. |
AzureAutomation | Azure Automation. |
AzureMonitorLogsConnector | Azure Monitor 로그 커넥터입니다. |
csharpsdk | Log Analytics 쿼리 API입니다. |
Draft-Monitor | Azure Portal의 로그 검색 경고 만들기 |
Grafana | Grafana 커넥터입니다. |
IbizaExtension | Azure Portal의 Log Analytics 환경입니다. |
infraInsights/container | 컨테이너 인사이트입니다. |
infraInsights/vm | VM 인사이트입니다. |
LogAnalyticsExtension | Azure 대시보드입니다. |
LogAnalyticsPSClient | Log Analytics 쿼리 API입니다. |
OmsAnalyticsPBI | Power BI와 Log Analytics의 통합입니다. |
PowerBIConnector | Power BI와 Log Analytics의 통합입니다. |
Sentinel-Investigation-Queries | Sentinel입니다. |
Sentinel-DataCollectionAggregator | Sentinel입니다. |
Sentinel-analyticsManagement-customerQuery | Sentinel입니다. |
Unknown | Log Analytics 쿼리 API입니다. |
UpdateManagement | 업데이트 관리. |
고려 사항
- 쿼리는 사용자 컨텍스트에서 실행되는 경우에만 기록됩니다. Azure 내의 서비스 간 로그는 기록되지 않습니다. 이 제외에 포함되는 두 가지 주요 쿼리 세트는 청구 계산 및 자동화된 경고 실행입니다. 경고의 경우 예약된 경고 쿼리 자체만 기록되지 않습니다. 경고 만들기 화면에서 경고의 초기 실행은 사용자 컨텍스트에서 실행되며 감사 목적으로 사용할 수 있습니다.
- Azure Data Explorer 프록시에서 들어오는 쿼리에 대해서는 성능 통계를 사용할 수 없습니다. 이러한 쿼리에 대한 다른 모든 데이터는 계속 채워집니다.
- 문자열 리터럴을 난독 처리하는 문자열에 대한 h 힌트는 쿼리 감사 로그에 영향을 미치지 않습니다. 쿼리는 문자열이 난독 처리되지 않고 제출된 대로 정확하게 캡처됩니다. 이 데이터를 볼 수 있는 규정 준수 권한이 있는 사용자만 Log Analytics 작업 영역에서 사용할 수 있는 다양한 Kubernetes RBAC 또는 Azure RBAC 모드를 사용하여 이 작업을 수행할 수 있도록 해야 합니다.
- 여러 작업 영역의 데이터를 포함하는 쿼리의 경우 사용자가 액세스할 수 있는 작업 영역에서만 쿼리가 캡처됩니다.
비용
Azure Diagnostic 확장에 대한 비용은 없지만 데이터 수집에 대한 요금이 발생할 수 있습니다. 데이터를 수집하는 대상에 대한 Azure Monitor 가격 책정를 확인하세요.