ABAC 요구 사항, 할당량 및 제한 사항

이 페이지에는 Unity 카탈로그의 ABAC(특성 기반 액세스 제어)에 대한 요구 사항, 정책 할당량 및 현재 제한 사항이 나열되어 있습니다.

컴퓨팅 요구 사항

ABAC 정책을 사용하려면 다음 컴퓨팅 구성 중 하나를 사용해야 합니다.

이전 런타임이 필요한 워크로드를 실행하는 방법에 대한 지침은 이전 런타임에서의 액세스를 참조하세요.

관리 태그 요구 사항

ABAC 정책은 관리되지 않는 태그가 아닌 관리 태그를 사용합니다. 제어 태그는 계정 수준에서 정의되며, 이를 만들고, 할당하고, 관리할 수 있는 사용자를 결정하는 액세스 제어를 사용합니다. 자세한 내용은 관리 태그를 참조하세요.

메모

태그를 할당하거나 수정한 후 변경 내용이 적용되는 데 몇 분 정도 걸릴 수 있습니다.

정책 할당량

Resource 제한
metastore당 정책 10000
카탈로그 또는 스키마당 정책 100
테이블당 정책 50
정책당 보안 주체(둘 다 TOEXCEPT 절에 적용됨) 20
절당 MATCH COLUMNS 열 조건 3

관리 태그 할당량을 비롯한 자세한 내용은 서비스 제한을 참조하세요.

ABAC 제한 사항

이전 런타임에서 액세스

16.4 이전 버전의 Databricks 런타임 버전에 대한 표준 및 전용 컴퓨팅은 ABAC 보안 테이블에 액세스할 수 없습니다. 이전 런타임에서 계속 실행하기 위해 특정 워크로드가 필요한 경우 ABAC 정책을 광범위하게 적용하는 대신 특정 그룹으로 범위를 지정합니다. 정책이 해당 그룹에 적용할 사용자 또는 보안 주체만 추가하고 절을 사용하여 이전 런타임 워크로드를 실행하는 보안 주체를 EXCEPT 제외합니다. 그룹 외부의 사용자는 기본 테이블에 대한 모든 권한을 유지합니다. 이렇게 하면 지원되는 런타임으로 전환하는 동안 워크로드가 테이블에 계속 액세스할 수 있습니다.

뷰에 대한 ABAC 정책

뷰에 ABAC 정책을 직접 적용할 수 없습니다. 그러나 사용자가 ABAC 정책을 사용하여 테이블을 참조하는 뷰를 쿼리하는 경우 뷰를 통해 데이터에 액세스할 때 해당 정책이 적용됩니다.

기본 테이블의 ABAC 행 필터 및 열 마스크는 세션 사용자의 ID를 사용하여 평가됩니다. 즉, 쿼리를 실행하는 사용자를 의미합니다. 사용자는 기본 테이블의 ABAC 정책에 정의된 대로 액세스 권한이 부여된 행 및 열 값만 볼 수 있습니다. 기본 테이블 액세스 검사 및 종속성에 대한 액세스 검사는 뷰 소유자의 ID를 사용하므로 사용자는 기본 테이블에 대한 직접 권한 없이 뷰를 쿼리할 수 있습니다.

메모

동일한 세션 사용자 ID 모델은 ABAC 정책이 있는 테이블에 함수를 통해 액세스할 때 적용됩니다.

세션 사용자 ID 모델은 ABAC GA 릴리스와 함께 도입되었습니다. 이전에는 뷰 소유자 또는 함수 정의자의 ID를 사용하여 정책을 평가했습니다. 자세한 내용은 2026년 4월 릴리스 정보를 참조하세요.

구체화된 뷰 및 스트리밍 테이블에 대한 ABAC 정책

메모

이전에는 구체화된 뷰 및 스트리밍 테이블에 대한 ABAC 정책은 파이프라인 소유자 또는 실행 ID 가 정책에서 제외된 경우에만 지원되었습니다. 해당 제한 사항이 제거되었습니다.

파이프라인이 구체화된 뷰 또는 스트리밍 테이블을 새로 고치면 파이프라인 소유자 또는 실행 ID를 사용하여 정책이 평가됩니다. 해당 ID가 정책의 적용을 받는 경우 구체화된 뷰 또는 스트리밍 테이블에는 마스킹되거나 필터링된 데이터가 영구적으로 포함됩니다. Databricks는 절을 사용하여 EXCEPT 새로 고침 ID를 제외하고 절에 TO 마스킹되거나 필터링된 데이터가 표시되어야 하는 소비자를 대상으로 하는 것이 좋습니다.

