자습서: 로그 분석 작업 영역 구성
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 감사 및 로그인 로그에 대한 Log Analytics 작업 영역 구성
- KQL(Kusto 쿼리 언어)을 사용하여 쿼리 실행
- 빠른 시작 템플릿을 사용하여 사용자 지정 통합 문서 만들기
- 기존 통합 문서 템플릿에 쿼리 추가
필수 조건
Log Analytics를 사용하여 활동 로그를 분석하려면 다음 역할 및 요구 사항이 필요합니다.
Azure Monitor에 대한 적절한 역할:
- Monitoring Reader
- Log Analytics 독자
- Monitoring Contributor
- Log Analytics 참가자
Microsoft Entra ID에 대한 적절한 역할:
- 보고서 읽기 권한자
- 보안 읽기 권한자
- 전역 판독기
- 보안 관리자
다음 문서를 숙지하세요.
Log Analytics 구성
팁
이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.
이 절차에서는 감사 및 로그인 로그에 대한 Log Analytics 작업 영역을 구성하는 방법을 간략하게 설명합니다. Log Analytics 작업 영역을 구성하려면 작업 영역을 만든 다음 진단 설정을 구성해야 합니다.
작업 영역 만들기
보안 관리 및 Log Analytics 기여자로 Azure Portal 에 로그인합니다.
Log Analytics 작업 영역으로 이동합니다.
만들기를 실행합니다.
Log Analytics 작업 영역 만들기 페이지에서 다음 단계를 수행합니다.
구독을 선택합니다.
리소스 그룹을 선택합니다.
작업 영역에 이름을 지정합니다.
지역을 선택합니다.
검토 + 생성를 선택합니다.
만들기를 선택하고 배포를 기다립니다. 새 작업 영역을 보려면 페이지를 새로 고쳐야 할 수도 있습니다.
진단 설정 구성
진단 설정을 구성하려면 Microsoft Entra 관리 센터로 전환하여 ID 로그 정보를 새 작업 영역으로 보내야 합니다.
최소한 보안 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
ID>모니터링 및 상태>진단 설정으로 찾습니다.
진단 설정 추가를 선택합니다.
진단 설정 페이지에서 다음 단계를 수행합니다.
범주 세부 정보에서 AuditLogs 및 SigninLogs를 선택합니다.
대상 세부 정보에서 Log Analytics에 보내기를 선택한 다음, 새 로그 분석 작업 영역을 선택합니다.
저장을 선택합니다.
이제 Log Analytics의 KQL(Kusto 쿼리 언어)을 사용하여 로그를 쿼리할 수 있습니다. 로그가 채워질 때까지 약 15분 정도 기다려야 할 수 있습니다.
Log Analytics의 쿼리 실행
이 절차에서는 KQL(Kusto 쿼리 언어)을 사용하여 쿼리를 실행하는 방법을 보여줍니다.
쿼리 실행
Microsoft Entra 관리 센터에 보고서 읽기 권한자 이상의 권한으로 로그인합니다.
ID>모니터링 및 상태>Log Analytics로 찾습니다.
검색 텍스트 상자에 쿼리를 입력하고 실행을 선택합니다.
KQL 쿼리 예제
입력 데이터에서 임의의 항목 10개 가져오기:
SigninLogs | take 10
조건부 액세스가 성공한 로그인을 확인합니다.
SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus
성공 횟수:
SigninLogs | where ConditionalAccessStatus == "success" | project UserDisplayName, ConditionalAccessStatus | count
일별 사용자당 성공한 로그인 횟수 집계:
SigninLogs | where ConditionalAccessStatus == "success" | summarize SuccessfulSign-ins = count() by UserDisplayName, bin(TimeGenerated, 1d)
다음과 같이 사용자가 특정 기간에 특정 작업을 수행하는 횟수를 확인합니다.
AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | summarize count() by OperationName, Identity
작업 이름에 대한 결과를 피벗합니다.
AuditLogs | where TimeGenerated > ago(30d) | where OperationName contains "Add member to role" | project OperationName, Identity | evaluate pivot(OperationName)
내부 조인을 사용하여 감사 및 로그인 로그 병합:
AuditLogs |where OperationName contains "Add User" |extend UserPrincipalName = tostring(TargetResources[0].userPrincipalName) | |project TimeGenerated, UserPrincipalName |join kind = inner (SigninLogs) on UserPrincipalName |summarize arg_min(TimeGenerated, *) by UserPrincipalName |extend SigninDate = TimeGenerated
클라이언트 앱 유형별 로그인 횟수 보기:
SigninLogs | summarize count() by ClientAppUsed
일별 로그인 횟수 계산:
SigninLogs | summarize NumberOfEntries=count() by bin(TimeGenerated, 1d)
5개의 임의 항목을 가져와 결과에 표시할 열을 프로젝트합니다.
SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated
상위 5개 항목을 내림차순으로 가져와서 보려는 열을 프로젝팅합니다.
SigninLogs | take 5 | project ClientAppUsed, Identity, ConditionalAccessStatus, Status, TimeGenerated
값을 다른 두 열로 결합하여 새 열 만들기:
SigninLogs | limit 10 | extend RiskUser = strcat(RiskDetail, "-", Identity) | project RiskUser, ClientAppUsed
사용자 지정 통합 문서 만들기
이 절차에서는 빠른 시작 템플릿을 사용하여 새 통합 문서를 만드는 방법을 보여줍니다.
최소한 보안 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
ID>모니터링 및 상태>통합 문서로 찾습니다.
빠른 시작 섹션에서 비어 있음을 선택합니다.
추가 메뉴에서 텍스트 추가를 선택합니다.
텍스트 상자에
# Client apps used in the past week
를 입력하고 편집 완료를 선택합니다.텍스트 창 아래에서 추가 메뉴를 열고 쿼리 추가를 선택합니다.
쿼리 텍스트 상자에서
SigninLogs | where TimeGenerated > ago(7d) | project TimeGenerated, UserDisplayName, ClientAppUsed | summarize count() by ClientAppUsed
를 입력합니다.쿼리 실행을 선택합니다.
도구 모음의 시각화 메뉴에서 원형 차트를 선택합니다.
페이지 상단에서 편집 완료를 선택합니다.
저장 아이콘을 선택하여 통합 문서를 저장합니다.
표시되는 대화 상자에서 제목을 입력하고 리소스 그룹을 선택한 다음 적용을 선택합니다.
통합 문서 템플릿에 쿼리 추가
이 절차에서는 기존 통합 문서 템플릿에 쿼리를 추가하는 방법을 보여줍니다. 예제는 조건부 액세스 성공 실패 분포를 보여주는 쿼리를 기반으로 합니다.
Microsoft Entra 관리 센터에 보고서 읽기 권한자 이상의 권한으로 로그인합니다.
ID>모니터링 및 상태>통합 문서로 찾습니다.
조건부 액세스 섹션에서 조건부 액세스 인사이트 및 보고를 선택합니다.
도구 모음에서 편집을 선택합니다.
도구 모음에서 편집 단추 옆의 점 3개를 선택한 다음 추가를 선택하고 쿼리를 추가합니다.
쿼리 텍스트 상자에서
SigninLogs | where TimeGenerated > ago(20d) | where ConditionalAccessPolicies != "[]" | summarize dcount(UserDisplayName) by bin(TimeGenerated, 1d), ConditionalAccessStatus
를 입력합니다.쿼리 실행을 선택합니다.
시간 범위 메뉴에서 쿼리에서 설정을 선택합니다.
시각화 메뉴에서 막대형 차트를 선택합니다.
고급 설정을 엽니다.
차트 제목 필드에서
Conditional Access status over the last 20 days
를 입력하고 편집 완료를 선택합니다.
조건부 액세스 성공 및 실패 차트에는 테넌트에 대한 색상별 스냅샷이 표시됩니다.
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기