다음을 통해 공유


OneLake 보안 액세스 제어 모델(미리 보기)

이 문서에서는 OneLake 보안 액세스 제어 모델의 작동 방식에 대한 자세한 가이드를 제공합니다. 여기에는 역할이 구조화되는 방법, 데이터에 적용되는 방법 및 Microsoft Fabric 내의 다른 구조와 통합되는 내용에 대한 세부 정보가 포함되어 있습니다.

OneLake 보안 역할

OneLake 보안은 RBAC(역할 기반 액세스 제어) 모델을 사용하여 OneLake의 데이터에 대한 액세스를 관리합니다. 각 역할은 여러 주요 구성 요소로 구성됩니다.

  • 형: 역할이 액세스 권한을 부여할지(GRANT) 또는 액세스 제거(DENY)인지 여부입니다. GRANT 형식 역할만 지원됩니다.
  • 허가: 부여되거나 거부되는 특정 작업입니다.
  • 범위: 권한이 있는 OneLake 개체입니다. 개체는 테이블, 폴더 또는 스키마입니다.
  • 회원: 사용자, 그룹 또는 비사용자 ID와 같이 역할에 할당된 모든 Microsoft Entra ID입니다. 역할은 Microsoft Entra 그룹의 모든 멤버에게 부여됩니다.

역할에 멤버를 할당하면 해당 사용자에게 해당 역할의 범위에 대한 관련 사용 권한이 적용됩니다. OneLake 보안은 기본 거부 모델을 사용하므로 OneLake 보안 역할이 명시적으로 부여하지 않는 한 모든 사용자는 데이터에 액세스하지 않고 시작합니다.

사용 권한 및 지원되는 항목

OneLake 보안 역할은 다음 권한을 지원합니다.

  • 읽다: 사용자에게 테이블에서 데이터를 읽고 연결된 테이블 및 열 메타데이터를 볼 수 있는 기능을 부여합니다. SQL 용어에서 이 권한은 VIEW_DEFINITION SELECT와 동일합니다. 자세한 내용은 메타데이터 보안을 참조하세요.
  • ReadWrite: 사용자에게 테이블 또는 폴더에서 데이터를 읽고 쓰고 연결된 테이블 및 열 메타데이터를 볼 수 있는 기능을 부여합니다. SQL 용어에서 이 권한은 ALTER, DROP, UPDATE 및 INSERT와 동일합니다. 자세한 내용은 ReadWrite 권한을 참조하세요.

OneLake 보안을 사용하면 사용자가 다음 패브릭 항목에 대해서만 데이터 액세스 역할을 정의할 수 있습니다.

직물 항목 상태 지원되는 권한
레이크하우스 Public Preview 읽기, 읽기/쓰기
Azure Databricks 미러드 카탈로그 Public Preview 읽기

OneLake 보안 및 작업 영역 권한

작업 영역 권한은 OneLake 내의 데이터에 대한 첫 번째 보안 경계입니다. 각 작업 영역은 팀이 데이터를 위해 공동 작업하실 수 있는 단일 도메인 혹은 프로젝트 영역을 나타냅니다. Fabric 작업 영역 역할을 통해 작업 영역의 보안을 관리해 보세요. 다음에서 패브릭 RBAC(역할 기반 액세스 제어)에 대해 자세히 알아봅니다. 작업 영역 역할

패브릭 작업 영역 역할은 작업 영역의 모든 항목에 적용되는 권한을 부여합니다. 다음 표에서는 작업 영역 역할에서 허용하는 기본 사용 권한을 간략하게 설명합니다.

사용 권한 관리자 회원 공헌자 뷰어
OneLake에서 파일을 보기 항상* 예 항상* 예 항상* 예 기본적으로 아닙니다. OneLake 보안을 사용하여 액세스 권한을 부여합니다.
OneLake에서 파일을 쓰기 항상* 예 항상* 예 항상* 예 아니요
OneLake 보안 역할을 편집할 수 있습니다. 항상* 예 항상* 예 아니요 아니요

