다음을 통해 공유


Log Analytics 작업 영역에서 테이블 수준 액세스 관리

RBAC(역할 기반 액세스 제어)를 사용하여 Log Analytics 작업 영역에서 테이블 수준 액세스를 관리하는 세 가지 방법이 있습니다. 이 문서에서는 세분화된 RBAC만 권장되더라도 모든 메서드를 참조합니다.

세분화된 RBAC를 사용하면 테이블 또는 행 수준에서 액세스를 세밀하게 조정할 수 있습니다. 테이블 수준 액세스 권한이 있는 사용자는 작업 영역과 리소스 컨텍스트 모두에서 지정된 테이블에서 데이터와 쿼리를 읽을 수 있습니다. 자세한 내용은 세분화된 RBAC를 참조하세요.

테이블 수준 액세스를 위한 세분화된 RBAC 구성

세분화된 RBAC를 사용하는 테이블 수준 액세스 구성은 이전 방법보다 덜 복잡하며 행 수준 조건을 유연하게 구현할 수 있습니다. 이 단계에서는 테이블 수준 액세스를 구성하는 데만 집중합니다. 자세한 내용은 세분화된 RBAC를 참조하세요.

테이블 수준 액세스를 위해 세분화된 RBAC를 구성하려면 다음 단계가 필요합니다.

  1. 세분화된 RBAC 사용자 지정 역할 만들기
  2. 할당된 역할에 대한 빌드 조건(허용 또는 제한)

세분화된 RBAC 사용자 지정 역할 만들기

컨트롤 플레인 "데이터 작업"은 테이블 수준 액세스를 구성하는 이전 메서드와 별도로 세분화된 RBAC를 설정하는 항목 중 하나입니다. 자세한 내용은 세분화된 RBAC 사용자 지정 역할 만들기를 참조하세요.

예제 사용자 지정 역할에 대한 JSON은 다음과 같습니다.

