Important
이 기능은 베타 버전으로 제공됩니다.
이 페이지에서는 Unity 카탈로그의 ABAC(특성 기반 액세스 제어)에 대해 설명합니다.
ABAC란?
ABAC는 Azure Databricks에서 유연하고 확장 가능하며 중앙 집중식 액세스 제어를 제공하는 데이터 거버넌스 모델입니다. ABAC는 데이터 자산에 적용되는 관리 태그에 따라 정책을 정의할 수 있도록 하여 Unity 카탈로그의 기존 권한 모델을 보완합니다. 이렇게 하면 거버넌스가 간소화되고 보안이 강화됩니다.
사용 권한 또는 개체 소유권이 있는 MANAGE
사용자는 정책을 한 번만 정의하면 되며 여러 데이터 자산에서 일관되게 적용할 수 있습니다. 정책은 카탈로그, 스키마 또는 테이블 수준에서 연결되며 해당 범위 내의 모든 테이블에 자동으로 적용됩니다. 상위 수준에서 정의된 경우 정책은 하위 개체로 하향 상속됩니다. 데이터 자산에 대한 제어 태그는 적용되는 정책을 결정하므로 액세스 제어가 동적으로 적응할 수 있습니다.
ABAC의 이점
- 확장성: 개별 권한 대신 태그를 활용하여 대규모로 액세스 제어를 관리합니다.
- 융통성: 각 데이터 자산을 수정하지 않고 태그 또는 정책을 업데이트하여 거버넌스를 쉽게 조정합니다.
- 중앙 집중식 거버넌스: 카탈로그, 스키마 및 테이블에 걸쳐 있는 통합 모델을 통해 정책 관리를 간소화합니다.
- 향상된 보안: 데이터 특성에 따라 동적으로 세분화된 액세스 제어를 적용합니다.
- 감사 가능성: 포괄적인 감사 로그를 통해 데이터 액세스에 대한 실시간 가시성을 유지합니다.
ABAC 작동 방식
Unity 카탈로그의 ABAC는 제어 태그, 정책 및 UDF(사용자 정의 함수)를 사용하여 동적 특성 기반 액세스 제어를 적용합니다. 다음 구성 요소 및 메커니즘은 ABAC의 핵심입니다.
관리 태그: 관리 태그는 태그 정책을 사용하여 계정 수준에서 정의됩니다. 이러한 태그는 데이터 민감도, 분류 또는 비즈니스 도메인과 같은 특성을 나타내며 Unity 카탈로그의 테이블, 스키마 또는 카탈로그에 할당됩니다. 정책 적용을 구동하는 특성 역할을 합니다. 관리 태그를 참조하고 Unity 카탈로그 보안 개체에 태그 적용을 참조하세요.
정책: 정책은 Unity 카탈로그 내의 세 가지 계층적 수준에서 생성되고 관리됩니다.
- 카탈로그 수준: 포함된 모든 스키마 및 테이블에 영향을 주는 광범위한 정책을 적용합니다.
- 스키마 수준: 스키마 및 해당 테이블과 관련된 정책을 적용합니다.
- 테이블 수준: 개별 테이블에 직접 세분화된 정책을 적용합니다.
정책은 상속 모델을 따릅니다. 정책이 카탈로그 또는 스키마 수준에서 정의되면 해당 범위 내의 모든 자식 개체, 스키마 및 테이블에 자동으로 적용됩니다. 이를 통해 관리자는 대규모 데이터 자산 집합을 제어하는 단일 정책을 적용하여 효율적인 거버넌스를 구현할 수 있습니다. 상속된 정책은 중복성을 줄이고 데이터 계층 구조 전체에서 일관된 적용을 촉진합니다. Databricks는 거버넌스 효율성을 극대화하고 관리 오버헤드를 줄이기 위해 가장 높은 적용 가능한 수준(일반적으로 카탈로그)에서 정책을 정의하는 것이 좋습니다. ABAC(특성 기반 액세스 제어) 정책 만들기 및 관리를 참조하세요.
UDF(사용자 정의 함수): UDF는 스키마 수준에서 정의된 사용자 지정 함수이며 Unity 카탈로그 네임스페이스에서 전역적으로 참조할 수 있습니다. UDF는 정책 내에서 행 필터링 또는 특성 기반 열 값 마스킹과 같은 복잡한 논리를 표현하는 데 사용됩니다. 예를 들어,
filter_region
라는 UDF를 행 필터 정책에서 사용하여region = 'EMEA'
인 경우에만 행을 반환할 수 있습니다. Unity 카탈로그에서 사용자 정의 함수(UDF)을 참조하세요.동적 적용: 사용자가 태그가 지정된 데이터 자산에 액세스하려고 하면 Unity 카탈로그는 태그에 따라 적용 가능한 정책을 평가하고 정의된 액세스 제어를 적용합니다.
정책에서 명시적으로 제외된 사용자는 깊고 단순한 복제 및 기본 데이터에 대한 시간 이동과 같은 작업을 계속 수행할 수 있습니다.
감사 로깅: 태그가 지정된 데이터 자산에 대한 모든 작업이 감사 로그 시스템 테이블에 캡처되고 기록되어 포괄적인 가시성 및 규정 준수 추적이 가능합니다. 감사 로그를 참조하세요.
ABAC를 구성하는 방법을 알아보려면 자습서: ABAC 구성을 참조하세요.
ABAC 구성 데모는 Unity 카탈로그를 사용하여 ABAC(Attribute-Based Access Control) 검색을 참조하세요.
정책 유형
두 가지 유형의 ABAC 정책이 지원됩니다.
행 필터 정책은 내용에 따라 테이블의 개별 행에 대한 액세스를 제한합니다. 필터 UDF는 각 행을 사용자에게 표시해야 하는지 여부를 평가합니다. 이러한 정책은 액세스가 데이터 특성에 따라 달라지는 경우에 유용합니다.
예제 사용 사례: 지역 열이 관리 태그(예:
region=EMEA
)와 일치하는 고객 트랜잭션 테이블에 행만 표시합니다. 이를 통해 지역 팀은 해당 지역과 관련된 데이터만 볼 수 있습니다.열 마스크 정책은 사용자가 특정 열에 표시되는 값을 제어합니다. 마스킹 UDF는 제어 태그에 따라 실제 값 또는 수정된 버전을 반환할 수 있습니다.
예제 사용 사례: 테이블이 태그가 지정되거나
sensitivity=low
요청 중인 사용자가 준수 그룹에 있지 않으면 전화 번호가 포함된 열을 마스킹합니다. 액세스 권한이 없는 사용자는 null 또는 자리 표시자 값(예: .)XXX-XXX-XXXX
을 참조하세요.
ABAC(특성 기반 액세스 제어) 정책 만들기 및 관리를 참조하세요.
베타 제한 사항
ABAC 미리 보기 단계 중에는 다음과 같은 제한 사항이 적용됩니다.
- 테이블에 대한 사용 권한이 있지만 ASSIGN 제어 태그 권한이 없는 사용자는
MODIFY
제어 태그가 있는 열을 삭제할 수 있습니다. 이렇게 하면 테이블 구조가 변경되고 해당 열에 연결된 ABAC 정책이 무효화될 수 있습니다. - ABAC 베타는 작업 영역 수준에서 사용하도록 설정됩니다. Databricks는 베타에서 사용하도록 설정되지 않은 작업 영역에서 액세스할 때 카탈로그에 ABAC 정책을 적용하지 않습니다.
- 사용자는 필요한 델타 공유 권한이 있고 ABAC 정책에서 제외되는 경우 ABAC 정책으로 보호되는 테이블을 델타 공유할 수 있습니다. 정책은 받는 사람의 액세스를 제어하지 않습니다. 공유 공급자의 경우 ABAC 정책으로 보호되는 테이블 및 스키마를 공유에 추가하세요. 공유 받는 사람의 경우 ABAC 정책으로 보호되는 데이터 자산 읽기를 참조하세요.
- 보기는 지원되지 않습니다.
- 외국 카탈로그는 지원되지 않습니다.
- 구체화된 뷰 및 스트리밍 테이블은 지원되지 않습니다.
- 개체 계층 구조 내의 지정된 열 또는 행에 하나의 열 마스크 또는 행 필터만 적용할 수 있습니다. 여러 마스크 또는 필터를 적용하면 테이블에 액세스할 수 없게 될 수 있습니다.