다음을 통해 공유


Unity 카탈로그의 액세스 제어

이 페이지에는 권한, 정책 및 데이터 수준 컨트롤을 포함하여 Unity 카탈로그의 액세스 제어에 대한 개요가 있습니다.

액세스 제어 계층

Unity 카탈로그의 액세스 제어는 다음과 같은 보완 모델을 기반으로 합니다.

  • 작업 영역 수준 제한은 개체를 특정 작업 영역으로 제한하여 사용자가 데이터에 액세스할 수 있는 위치를 제어합니다.
  • 권한 및 소유권은 보안 가능한 개체에 대한 권한을 사용하여 누가무엇을 액세스할 수 있는지를 제어합니다.
  • ABAC(특성 기반 정책) 는 관리 태그 및 중앙 집중식 정책을 사용하여 사용자가 액세스할 수 있는 데이터를 제어합니다.
  • 테이블 수준 필터링 및 마스킹 은 테이블별 필터 및 뷰를 사용하여 테이블 내에서 사용자가 볼 수 있는 데이터를 제어 합니다.

이러한 모델은 데이터 환경에서 안전하고 세분화된 액세스를 적용하기 위해 함께 작동합니다.

레이어 목적 메커니즘
작업 영역 수준 제한 특정 카탈로그, 외부 위치 및 스토리지 자격 증명에 액세스할 수 있는 작업 영역 제한 작업 영역 수준 바인딩
권한 및 소유권 카탈로그, 스키마, 테이블 및 기타 개체에 대한 액세스 제어 사용자 및 그룹에 대한 권한 부여, 개체 소유권
특성 기반 정책 태그 및 정책을 사용하여 필터 및 마스크를 동적으로 적용 ABAC 정책 및 관리 태그
테이블 수준 필터링 및 마스킹 테이블 내에서 사용자가 볼 수 있는 데이터 제어 행 필터, 열 마스크, 동적 보기

작업 영역 수준 제한

계정의 작업 영역이 특정 카탈로그, 외부 위치스토리지 자격 증명에 액세스할 수 있는 작업 영역 바인딩 제한입니다. 이 액세스 제어는 작업 영역 수준에서 발생하며 사용자 또는 그룹 권한에 관계없이 적용됩니다.

기본적으로 Unity 카탈로그의 모든 카탈로그, 외부 위치 및 스토리지 자격 증명은 동일한 메타스토어에 연결된 모든 작업 영역에서 액세스할 수 있습니다. 바인딩을 사용하여 다음을 수행할 수 있습니다.

  • 하나 이상의 지정된 작업 영역에 대한 액세스 제한
  • 특정 작업 영역에서 카탈로그 액세스 읽기 전용으로 설정
  • 환경 격리(예: 프로덕션 작업 영역으로 프로덕션 데이터 제한)
  • 외부 위치 및 스토리지 자격 증명의 사용을 특정 작업 영역으로 제한

이러한 바인딩은 사용자 수준 권한을 재정의합니다. 사용자에게 개체에 대한 권한이 있지만 언바운드 작업 영역에서 액세스하려고 하면 액세스가 거부됩니다.

자세한 내용은특정 작업 영역에 대한 카탈로그 액세스 제한 참조하세요.

권한 및 소유권

Unity 카탈로그의 액세스는 주로 권한 및 개체 소유권에 의해 제어됩니다. 이 모델은 관리자 역할을 할당하고 권한을 부여하고 보안 개체 간에 소유권을 관리하여 데이터 및 메타데이터에 액세스하거나 관리할 수 있는 사용자를 정의합니다. 이 섹션에서는 권한 부여 방법, 소유권 작동 방식 및 다양한 범위에서 액세스를 관리할 수 있는 관리자 역할에 대해 설명합니다.

관리자 역할

Unity 카탈로그는 다음과 같은 여러 관리자 역할을 지원합니다.

  • 계정 관리자: 메타스토어를 만들고, ID를 관리하고, 메타스토어 관리자를 할당하고, 델타 공유 및 시스템 테이블과 같은 계정 수준 기능을 관리할 수 있습니다.
  • Metastore 관리자: 메타스토어의 모든 개체를 관리하고, 소유권을 이전하고, 등과 같은 CREATE CATALOGCREATE EXTERNAL LOCATION최상위 권한을 할당할 수 있는 선택적이지만 강력한 역할입니다.
  • 작업 영역 관리자: ID, 작업 영역 수준 설정 및 작업 영역 카탈로그를 관리합니다.