{    "properties": {
        "roleName": "Log Analytics Standard Table Access",
        "description": "This custom role provides general access to all non-restricted tables.",
        "assignableScopes": [
            "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso-US-la-workspace"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.OperationalInsights/workspaces/read",
                    "Microsoft.OperationalInsights/workspaces/query/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.OperationalInsights/workspaces/tables/data/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

사용자 또는 그룹에 사용자 지정 역할을 할당합니다. 자세한 내용은 세분화된 RBAC 역할 할당을 참조하세요.

  1. Log Analytics 작업 영역에서 액세스 제어(IAM)를 선택합니다.
  2. 역할 할당 추가를 선택합니다.
  3. Log Analytics Standard Table Access 만든 사용자 지정 역할 예제를 선택한 다음, 다음을 선택합니다.
  4. 역할을 할당할 사용자 또는 그룹을 선택한 다음, 다음을 선택합니다. 이 예제에서는 네트워크 팀 보안 그룹에 역할을 할당합니다.
  5. 조건>추가 작업>추가를 선택합니다.
  6. 작업 영역 데이터 데이터 읽기 작업을 >선택합니다.

허용 조건 설정

이 예제에서는 허용되지 않는 전략을 제외하고 모든 데이터에 대한 액세스를 사용하여 허용 조건을 빌드합니다. 액세스는 SigninLogs 테이블과 SecurityEvent 테이블에 제한되지만, 다른 모든 테이블에 대한 액세스는 허용됩니다. 제한 조건의 예를 보려면 세분화된 RBAC 사용 사례를 참조하세요.

  1. 빌드 식 섹션에서 식 추가를 선택합니다.
  2. 특성 원본 드롭다운에서 리소스를 선택합니다.
  3. 특성 드롭다운에서 테이블 이름을 선택합니다.
  4. 연산자 드롭다운에서 ForAnyOfAllValues:StringNotEquals를 선택합니다.
  5. SigninLogs 필드에 SecurityEvent를 입력합니다.

완료 시 허용되는 테이블 수준 액세스 조건의 모양은 다음과 같습니다.

세분화된 RBAC 테이블 수준 허용 액세스 조건의 스크린샷

단일 역할 할당을 사용하면 테이블 수준 액세스가 표준 테이블에서 제한된 테이블을 분리하도록 구성됩니다. 자세한 내용은 세분화된 RBAC 고려 사항세분화된 RBAC 문제 해결을 참조하세요.

테이블 수준 액세스 구성(이중 역할 방법)

모범 사례는 이 메서드 대신 세분화된 RBAC 메서드를 사용하는 것입니다. 참조를 위해 이 섹션에서는 이중 역할 메서드를 구성하는 방법에 대한 단계를 간략하게 설명합니다.

또한 이 테이블 수준 액세스 제어 방법은 Azure 사용자 지정 역할을 사용하여 작업 영역의 특정 테이블에 대한 액세스 권한을 사용자 또는 그룹에 부여하지만 각 사용자 또는 그룹에 대해 두 개의 역할을 할당해야 합니다.

범위 역할 설명
작업 공간 작업 영역 세부 정보를 읽고 작업 영역에서 쿼리를 실행할 수 있는 제한된 권한을 제공하지만 테이블에서 데이터를 읽지 않는 사용자 지정 역할
테이블 / 표 특정 테이블로 범위가 지정된 읽기 권한자 역할

작업 영역 역할 빌드

작업 영역 수준에서 사용자 지정 역할 만들어 테이블의 데이터에 대한 읽기 권한은 제공하지 않고 사용자가 작업 영역 세부 정보를 읽고 작업 영역에서 쿼리를 실행할 수 있도록 합니다.

  1. 작업 영역으로 이동하여 액세스 제어(IAM)>역할을 선택합니다.
  2. 읽기 권한자 역할을 마우스 오른쪽 단추로 클릭하고 복제를 선택합니다. 읽기 권한자 역할에 대해 복제 단추가 강조 표시된 액세스 제어 화면의 역할 탭을 보여 주는 스크린샷 그러면 사용자 지정 역할 만들기 화면이 열립니다.
  3. 화면의 기본 사항 탭에서 다음을 수행합니다.
    1. 사용자 지정 역할 이름 값을 입력하고 필요에 따라 설명을 제공합니다.
    2. 기준 권한처음부터 시작으로 설정합니다. 사용자 지정 역할 이름 및 설명 필드가 강조 표시된 사용자 지정 역할 만들기 화면의 기본 탭을 보여 주는 스크린샷.
  4. JSON 탭 >편집을 선택합니다.
    1. "actions" 섹션에 다음 작업을 추가하세요.
      "Microsoft.OperationalInsights/workspaces/read",
      "Microsoft.OperationalInsights/workspaces/query/read" 
      
    2. "not actions" 섹션에 다음을 추가하십시오.
      "Microsoft.OperationalInsights/workspaces/sharedKeys/read"
      
  5. 저장>검토 + 만들기>만들기를 선택합니다.
  6. 액세스 제어(AIM)>추가>역할 할당 추가를 선택합니다.
  7. 사용자가 만든 사용자 지정 역할을 선택하고 다음을 선택합니다. 그러면 사용자 지정 역할 할당 추가 화면의 멤버 탭이 열립니다.
  8. + 구성원을 선택하여 선택 화면을 엽니다.
  9. 사용자 검색 >선택.
  10. 검토 및 할당을 선택합니다.

이제 사용자는 작업 영역 세부 정보를 읽고 쿼리를 실행할 수 있지만 테이블에서 데이터를 읽을 수는 없습니다.

테이블 액세스 역할 할당

  1. Log Analytics 작업 영역 메뉴에서 테이블을 선택합니다.
  2. 테이블 오른쪽에 있는 줄임표(...)를 선택하고 액세스 제어(IAM)를 선택합니다. 테이블 수준 액세스 제어 단추가 강조 표시된 Log Analytics 작업 영역 테이블 관리 화면을 보여 주는 스크린샷.
  3. 액세스 제어(IAM) 화면에서 추가>역할 할당 추가를 선택합니다.
  4. 읽기 권한자 역할을 선택하고 다음을 선택합니다.
  5. + 구성원을 선택하여 구성원 선택 화면을 엽니다.
    1. 사용자 >를 검색하고 선택
  6. 검토 및 할당을 선택합니다.

이제 사용자는 이 특정 테이블에서 데이터를 읽을 수 있습니다. 필요에 따라 사용자에게 작업 영역의 다른 테이블에 대한 읽기 권한을 부여합니다.

테이블 수준 액세스 구성(레거시 메서드)

테이블 수준 액세스 제어의 레거시 메서드는 더 이상 권장되지 않습니다. 행 수준 조건을 지원하지 않으며 세분화된 RBAC 메서드보다 더 복잡합니다. 모범 사례는 이 메서드 대신 세분화된 RBAC 메서드를 사용하는 것입니다. 참조를 위해 이 섹션에서는 레거시 메서드가 구성된 방법에 대한 단계를 간략하게 설명합니다.

또한 테이블 수준의 레거시 메서드는 Azure 사용자 지정 역할을 사용하여 작업 영역의 특정 테이블에 대한 액세스 권한을 사용자 또는 그룹에 부여할 수 있도록 합니다. Azure 사용자 지정 역할은 사용자의 액세스 모드에 관계없이 작업 영역 컨텍스트 또는 리소스 컨텍스트 액세스 제어 모드가 있는 작업 영역에 적용됩니다.

특정 테이블에 대한 액세스를 정의하려면 사용자 지정 역할을 만듭니다.

  1. 역할 정의의 작업 섹션에서 사용자 권한을 설정합니다.
  2. Microsoft.OperationalInsights/workspaces/query/*를 사용하여 모든 테이블에 대한 액세스 권한을 부여합니다.
  3. 작업에서 와일드카드를 사용할 때 특정 테이블에 대한 액세스를 제외하려면 역할 정의의 NotActions 섹션에서 제외된 테이블을 나열합니다.

다음은 특정 테이블에 대한 액세스 권한을 부여하고 거부하는 사용자 지정 역할 작업의 예제입니다.

HeartbeatAzureActivity 테이블에 대한 액세스 권한을 부여합니다.

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Heartbeat/read",
    "Microsoft.OperationalInsights/workspaces/query/AzureActivity/read"
  ],

SecurityBaseline 테이블에만 액세스 권한을 부여합니다.

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/SecurityBaseline/read"
],

SecurityAlert 테이블을 제외한 모든 테이블에 대한 액세스 권한을 부여합니다.

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/*/read"
],
"notActions":  [
    "Microsoft.OperationalInsights/workspaces/query/SecurityAlert/read"
],

사용자 지정 테이블은 텍스트 로그HTTP 데이터 수집기 API와 같은 데이터 원본에서 수집한 데이터를 저장합니다. 테이블 유형을 식별하려면 Log Analytics에서 테이블 정보를 확인합니다.

테이블 수준 액세스의 레거시 방법을 사용하면 테이블 수준에서 개별 사용자 지정 로그 테이블에 대한 액세스 권한을 부여할 수 없지만 모든 사용자 지정 로그 테이블에 대한 액세스 권한을 부여할 수 있습니다. 모든 사용자 지정 로그 테이블에 대한 액세스 권한이 있는 역할을 만들려면 다음 작업을 사용하여 사용자 지정 역할을 만듭니다.

"Actions":  [
    "Microsoft.OperationalInsights/workspaces/read",
    "Microsoft.OperationalInsights/workspaces/query/read",
    "Microsoft.OperationalInsights/workspaces/query/Tables.Custom/read"
],

고려 사항

  • Log Analytics UI에서 테이블 수준 사용자는 작업 영역에서 모든 테이블의 목록을 볼 수 있지만 액세스 권한이 있는 테이블에서만 데이터를 검색할 수 있습니다.
  • ‘*/read’ 작업을 포함하는 표준 읽기 권한자 또는 기여자 역할은 테이블 수준 액세스 제어를 재정의하고 사용자에게 모든 로그 데이터에 대한 액세스 권한을 부여합니다.
  • 테이블 수준 액세스 권한이 있지만 작업 영역 수준 권한이 없는 사용자는 API에서는 로그 데이터에 액세스할 수 있지만 Azure Portal에서는 액세스할 수 없습니다.
  • 구독의 관리자와 소유자는 다른 권한 설정에 관계 없이 모든 데이터 형식에 액세스할 수 있습니다.
  • 작업 영역 소유자는 테이블당 액세스 제어를 위해 다른 사용자와 같은 방식으로 처리됩니다.
  • 할당 수를 줄이기 위해 개별 사용자 대신 보안 그룹에 역할을 할당합니다. 이 모범 사례는 기존 그룹 관리 도구를 사용하여 액세스를 구성하고 확인하는 데 도움이 됩니다.