*작업 공간의 관리자, 멤버 및 기여자 역할은 OneLake에 대한 쓰기 권한을 자동으로 부여하므로, 이러한 역할은 OneLake 보안의 읽기 권한을 무시합니다.

작업 영역 역할은 컨트롤 플레인 데이터 액세스를 관리합니다. 즉, 패브릭 아티팩트 및 권한 만들기 및 관리와의 상호 작용을 의미합니다. 또한 작업 영역 역할은 OneLake 보안 기본 역할을 사용하여 데이터 항목에 대한 기본 액세스 수준을 제공합니다. (관리자, 구성원 및 참가자가 쓰기 권한을 통해 상승된 액세스 권한을 가지므로 기본 역할은 뷰어에만 적용됩니다.) 기본 역할은 모든 새 항목과 함께 자동으로 만들어지는 일반적인 OneLake 보안 역할입니다. 특정 작업 영역 또는 항목 권한이 있는 사용자에게 해당 항목의 데이터에 대한 기본 액세스 수준을 제공합니다. 예를 들어 Lakehouse 항목에는 ReadAll 권한이 있는 사용자가 Lakehouse의 데이터를 볼 수 있는 DefaultReader 역할이 있습니다. 이렇게 하면 새로 만든 항목에 액세스하는 사용자가 기본 수준의 액세스 권한을 갖게 됩니다. 모든 기본 역할은 멤버 가상화 기능을 사용하므로 역할의 멤버는 필요한 권한이 있는 해당 작업 영역의 모든 사용자입니다. 예를 들어 Lakehouse에 대한 ReadAll 권한이 있는 모든 사용자입니다. 다음 표에서는 표준 기본 역할이 무엇인지 보여 줍니다. 항목에는 해당 항목 유형에만 적용되는 특수한 기본 역할이 있을 수 있습니다.

직물 항목 역할 이름 허가 포함된 폴더 할당된 멤버
레이크하우스 DefaultReader 읽기 Tables/Files/의 모든 폴더 ReadAll 권한이 있는 모든 사용자
레이크하우스 DefaultReadWriter 읽기 모든 폴더 쓰기 권한이 있는 모든 사용자

비고

특정 사용자 또는 특정 폴더에 대한 액세스를 제한하려면 기본 역할을 수정하거나 제거한 후 새 사용자 지정 역할을 만드세요.

OneLake 보안 및 항목 권한

작업 영역 내에서 Fabric 항목은 작업 영역 역할과 별도로 구성된 사용 권한을 가지실 수 있는 것입니다. 항목을 공유하시거나 항목의 사용 권한을 관리하셔서 권한을 구성해 보실 수 있습니다. 다음 사용 권한은 OneLake에서 데이터를 위한 작업을 실행하는 사용자의 기능을 결정해 드리고 있습니다. 항목 공유에 대한 자세한 내용은 Lakehouse 공유 작동 방식을 참조하세요.

사용 권한 OneLake에서 파일을 볼 수 있는 건가요? OneLake에서 파일을 작성할 수 있는 건가요? SQL 분석 엔드포인트를 통해서 데이터를 읽을 수 있는 건가요?
읽기 기본적으로 아닙니다. OneLake 보안을 사용하여 액세스 권한을 부여합니다. 아니요 아니요
모두 읽기 DefaultReader 역할을 통해 예. OneLake 보안을 사용하여 액세스 권한을 제한합니다. 아니요 아니요*
쓰기
실행, 다시 공유, 출력보기, 로그보기 해당 없음 - 자체적으로 부여할 수 없습니다 해당 없음 - 자체적으로 부여할 수 없습니다 해당 없음 - 자체적으로 부여할 수 없습니다

* SQL 분석 엔드포인트 모드에 따라 다릅니다.

역할 만들기

레이크하우스 데이터 액세스 설정을 통해 OneLake 보안 역할을 정의하고 관리할 수 있습니다.

데이터 액세스 역할 시작에서 자세히 알아보세요.

데이터에 대한 엔진 및 사용자 액세스