자세한 내용은 Unity 카탈로그의 관리자 권한을 참조하세요.

개체 소유권

Unity 카탈로그의 카탈로그, 스키마 또는 테이블과 같은 모든 보안 개체에는 소유자가 있습니다. 소유권은 다음을 수행할 수 있는 기능을 포함하여 해당 개체에 대한 모든 권한을 부여합니다.

  • 개체 및 해당 메타데이터를 읽거나 수정합니다.
  • 다른 사용자에게 권한 부여
  • 소유권을 다른 주체로 이전

Unity 카탈로그는 사용자가 소유자로 MANAGE 지정하지 않고도 액세스 권한을 부여하고 개체를 수정할 수 있는 권한을 지원합니다.

소유권에 대한 자세한 내용은 Unity 카탈로그 개체 소유권 관리를 참조하세요.

보안 개체에 대한 권한

Unity 카탈로그에서 액세스 제어는 권한으로 시작합니다. 카탈로그, 스키마, 테이블, SELECT뷰, 볼륨 및 MODIFY 함수와 같은 보안 개체의 사용자 및 그룹에 , 등의 USE SCHEMA권한을 할당합니다.

권한 적용은 다음과 같습니다.

  • 계층 구조: 카탈로그와 같은 상위 수준 개체에 대한 권한 부여는 테이블과 같은 하위 수준 개체로 연계됩니다.
  • 위임 가능: 모든 개체에는 개체를 관리하고 다른 사용자에게 액세스 권한을 부여할 수 있는 소유자가 있습니다.
  • 명시적: 사용자 또는 그룹에 적절한 권한이 부여된 경우에만 액세스가 허용됩니다. 사용자는 구성원인 모든 그룹에서 사용 권한의 합집합을 부여합니다.

사용자는 권한 또는 개체에 대한 직접 URL을 통해 BROWSE 또는 Notebook 또는 SQL 편집기에서 사용 권한이 거부된 오류가 발생하는 경우 검색할 수 있는 개체에 대한 액세스를 요청할 수 있습니다. Databricks는 개체를 BROWSE 검색할 수 있도록 하고 사용자가 액세스를 요청할 수 있도록 그룹에 카탈로그 All account users 를 부여하는 것이 좋습니다. 액세스 요청은 전자 메일, Slack, Microsoft Teams, 웹후크 엔드포인트 또는 리디렉션 URL과 같은 구성된 대상으로 전송됩니다. 대상이 구성되지 않은 경우 사용자는 개체에 대한 액세스를 요청할 수 없습니다.

자세한 내용은 Unity 카탈로그에서 권한 관리Unity 카탈로그 권한 및 보안 개체를 참조하세요.

경로 기반 액세스에 대한 권한 캐싱

Unity 카탈로그는 클라우드 스토리지에 대한 경로 기반 액세스의 성능을 향상시키기 위해 사용자 및 경로당 최대 60초 동안 권한 검사 결과를 캐시할 수 있습니다. 이 캐싱은 다음에 적용됩니다.

  • dbutils.fs 명령을 사용한 파일 시스템 작업
  • Spark SQL을 사용하는 경로 기반 쿼리

이 캐싱 동작으로 인해 권한 부여 또는 해지가 즉시 반영되지 않을 수 있습니다. 이 동작은 경로 기반 액세스에만 영향을 줍니다. 이름 기반 액세스(예: SELECT * FROM catalog.schema.table)는 이 캐시의 영향을 받지 않습니다.

ABAC(특성 기반 액세스 제어)

중요합니다

이 기능은 공개 미리보기 단계에 있습니다.

ABAC는 Unity 카탈로그에서 액세스 제어를 적용하기 위한 중앙 집중식 태그 기반 정책 프레임워크입니다. 관리자는 관리 태그를 기반으로 카탈로그, 스키마 및 테이블에 동적으로 적용되는 확장 가능한 정책을 정의할 수 있습니다. 정책은 데이터를 필터링하거나 중요한 값을 마스크할 수 있습니다. Databricks는 각 테이블에 개별적으로 필터 또는 마스크를 적용하는 대신 중앙 집중식 및 확장 가능한 거버넌스에 ABAC를 사용하는 것이 좋습니다.

