권한 있는 Azure 역할 할당에 대한 경고

기여자, 소유자 또는 사용자 액세스 관리자와 같은 권한 있는 Azure 역할은 강력한 역할이며 시스템에 위험을 초래할 수 있습니다. 이러한 역할 또는 다른 역할이 할당될 때 이메일 또는 문자 메시지로 알림을 받을 수 있습니다. 이 문서에서는 Azure Monitor를 사용하여 경고 규칙을 만들어 구독 범위에서 권한 있는 역할 할당에 대한 알림을 받는 방법을 설명합니다.

필수 조건

경고 규칙을 만들려면 다음이 있어야 합니다.

  • Azure 구독에 대한 액세스
  • 구독 내에서 리소스 그룹 및 리소스를 만들 수 있는 권한
  • AzureActivity 테이블에 액세스할 수 있도록 구성된 Log Analytics

Azure Monitor를 사용하기 전에 비용 추정

Azure Monitor 및 경고 규칙 사용과 관련된 비용이 있습니다. 비용은 쿼리가 실행되는 빈도와 선택한 알림을 기반으로 합니다. 자세한 내용은 Azure Monitor 가격을 참조하세요.

경고 규칙 만들기

권한 있는 역할 할당에 대한 알림을 받으려면 Azure Monitor에서 경고 규칙을 만듭니다.

  1. Azure Portal에 로그인합니다.

  2. 모니터로 이동합니다.

  3. 왼쪽 탐색 영역에서 경고를 클릭합니다.

  4. 만들기>경고 규칙을 클릭합니다. 경고 규칙 만들기 페이지가 열립니다.

  5. 범위 탭에서 구독을 선택합니다.

  6. 조건 탭에서 사용자 지정 로그 검색 신호 이름을 선택합니다.

  7. 로그 쿼리 상자에 구독의 로그에서 실행되고 경고를 트리거할 다음 Kusto 쿼리를 추가합니다.

    이 쿼리는 선택한 구독의 범위에서 기여자, 소유자 또는 사용자 액세스 관리자 역할을 할당하려는 시도를 필터링합니다.

    AzureActivity
    | where CategoryValue =~ "Administrative" and
        OperationNameValue =~ "Microsoft.Authorization/roleAssignments/write" and
        (ActivityStatusValue =~ "Start" or ActivityStatus =~ "Started")
    | extend Properties_d = todynamic(Properties)
    | extend RoleDefinition = extractjson("$.Properties.RoleDefinitionId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalId = extractjson("$.Properties.PrincipalId",tostring(Properties_d.requestbody),typeof(string))
    | extend PrincipalType = extractjson("$.Properties.PrincipalType",tostring(Properties_d.requestbody),typeof(string))
    | extend Scope = extractjson("$.Properties.Scope",tostring(Properties_d.requestbody),typeof(string))
    | where Scope !contains "resourcegroups"
    | extend RoleId = split(RoleDefinition,'/')[-1]
    | extend RoleDisplayName = case(
        RoleId =~ 'b24988ac-6180-42a0-ab88-20f7382dd24c', "Contributor",
        RoleId =~ '8e3af657-a8ff-443c-a75c-2fe8c4bcb635', "Owner",
        RoleId =~ '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9', "User Access Administrator",
        "Irrelevant")
    | where RoleDisplayName != "Irrelevant"
    | project TimeGenerated,Scope, PrincipalId,PrincipalType,RoleDisplayName
    

    Screenshot of Create an alert rule condition tab in Azure Monitor.

  8. 측정 섹션에서 다음 값을 설정합니다.

    • 측정값: 테이블 행
    • 집계 형식: Count
    • 집계 세분성: 5분

    집계 세분성의 경우 기본값을 원하는 빈도로 변경할 수 있습니다.

  9. 차원별 분할 섹션에서 리소스 ID 열분할하지 않음으로 설정합니다.

  10. 경고 논리 섹션에서 다음 값을 설정합니다.

    • 연산자: 보다 큼
    • 임계값: 0
    • 평가 빈도: 5분

    평가 빈도의 경우 기본값을 원하는 빈도로 변경할 수 있습니다.

  11. 작업 탭에서 작업 그룹을 만들거나 기존 작업 그룹을 선택합니다.

    작업 그룹은 경고가 트리거될 때 실행되는 작업 및 알림을 정의합니다.

    작업 그룹을 만들 때 작업 그룹을 배치할 리소스 그룹을 지정해야 합니다. 그런 다음, 경고 규칙이 트리거될 때 호출할 알림(Email/SMS 메시지/푸시/음성 작업)을 선택합니다. 작업태그 탭을 건너뛸 수 있습니다. 자세한 내용은 Azure Portal에서 작업 그룹 만들기 및 관리를 참조하세요.

  12. 세부 정보 탭에서 경고 규칙을 저장할 리소스 그룹을 선택합니다.

  13. 경고 규칙 세부 정보 섹션에서 심각도를 선택하고 경고 규칙 이름을 지정합니다.

  14. 지역의 경우 Azure 활동 로그가 전역이므로 모든 지역을 선택할 수 있습니다.

  15. 태그 탭을 건너뜁니다.

  16. 검토 + 만들기 탭에서 만들기를 클릭하여 경고 규칙을 만듭니다.

경고 규칙 테스트

경고 규칙을 만든 후에는 경고 규칙이 실행되는지 테스트할 수 있습니다.

  1. 구독 범위에서 기여자, 소유자 또는 사용자 액세스 관리자 역할을 할당합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하십시오.

  2. 로그 쿼리의 집계 세분성 및 평가 빈도에 따라 경고를 수신하려면 몇 분 정도 기다립니다.

  3. 경고 페이지에서 작업 그룹에 지정한 경고를 모니터링합니다.

    Screenshot of the Alerts page showing that role assignment alert fired.

    다음 이미지는 이메일 경고의 예를 보여 줍니다.

    Screenshot of an email alert for a role assignment.

경고 규칙 삭제

다음 단계에 따라 역할 할당 경고 규칙을 삭제하고 추가 비용을 중지합니다.

  1. 모니터에서 경고로 이동합니다.

  2. 표시줄에서 경고 규칙을 클릭합니다.

  3. 삭제할 경고 규칙 옆에 확인 표시를 추가합니다.

  4. 삭제를 클릭하여 경고를 제거합니다.

다음 단계