OneLake에 대한 데이터 액세스는 다음 두 가지 방법 중 하나로 발생합니다.

  • 패브릭 쿼리 엔진을 통해 또는
  • 사용자 액세스를 통해(비 패브릭 엔진의 쿼리는 사용자 액세스로 간주됨)

OneLake 보안은 데이터가 항상 안전하게 유지되도록 합니다. 행 및 열 수준 보안과 같은 특정 OneLake 보안 기능은 스토리지 수준 작업에서 지원되지 않으므로 행 또는 열 수준 보안 데이터에 대한 모든 유형의 액세스를 허용하지 않을 수 있습니다. 이렇게 하면 사용자가 허용되지 않는 행이나 열을 볼 수 없습니다. Microsoft Fabric 엔진은 데이터 쿼리에 행 및 열 수준 보안 필터링을 적용할 수 있습니다. 즉, 사용자가 OneLake 보안 RLS 또는 CLS를 사용하여 레이크하우스 또는 다른 항목의 데이터를 쿼리할 때 사용자에게 표시되는 결과에 숨겨진 행과 열이 제거됩니다. RLS 또는 CLS가 있는 OneLake의 데이터에 대한 사용자 액세스의 경우 액세스를 요청하는 사용자가 해당 테이블의 모든 행 또는 열을 볼 수 없으면 쿼리가 차단됩니다.

아래 표에서는 RLS 및 CLS 필터링을 지원하는 Microsoft Fabric 엔진에 대해 간략하게 설명합니다.

엔진 RLS/CLS 필터링 상태
레이크하우스 공개 미리 보기
Spark Notebook 공개 미리 보기
"사용자 ID 모드"의 SQL Analytics 엔드포인트 공개 미리 보기
OneLake 모드에서 DirectLake를 사용하는 의미 체계 모델 공개 미리 보기
Eventhouse 아니요 Planned
데이터 웨어하우스 외부 테이블 아니요 Planned

OneLake 보안 액세스 제어 모델 세부 정보

이 섹션에서는 OneLake 보안 역할이 특정 범위에 대한 액세스 권한을 부여하는 방법, 해당 액세스가 작동하는 방식 및 여러 역할 및 액세스 유형에서 액세스가 확인되는 방법에 대해 자세히 설명합니다.

테이블 수준 보안

모든 OneLake 테이블은 레이크의 폴더로 표시되지만, 레이크의 모든 폴더가 Fabric의 OneLake 보안 및 쿼리 엔진 관점에서 테이블인 것은 아닙니다. 유효한 테이블로 간주하려면 다음 조건을 충족해야 합니다.

  • 폴더는 항목의 테이블/디렉터리에 있습니다.
  • 폴더에는 테이블 메타데이터에 해당하는 JSON 파일이 있는 _delta_log 폴더가 포함되어 있습니다.
  • 폴더에 자식 바로 가기가 없습니다.

이러한 조건을 충족하지 않는 테이블은 테이블 수준 보안이 구성된 경우 액세스가 거부됩니다.

메타데이터 보안

OneLake 보안의 데이터에 대한 읽기 액세스 권한은 테이블의 데이터 및 메타데이터에 대한 모든 액세스 권한을 부여합니다. 테이블에 액세스할 수 없는 사용자의 경우 데이터가 노출되지 않으며 일반적으로 메타데이터가 표시되지 않습니다. 이는 열 수준 보안 및 해당 테이블의 열을 보거나 볼 수 없는 사용자의 기능에도 적용됩니다. 그러나 OneLake 보안은 테이블의 메타데이터 에 액세스할 수 없도록 보장하지 않으며, 특히 다음 경우에 액세스할 수 없습니다.

  • SQL 엔드포인트 쿼리: SQL Analytics 엔드포인트는 SQL Server와 동일한 메타데이터 보안 동작을 사용합니다. 즉, 사용자가 테이블 또는 열에 액세스할 수 없는 경우 해당 쿼리에 대한 오류 메시지는 사용자가 액세스할 수 없는 테이블 또는 열 이름을 명시적으로 명시합니다.
  • 의미 체계 모델: 의미 체계 모델에 대한 사용자 빌드 권한을 부여하면 사용자가 해당 모델에 액세스할 수 있는지 여부에 관계없이 모델에 포함된 테이블 이름을 볼 수 있습니다. 또한 숨겨진 열을 포함하는 보고서 시각적 개체는 오류 메시지에 열 이름을 표시합니다.

