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 구성을 참조하세요.
ABAC 구성 데모는 Unity 카탈로그를 사용하여 ABAC(Attribute-Based Access Control) 검색을 참조하세요.
정책 유형
두 가지 유형의 ABAC 정책이 지원됩니다.
행 필터 정책은 내용에 따라 테이블의 개별 행에 대한 액세스를 제한합니다. 필터 UDF는 각 행을 사용자에게 표시해야 하는지 여부를 평가합니다. 이러한 정책은 액세스가 데이터 특성에 따라 달라지는 경우에 유용합니다.
예제 사용 사례: 지역 열이 관리 태그(예:
region=EMEA)와 일치하는 고객 트랜잭션 테이블에 행만 표시합니다. 이를 통해 지역 팀은 해당 지역과 관련된 데이터만 볼 수 있습니다.열 마스크 정책은 사용자가 특정 열에 표시되는 값을 제어합니다. 마스킹 UDF는 제어 태그에 따라 실제 값 또는 수정된 버전을 반환할 수 있습니다.
예제 사용 사례: 테이블이 태그가 지정되거나
sensitivity=low요청 중인 사용자가 준수 그룹에 있지 않으면 전화 번호가 포함된 열을 마스킹합니다. 액세스 권한이 없는 사용자는 null 또는 자리 표시자 값(예: .)XXX-XXX-XXXX을 참조하세요.
ABAC(특성 기반 액세스 제어) 정책 만들기 및 관리를 참조하세요.
제한점
- ABAC로 보호되는 테이블에 액세스하려면 Databricks Runtime 16.4 이상 또는 서버리스 컴퓨팅에서 컴퓨팅을 사용해야 합니다. 정책의 적용을 받지 않는 사용자는 런타임을 사용할 수 있습니다.
- 뷰에 ABAC 정책을 직접 적용할 수 없습니다. 그러나 ABAC 정책이 있는 테이블을 기반으로 하는 뷰를 쿼리하는 경우 뷰 소유자의 ID 및 사용 권한은 정책을 평가하는 데 사용됩니다. 즉, 다음을 의미합니다.
- 뷰 소유자는 기본 ABAC로 보호되는 테이블에 대한 적절한 권한이 있어야 합니다.
- 데이터 액세스는 뷰 소유자의 권한에 따라 평가됩니다. 사용자가 뷰를 쿼리할 때 뷰 소유자에게 표시될 때 필터링되거나 마스킹된 데이터가 표시됩니다.
- 동작은 컴퓨팅 구성에 따라 달라질 수 있습니다. 자세한 내용은 뷰 쿼리에 대한 요구 사항을 참조하세요.
- 구체화된 뷰 및 스트리밍 테이블에 대한 정책은 파이프라인 소유자가 정책에서 제외되는 경우에만 지원됩니다.
- 사용자는 필요한 델타 공유 권한이 있고 ABAC 정책에서 제외되는 경우 ABAC 정책으로 보호되는 테이블을 델타 공유할 수 있습니다. 정책은 받는 사람의 액세스를 제어하지 않습니다. 공유 공급자의 경우 ABAC 정책으로 보호되는 테이블 및 스키마를 공유에 추가하세요. 공유 받는 사람의 경우 ABAC 보안 데이터 읽기 및 ABAC 정책 적용을 참조하세요.
- 지정된 테이블과 지정된 사용자에 대해 런타임에 하나의 고유 행 필터만 확인할 수 있습니다. 여러 행 필터 정책을 정의할 수 있지만 사용자가 테이블을 쿼리할 때 하나의 정책 조건만 일치해야 합니다. 동일한 사용자 및 테이블에 여러 개의 고유 행 필터가 적용되는 경우, Azure Databricks는 액세스를 차단하고 오류를 발생시킵니다. 여러 정책이 동일한 필터(예: 동일한 인수를 가진 동일한 UDF)가 발생하는 경우 허용됩니다. 여러 필터 또는 마스크 문제 해결을 참조하세요.
- 지정된 열과 지정된 사용자에 대해 런타임에 하나의 고유 열 마스크만 확인할 수 있습니다. 여러 열 마스크 정책을 정의할 수 있지만 사용자가 테이블을 쿼리할 때 각 열에 대해 하나의 정책 조건만 일치해야 합니다. 동일한 사용자에 대해 동일한 열에 여러 개의 다른 열 마스크가 적용되는 경우, Azure Databricks는 액세스를 차단하고 오류를 발생시킵니다. 동일한 마스크(예: 동일한 인수를 가진 동일한 UDF)가 발생하는 경우 여러 정책이 허용됩니다. 여러 필터 또는 마스크 문제 해결을 참조하세요.
- ABAC 정책은 해당
MATCH COLUMNS절에 최대 3개의 열 조건을 포함할 수 있습니다. - ABAC 정책에 대한 정보 스키마 테이블이 없습니다.
information_schema.row_filters테이블과information_schema.column_masks테이블은 테이블에 직접 적용되는 행 필터 및 열 마스크만 표시합니다. ABAC 정책 정의 또는 런타임 시 ABAC 정책에서 파생된 필터 및 마스크는 표시되지 않습니다. - 전용 컴퓨팅에 대한 ABAC의 제한 사항은 제한 사항을 참조하세요.
행 필터 및 열 마스크의 제한 사항은 제한 사항을 참조하세요.