감사 로그를 사용하여 조건부 액세스 정책 변경 문제 해결

개요

Microsoft Entra 감사 로그는 사용자 환경에서 조건부 액세스 정책 변경이 발생한 이유와 방법을 해결할 때 유용한 정보 원본입니다.

감사 로그 데이터는 기본적으로 30일 동안 유지되므로 모든 조직에 충분하지 않을 수 있습니다. 조직은 Microsoft Entra ID의 진단 설정을 다음으로 변경하여 데이터를 더 오래 저장할 수 있습니다.

  • Log Analytics 작업 영역에 데이터 보내기
  • 스토리지 계정에 데이터 보관
  • Event Hubs로 데이터 스트리밍
  • 파트너 솔루션에 데이터 보내기

Entra ID>모니터링 및 상태>진단 설정>에서 다음 옵션을 찾습니다. 진단 설정이 없는 경우 플랫폼 로그 및 메트릭을 다른 대상으로 보내도록 진단 설정 만들기를 참조하세요.

감사 로그 사용

  1. Microsoft Entra 관리 센터에 최소한 보고서 읽기 권한자로 로그인합니다.

  2. Entra ID>모니터링 및 상태>감사 로그로 이동합니다.

  3. 쿼리할 날짜 범위를 선택합니다.

  4. 서비스 필터에서 조건부 액세스를 선택하고 적용 단추를 선택합니다.

    기본적으로 감사 로그에는 모든 활동이 표시됩니다. 활동 필터를 사용하여 활동의 범위를 좁힐 수 있습니다. 조건부 액세스에 대한 감사 로그 활동의 전체 목록은 감사 로그 활동을 참조하세요.

  5. 세부 정보를 보려면 행을 선택합니다. 수정된 속성 탭에는 선택한 감사 작업에 대한 수정된 JSON 값이 나열됩니다.

조건부 액세스 정책에 대한 이전 및 새 JSON 값을 보여 주는 감사 로그 항목의 스크린샷

Log Analytics 사용

Log Analytics를 사용하면 조직에서 기본 제공 쿼리 또는 사용자 지정으로 만든 Kusto 쿼리를 사용하여 데이터를 쿼리할 수 있습니다. 자세한 내용은 Azure Monitor에서 로그 쿼리 시작을 참조하세요.

조건부 액세스 정책 업데이트에 대한 Log Analytics 쿼리의 스크린샷으로, 새 값과 이전 값 위치를 보여 줍니다.

활성화한 후 Entra ID>모니터링 및 상태>Log Analytics에서 Log Analytics를 찾습니다. 조건부 액세스 관리자와 가장 관련된 테이블은 AuditLogs입니다.

AuditLogs 
| where OperationName == "Update Conditional Access policy"

TargetResources>modifiedProperties에서 변경 내용을 찾습니다.

값 읽기

감사 로그 및 Log Analytics의 이전 값과 새 값은 JSON 형식입니다. 두 값을 비교하여 정책의 변경 내용을 식별합니다.

이전 정책 예제:

{
    "conditions": {
        "applications": {
            "applicationFilter": null,
            "excludeApplications": [
            ],
            "includeApplications": [
                "797f4846-ba00-4fd7-ba43-dac1f8f63013"
            ],
            "includeAuthenticationContextClassReferences": [
            ],
            "includeUserActions": [
            ]
        },
        "clientAppTypes": [
            "browser",
            "mobileAppsAndDesktopClients"
        ],
        "servicePrincipalRiskLevels": [
        ],
        "signInRiskLevels": [
        ],
        "userRiskLevels": [
        ],
        "users": {
            "excludeGroups": [
                "eedad040-3722-4bcb-bde5-bc7c857f4983"
            ],
            "excludeRoles": [
            ],
            "excludeUsers": [
            ],
            "includeGroups": [
            ],
            "includeRoles": [
            ],
            "includeUsers": [
                "All"
            ]
        }
    },
    "displayName": "Common Policy - Require MFA for Azure management",
    "grantControls": {
        "builtInControls": [
            "mfa"
        ],
        "customAuthenticationFactors": [
        ],
        "operator": "OR",
        "termsOfUse": [
            "a0d3eb5b-6cbe-472b-a960-0baacbd02b51"
        ]
    },
    "id": "334e26e9-9622-4e0a-a424-102ed4b185b3",
    "modifiedDateTime": "2021-08-09T17:52:40.781994+00:00",
    "state": "enabled"
}

업데이트된 정책 예제:

{
    "conditions": {
        "applications": {
            "applicationFilter": null,
            "excludeApplications": [
            ],
            "includeApplications": [
                "797f4846-ba00-4fd7-ba43-dac1f8f63013"
            ],
            "includeAuthenticationContextClassReferences": [
            ],
            "includeUserActions": [
            ]
        },
        "clientAppTypes": [
            "browser",
            "mobileAppsAndDesktopClients"
        ],
        "servicePrincipalRiskLevels": [
        ],
        "signInRiskLevels": [
        ],
        "userRiskLevels": [
        ],
        "users": {
            "excludeGroups": [
                "eedad040-3722-4bcb-bde5-bc7c857f4983"
            ],
            "excludeRoles": [
            ],
            "excludeUsers": [
            ],
            "includeGroups": [
            ],
            "includeRoles": [
            ],
            "includeUsers": [
                "All"
            ]
        }
    },
    "displayName": "Common Policy - Require MFA for Azure management",
    "grantControls": {
        "builtInControls": [
            "mfa"
        ],
        "customAuthenticationFactors": [
        ],
        "operator": "OR",
        "termsOfUse": [
        ]
    },
    "id": "334e26e9-9622-4e0a-a424-102ed4b185b3",
    "modifiedDateTime": "2021-08-09T17:52:54.9739405+00:00",
    "state": "enabled"
}

이전 예제에서 업데이트된 정책에는 권한 부여 컨트롤에 사용 약관이 포함되지 않습니다.