권한 상속

지정된 폴더에 대해 OneLake 보안 권한은 항상 폴더의 파일 및 하위 폴더의 전체 계층 구조에 상속됩니다.

예를 들어, 다음과 같은 OneLake의 레이크하우스 계층 구조를 고려하세요.

Tables/
──── (empty folder)
Files/
────folder1
│   │   file11.txt
│   │
│   └───subfolder11
│       │   file1111.txt
|       │
│       └───subfolder111
|            │   file1111.txt
│   
└───folder2
    │   file21.txt

이 레이크하우스를 위해 두 가지 역할을 만듭니다. Role1은(는) folder1에 읽기 권한을 부여하고 Role2은(는) folder2에 읽기 권한을 부여합니다.

지정된 계층의 경우 OneLake 보안 권한은 Role1Role2 다음과 같은 방식으로 상속됩니다.

  • Role1: 폴더1 읽기 권한

    │   │   file11.txt
    │   │
    │   └───subfolder11
    │       │   file1111.txt
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    
  • Role2: 폴더2 읽기

        │   file21.txt
    

OneLake 보안의 탐색 및 목록화

OneLake 보안은 데이터를 쉽게 검색할 수 있도록 부모 항목의 자동 순회를 제공합니다. subfolder11에 대한 읽기 권한을 사용자에게 부여하면 해당 사용자는 부모 디렉터리 folder1을 나열하고 트래버스할 수 있습니다. 하위 폴더에 대한 액세스 권한을 부여하면 부모 디렉터리에 대한 검색 및 순회를 제공하는 Windows 폴더 권한과 유사한 기능입니다. 부모에 부여된 목록 및 순회 권한은 직접 부모 외부의 다른 항목으로 확장되지 않으므로 다른 폴더는 안전하게 유지됩니다.

예를 들어, 다음과 같은 OneLake의 레이크하우스 계층 구조를 고려하세요.

Tables/
──── (empty folder)
Files/
────folder1
│   │   file11.txt
│   │
│   └───subfolder11
│       │   file111.txt
|       │
│       └───subfolder111
|            │   file1111.txt
│   
└───folder2
    │   file21.txt

해당 계층 구조에서 ‘Role1’에 대한 OneLake 보안 권한은 다음과 같은 액세스를 제공합니다. subfolder11의 부모가 아니기 때문에 file11.txt에 대한 액세스는 표시되지 않습니다. 마찬가지로 Role2의 경우 file111.txt가 표시되지 않습니다.

  • Role1: subfolder11을 읽기

    Files/
    ────folder1
    │   │
    │   └───subfolder11
    │       │   file111.txt
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    
  • Role2: 하위폴더111 읽기

    Files/
    ────folder1
    │   │
    │   └───subfolder11
    |       │
    │       └───subfolder111
    |            │   file1111.txt
    

바로 가기의 경우 목록 동작이 약간 다릅니다. 외부 데이터 원본에 대한 바로 가기는 폴더와 동일하게 동작하지만 다른 OneLake 위치에 대한 바로 가기에는 특수한 동작이 있습니다. OneLake 바로 가기에 대한 액세스 권한이 바로 가기의 대상 권한에 따라 결정됩니다. 바로 가기를 나열할 때 대상 액세스를 확인하기 위한 호출을 수행하지 않습니다. 따라서 디렉터리를 나열할 때 대상에 대한 사용자의 액세스에 관계없이 모든 내부 바로 가기가 반환됩니다. 사용자가 바로 가기를 열려고 하면 액세스 확인이 평가되고 필요한 권한이 있는 데이터만 사용자에게 표시됩니다. 바로 가기에 대한 자세한 내용은 바로 가기 보안 섹션을 참조하세요.

바로 가기가 포함된 다음 폴더 계층 구조를 고려합니다.