ABAC 정책 또는 이를 참조하는 뷰를 사용하여 델타 공유 테이블

ABAC 정책을 사용하여 테이블을 참조하는 ABAC 정책 또는 뷰가 있는 테이블은 공유 소유자가 정책에서 제외된 경우에만 델타 공유를 통해 공유할 수 있습니다(절에 EXCEPT 나열됨). 정책은 받는 사람의 액세스를 제어하지 않습니다. 받는 사람은 공유 테이블에 자신의 ABAC 정책을 적용하여 액세스 제어를 적용할 수 있습니다.

ABAC에서 델타 공유를 사용하는 방법에 대한 자세한 내용은 델타 공유 및 ABAC를 참조하세요.

ABAC 정책을 사용하여 테이블에 대한 시간 이동 및 복제

ABAC 정책은 기록 테이블 스냅샷에 대해 평가할 수 없으므로 활성 행 필터 또는 열 마스크가 있는 테이블에서 시간 이동 쿼리가 실패합니다. 깊고 얕은 클론은 ABAC 정책이 있는 테이블에서도 지원되지 않습니다.

이러한 작업을 사용하도록 설정하려면 서비스 주체 또는 그룹을 만들고 정책의 EXCEPT 절에 추가합니다. 정책은 제외된 보안 주체에 대해 평가되지 않으므로 이러한 작업을 실행할 수 있습니다.

Important

제외된 보안 주체에는 필터링되지 않은 마스크되지 않은 데이터가 표시됩니다. ETL 또는 파이프라인 워크로드에 사용되는 서비스 주체와 같은 신뢰할 수 있는 ID만 제외됩니다.

예를 들어 다음 정책은 시간 이동 쿼리를 실행하고 작업을 복제할 수 있는 PII 열을 제외한 etl_service_principal모든 사용자에 대해 마스크합니다.

CREATE POLICY mask_pii
ON CATALOG prod
COLUMN MASK prod.governance.mask_value
TO `account users`
EXCEPT `etl_service_principal`
FOR TABLES
MATCH COLUMNS
  has_tag_value('pii', 'ssn') AS ssn
ON COLUMN ssn;

벡터 검색 인덱스 및 ABAC 정책

원본 테이블의 ABAC 정책은 해당 테이블에서 만든 벡터 검색 인덱스에 적용되지 않습니다. 인덱스는 원본 테이블의 모든 행을 동기화하고 쿼리를 처리할 때 행 필터 또는 열 마스크 정책을 적용하지 않습니다.

열 마스크가 있는 테이블의 경우 열을 사용하여 인덱스에서 마스킹된 열을 제외하여 설정을 동기화할 수 있습니다 .

동일한 사용자에 대해 동일한 테이블 또는 열의 여러 정책

런타임에 지정된 테이블과 지정된 사용자에 대해 하나의 고유 행 필터만 확인할 수 있으며 지정된 열과 지정된 사용자에 대해 하나의 고유 열 마스크만 확인할 수 있습니다. 여러 정책을 정의할 수 있지만 사용자가 테이블을 쿼리할 때 하나의 정책 조건만 일치해야 합니다. 동일한 사용자 및 테이블 또는 열에 여러 개의 고유 행 필터 또는 열 마스크가 적용되는 경우 Azure Databricks 액세스를 차단하고 오류를 반환합니다. 동일한 인수를 사용하여 동일한 행 필터 또는 열 마스크 UDF로 확인하면 여러 정책이 허용됩니다.

자세한 내용은 여러 필터 및 마스크에 대한 규칙을 참조하세요.

ABAC 정책 및 정보 스키마

ABAC 정책에 대한 정보 스키마 테이블은 없습니다. 테이블 및 information_schema.column_masks 테이블에는 information_schema.row_filters테이블 수준 행 필터와 열 마스크만 표시됩니다. 런타임 시 ABAC 정책 정의 또는 ABAC 정책에서 파생된 필터 및 마스크를 표시하지 않습니다.

ABAC 정책을 나열하려면 Unity 카탈로그 REST API를 사용합니다. 정책 만들기, 수정 및 삭제 이벤트는 감사 로그 시스템 테이블에 캡처됩니다.

전용 컴퓨팅의 ABAC

전용 컴퓨팅에 대한 ABAC의 제한 사항은 제한 사항을 참조하세요.

ABAC 및 테이블 수준 행 필터 및 열 마스크에 공통적인 제한 사항

ABAC 및 테이블 수준 행 필터와 열 마스크 모두에 적용되는 행 필터 및 열 마스크의 일반적인 제한 사항은 제한 사항을 참조하세요.