ABAC는 메타데이터 특성에 따라 액세스 제어 정책을 적용하기 위한 범용 프레임워크로 설계되었습니다. 권한 기반 컨트롤을 보완하고 개체별 구성을 요구하지 않고 세분화된 적용을 지원합니다.

주요 기능:

  • 태그 기반 정책: 관리 태그 및 UDF(사용자 정의 함수)를 사용하여 정책을 한 번 정의하고 여러 데이터 자산에 일관되게 적용합니다.
  • 계층적 적용: 자식 개체에 자동 상속을 사용하여 카탈로그, 스키마 또는 테이블 수준에서 정책을 적용합니다.
  • 중앙 집중식, 확장성 있는 거버넌스: 각 개체에 대한 개별 권한을 할당하지 않고 대규모로 액세스를 관리합니다.
  • 동적 평가: 액세스 결정은 태그 및 사용자 컨텍스트에 따라 실시간으로 평가됩니다.

자세한 내용은 Unity Catalog ABAC(특성 기반 액세스 제어)를 참조하세요.

테이블 수준 필터링 및 마스킹

이 섹션에서는 테이블별 논리를 사용하여 쿼리 시 사용자가 볼 수 있는 데이터를 제어하는 메커니즘에 대해 설명합니다. 여기에는 다음이 포함됩니다.

  • 행 필터 및 열 마스크: 테이블에 논리를 직접 적용합니다.
  • 동적 뷰: 하나 이상의 테이블에 대해 SQL을 사용하여 논리를 정의합니다.

이러한 접근 방식은 거버넌스 모델에 따라 ABAC와 독립적으로 또는 함께 사용할 수 있습니다.

행 필터와 열 차단기

행 필터 및 열 마스크는 UDF를 사용하여 개별 테이블에 직접 필터 또는 마스크 논리를 적용합니다. 중앙 집중식 정책 관리 없이 테이블당 논리를 적용하려는 경우에 유용합니다.

자세한 내용은 행 필터 및 열 마스크를 참조하세요.

동적 보기

동적 보기를 사용하면 SQL을 사용하여 하나 이상의 테이블에 대한 논리를 정의할 수 있습니다. 읽기 전용이며 다음과 같은 경우에 유용합니다.

  • 변환 논리 적용(예: 조인 및 CASE 문)
  • ABAC가 지원되지 않는 델타 공유를 사용하여 필터링된 데이터 공유

자세한 내용은 동적 보기 만들기를 참조하세요.

각 액세스 제어 메커니즘을 사용하는 경우

작업 영역 바인딩, 권한 및 ABAC 정책은 모두 서로 다른 수준에서 액세스를 평가하며 함께 사용하도록 설계되었습니다. 다음 표에서는 일반적인 액세스 제어 조건과 비교합니다.

비고

Databricks는 ABAC 를 사용하여 관리되는 태그에 따라 액세스 제어를 중앙 집중화하고 크기를 조정하는 것이 좋습니다. 테이블별 논리가 필요하거나 아직 ABAC를 채택하지 않은 경우에만 행 필터 및 열 마스크를 사용합니다.

메커니즘 적용 대상 다음을 사용하여 정의된다 사용 사례
작업 영역 바인딩 카탈로그, 외부 위치, 스토리지 자격 증명 작업 영역 할당 특정 작업 영역에서 개체에 대한 액세스 제한
권한 카탈로그, 스키마, 테이블 권한 부여(GRANT, REVOKE), 소유권 기본적인 접근 및 위임
ABAC 정책 태그가 지정된 개체(테이블, 스키마) 관리 태그 및 UDF를 사용하는 정책 중앙 집중식 태그 기반 정책 및 동적 적용
테이블 수준 행/열 필터 개별 테이블 테이블에 있는 UDF 테이블별 필터링 또는 마스킹
동적 보기 하나 이상의 테이블에 대한 뷰 SQL(포함된 필터 또는 마스크 포함) 읽기 전용 액세스, 복잡한 논리, 델타 공유