Files/
────folder1
│   
└───shortcut2
|
└───shortcut3
  • Role1: 폴더1 읽기 권한

    Files/
    ────folder1
    │   
    └───shortcut2
    |
    └───shortcut3
    
  • Role2: 정의된 권한 없음

    Files/
    │   
    └───shortcut2
    |
    └───shortcut3
    

행 수준 보안

OneLake 보안을 사용하면 사용자가 SQL 조건자를 작성하여 행 수준 보안을 지정하여 사용자에게 표시되는 데이터를 제한할 수 있습니다. RLS는 조건자가 true로 평가되는 행을 표시하여 작동합니다. 자세한 내용은 행 수준 보안을 참조하세요.

행 수준 보안은 정렬 및 비교를 위해 다음 데이터 정렬을 사용하여 문자열 데이터를 대/소문자를 구분하지 않는 것으로 평가합니다. Latin1_General_100_CI_AS_KS_WS_SC_UTF8

행 수준 보안을 사용하는 경우 RLS 문이 깨끗하고 이해하기 쉬운지 확인합니다. 정렬에 정수 열을 사용하고 연산보다 크거나 작습니다. 특히 유니코드 문자 또는 악센트 구분과 관련하여 입력 데이터의 형식을 모르는 경우 문자열 동등성을 방지합니다.

열 수준 보안

OneLake 보안은 열에 대한 사용자의 액세스를 제거(숨김)하여 열에 대한 액세스 제한을 지원합니다. 숨겨진 열은 할당된 권한이 없는 것으로 처리되므로 액세스 권한이 없는 기본 정책이 발생합니다. 숨겨진 열은 사용자에게 표시되지 않으며 숨겨진 열이 포함된 데이터에 대한 쿼리는 해당 열에 대한 데이터를 반환하지 않습니다. 메타데이터 보안에 설명된 것처럼 일부 오류 메시지에 열의 메타데이터가 계속 표시될 수 있는 경우가 있습니다.

열 수준 보안은 거부 의미 체계를 통해 작동하여 SQL 엔드포인트에서 보다 엄격한 동작을 따릅니다. SQL 엔드포인트의 열에 대한 거부는 여러 역할이 결합하여 액세스 권한을 부여하더라도 열에 대한 모든 액세스가 차단되도록 합니다. 따라서 SQL 엔드포인트의 CLS는 다른 모든 권한 유형에 대한 공용 구조체 동작 대신 사용자가 속한 모든 역할 간의 교집합을 사용하여 작동합니다. 역할이 결합하는 방법에 대한 자세한 내용은 여러 OneLake 보안 역할 평가 섹션을 참조하세요.

읽기쓰기 권한

ReadWrite 권한은 읽기 전용 사용자에게 특정 항목에 대한 쓰기 작업을 수행할 수 있는 기능을 제공합니다. ReadWrite 권한은 항목에 대한 읽기 권한이 있는 뷰어 또는 사용자에게만 적용됩니다. 관리자, 멤버 또는 기여자에게 ReadWrite 액세스 권한을 할당하는 것은 해당 역할에 이미 암시적으로 해당 권한이 있기 때문에 효과가 없습니다.

ReadWrite 액세스를 사용하면 사용자가 Spark Notebook, OneLake 파일 탐색기 또는 OneLake API를 통해 쓰기 작업을 수행할 수 있습니다. 뷰어를 위한 Lakehouse UX를 통한 쓰기 작업은 지원되지 않습니다.

ReadWrite 권한은 다음과 같은 방법으로 작동합니다.

  • ReadWrite 권한에는 읽기 권한이 부여한 모든 권한이 포함됩니다.
  • 개체에 대한 ReadWrite 권한이 있는 사용자는 해당 개체에 대해 쓰기 작업을 수행할 수 있습니다( 포함). 즉, 개체 자체에서 모든 작업을 수행할 수도 있습니다.
  • ReadWrite를 사용하면 다음 작업을 수행할 수 있습니다.
    • 새 폴더 또는 테이블 만들기
    • 폴더 또는 테이블 삭제
    • 폴더 또는 테이블 이름 바꾸기
    • 파일 업로드 또는 편집
    • 바로 가기 생성
    • 바로 가기 삭제하기
    • 바로 가기 이름 바꾸기
  • ReadWrite 액세스 권한이 있는 OneLake 보안 역할에는 RLS 또는 CLS 제약 조건이 포함될 수 없습니다.
  • Fabric은 단일 엔진 쓰기만 데이터에 지원하므로 개체에 대한 ReadWrite 권한이 있는 사용자는 OneLake를 통해서만 해당 데이터에 쓸 수 있습니다. 그러나 읽기 작업은 모든 쿼리 엔진을 통해 일관되게 적용됩니다.

바로 가기

바로 가기 개요

OneLake 보안은 OneLake의 바로 가기와 통합되어 OneLake 내부 및 외부의 데이터를 쉽게 보호합니다. 바로 가기에 대한 두 가지 주요 인증 모드가 있습니다.

  • SSO(통과 바로 가기): 쿼리 사용자의 자격 증명이 바로 가기 대상에 대해 평가되어 표시할 수 있는 데이터를 결정합니다.
  • 위임된 바로 가기: 바로 가기는 고정 자격 증명을 사용하여 대상에 액세스하고 쿼리 사용자는 위임된 자격 증명의 원본 액세스를 확인하기 전에 OneLake 보안에 대해 평가됩니다.

또한 OneLake에서 바로 가기를 만들 때 OneLake 보안 권한이 평가됩니다. 바로 가기 보안 문서에서 바로 가기 권한에 대해 알아봅니다.

통과 바로 가기의 OneLake 보안

OneLake 폴더의 보안 집합은 항상 내부 바로 가기 를 통해 흐르며 바로 가기 원본 경로에 대한 액세스를 제한합니다. 사용자가 또 다른 OneLake 위치에 대한 바로 가기를 통해 데이터에 액세스하는 경우, 호출하는 사용자의 ID를 활용하여 바로 가기의 대상 경로에 있는 데이터에 대한 액세스 권한이 부여됩니다. 따라서 사용자가 데이터를 읽을 수 있으려면 대상 위치에서 OneLake 보안 사용 권한이 있어야 합니다.

중요

DirectLake를 사용하여 SQL 또는 T-SQL 엔진을 위임된 ID 모드에서 Power BI 의미 체계 모델에 접근하여 바로 가기를 사용할 때, 호출한 사용자의 ID가 바로 가기의 대상으로 전달되지 않습니다. 대신 호출 항목 소유자의 ID가 전달되어 호출 사용자에게 액세스 권한을 위임합니다. 이 문제를 해결하려면 OneLake 모드를 통해 DirectLake에서 Power BI 의미 체계 모델을 사용하거나 사용자의 ID 모드에서 T-SQL을 사용합니다.

내부 바로 가기에 대한 OneLake 보안 권한 정의는 허용되지 않으며 대상 항목에 있는 대상 폴더에 대해 정의해야 합니다. 대상 항목은 OneLake 보안 역할을 지원하는 항목 유형이어야 합니다. 대상 항목이 OneLake 보안을 지원하지 않는 경우 대상 항목에 대한 Fabric ReadAll 권한이 있는지 여부에 따라 사용자의 액세스가 평가됩니다. 사용자는 바로 가기를 통해 액세스하기 위해 항목에 대한 패브릭 읽기 권한이 필요하지 않습니다.

위임된 바로 가기의 OneLake 보안

OneLake는 ADLS, S3 및 Dataverse 바로 가기와 같은 바로 가기에 대한 권한 정의를 지원합니다. 이 경우, 권한은 이러한 유형의 바로 가기에 대해 사용하도록 설정된 위임된 권한 부여 모델 상위에 적용됩니다.

가령, user1이 AWS S3 버킷의 폴더를 가리키는 S3 바로 가기를 레이크하우스에서 만든다고 가정합니다. 그리고 user2가 이 바로 가기에서 데이터에 액세스하려고 합니다.

S3 연결이 위임된 user1에 대한 액세스 권한을 부여하나요? OneLake 보안이 요청 중인 user2에 대한 액세스 권한을 부여하나요? 결과: user2가 S3 바로 가기에서 데이터에 액세스할 수 있나요?
아니요 아니요 아니요
아니요 아니요
아니요 아니요

OneLake 보안 권한은 바로 가기의 전체 범위 또는 선택한 하위 폴더에 대해 정의할 수 있습니다. 폴더에 설정된 사용 권한은 하위 폴더가 바로 가기 내에 있더라도 모든 하위 폴더에 재귀적으로 상속됩니다. 외부 바로 가기에 설정된 보안은 전체 바로 가기 또는 바로 가기 내의 하위 경로에 대한 액세스 권한을 부여하도록 범위를 지정할 수 있습니다. 외부 바로 가기를 가리키는 또 다른 내부 바로 가기를 사용하려면 사용자가 원래 외부 바로 가기에 액세스할 수 있어야 합니다.

OneLake 보안의 다른 액세스 유형과 달리 외부 바로 가기에 액세스하는 사용자는 외부 바로 가기가 있는 데이터 항목에 대한 패브릭 읽기 권한이 필요합니다. 외부 시스템에 대한 연결을 안전하게 확인하는 데 필요합니다.

OneLake 바로 가기에서 S3, ADLS 및 Dataverse 바로 가기에 대해 자세히 알아봅니다.

여러 OneLake 보안 역할 평가

사용자는 각각 데이터에 대한 자체 액세스를 제공하는 여러 OneLake 보안 역할의 멤버일 수 있습니다. 이러한 역할의 조합을 "효과적인 역할"이라고 하며 OneLake에서 데이터에 액세스할 때 사용자에게 표시됩니다. 역할은 UNION 또는 최소 제한 모델을 사용하여 OneLake 보안에서 결합됩니다. 즉, Role1이 TableA에 대한 액세스 권한을 부여하고 Role2가 TableB에 대한 액세스 권한을 부여하면 사용자는 TableA와 TableB를 모두 볼 수 있습니다.

OneLake 보안 역할에는 테이블의 행 및 열에 대한 액세스를 제한하는 행 및 열 수준 보안도 포함되어 있습니다. 각 RLS 및 CLS 정책은 역할 내에 존재하며 해당 단일 역할 내의 모든 사용자에 대한 데이터에 대한 액세스를 제한합니다. 예를 들어 Role1이 Table1에 대한 액세스 권한을 부여하지만 Table1에 RLS가 있고 Table1의 일부 열만 표시하는 경우 Role1의 유효 역할은 Table1의 RLS 및 CLS 하위 집합이 됩니다. n은 역할의 각 구성 요소의 교차점인 (R1ols n R1cls n R1rls)로 표현할 수 있습니다.

여러 역할을 처리할 때 RLS와 CLS는 각 테이블의 UNION 의미 체계와 결합됩니다. CLS는 각 역할에 표시되는 테이블의 직접 집합 UNION입니다. RLS는 OR 연산자를 사용하여 조건자 간에 결합됩니다. 예를 들어 WHERE city = 'Redmond' OR city = 'New York'입니다.

각각 RLS 또는 CLS를 사용하여 여러 역할을 평가하기 위해 각 역할은 먼저 역할 자체에서 제공하는 액세스에 따라 확인됩니다. 즉, 모든 개체, 행 및 열 수준 보안의 교집합을 평가합니다. 평가된 각 역할은 사용자가 UNION 작업을 통해 멤버인 다른 모든 역할과 결합됩니다. 출력은 해당 사용자의 효과적인 역할입니다. 다음과 같이 표현할 수 있습니다.

( (R1ols n R1cls n R1rls) u (R2ols n R2cls n R2rls) )

마지막으로, 레이크하우스의 각 바로 가기는 쿼리되는 항목에 바로 가기 대상의 권한을 전파하는 데 사용되는 유추된 역할 집합을 생성합니다. 유추된 역할은 바로 가기 레이크하우스의 역할과 결합되기 전에 바로 가기 대상에서 먼저 해결되는 것을 제외하고는 유추되지 않은 역할과 비슷한 방식으로 작동합니다. 이렇게 하면 바로 가기 레이크하우스에 대한 사용 권한의 상속이 끊어지고 유추된 역할이 올바르게 평가됩니다. 그런 다음 전체 조합 논리를 다음과 같이 표현할 수 있습니다.

( (R1ols n R1cls n R1rls) u (R2ols n R2cls n R2rls) ) n ( (R1'ols n R1'cls n R1'rls) u (R2'ols n R2'cls n R2'rls)) )

여기서 R1' 및 R2'는 유추된 역할이며 R1 및 R2는 바로 가기 레이크하우스 역할입니다.

중요

두 역할이 결합되어 열과 행이 쿼리 간에 정렬되지 않는 경우 최종 사용자에게 데이터가 유출되지 않도록 액세스가 차단됩니다.

OneLake 보안 제한 사항

  • B2B 게스트 사용자에게 OneLake 보안 역할을 할당하는 경우 Microsoft Entra 외부 ID의 B2B에 대한 외부 공동 작업 설정을 구성해야 합니다. 게스트 사용자 액세스 설정은 "게스트 사용자가 멤버와 동일한(가장 포괄적인) 액세스 권한을 가집니다."로 설정해야 합니다.

  • OneLake 보안은 지역 간 바로 가기를 지원하지 않습니다. 다른 용량 지역에서 데이터에 대한 바로 가기에 액세스하려고 하면 404 오류가 발생합니다.

  • OneLake 보안의 역할에 배포 목록을 추가하는 경우 SQL 엔드포인트는 액세스 권한을 적용할 목록의 멤버를 확인할 수 없습니다. 그 결과 사용자는 SQL 엔드포인트에 액세스할 때 해당 역할의 멤버가 아닌 것으로 나타납니다. SQL 의미 체계 모델의 DirectLake도 이 제한의 적용을 받습니다.

  • Spark SQL을 사용하여 Spark Notebook에서 데이터를 쿼리하려면 쿼리하는 작업 영역에서 뷰어 액세스 권한이 있어야 합니다.

  • 혼합 모드 쿼리는 지원되지 않습니다. OneLake 보안 사용 및 OneLake 보안이 아닌 데이터 모두에 액세스하는 단일 쿼리는 쿼리 오류로 실패합니다.

  • Spark Notebook을 사용하려면 환경이 3.5 이상이어야 하며 패브릭 런타임 1.3을 사용해야 합니다.

  • OneLake 보안은 프라이빗 링크 보호에서 작동하지 않습니다.

  • 외부 데이터 공유 미리 보기 기능은 데이터 액세스 역할 미리 보기와 호환되지 않습니다. 레이크하우스에서 데이터 액세스 역할 미리 보기를 사용하도록 설정하면 기존 외부 데이터 공유의 작동이 중지될 수 있습니다.

  • 해당 항목에서 OneLake 보안을 사용하는 경우 Azure Mirrored Databricks 카탈로그는 카탈로그 관리 기능을 지원하지 않습니다. 이 기능은 2025년 11월에 제공됩니다.

  • 다음 표에서는 OneLake 데이터 액세스 역할의 제한 사항을 제공합니다.

    시나리오 한계
    Fabric 항목당 OneLake 보안 역할의 최대 수 레이크하우스당 250개 역할
    OneLake 보안 역할당 최대 멤버 수 역할당 500명의 사용자 또는 사용자 그룹
    OneLake 보안 역할당 최대 권한 수 역할당 500개 권한

OneLake 보안의 지연

  • 역할 정의 변경 내용을 적용하는 데 약 5분이 걸립니다.
  • OneLake 보안 역할에서 사용자 그룹을 변경하는 경우 OneLake가 업데이트된 사용자 그룹에 역할의 권한을 적용하는 데 약 1시간이 걸립니다.
    • 일부 패브릭 엔진에는 자체 캐싱 계층이 있으므로 모든 시스템에서 액세스를 업데이트하는 데 1시간이 더 필요할 수 있습니다.