특정 작업 영역에 대한 카탈로그 액세스 제한

이 문서에서는 작업 영역 카탈로그 바인딩을 소개하고 Azure Databricks 계정의 다른 작업 영역이 액세스하지 못하도록 Unity 카탈로그 카탈로그를 Azure Databricks 작업 영역에 바인딩하는 방법을 설명합니다.

작업 영역 카탈로그 바인딩이란?

작업 영역을 사용하여 사용자 데이터 액세스를 격리하는 경우 계정의 특정 작업 영역(작업 영역 카탈로그 바인딩이라고도 함)에 대한 카탈로그 액세스를 제한할 수 있습니다. 기본값은 카탈로그를 현재 메타스토어에 연결된 모든 작업 영역과 공유하는 것입니다.

이 기본값의 예외는 모든 새 작업 영역에 대해 자동으로 만들어지는 작업 영역 카탈로그 입니다. 이 작업 영역 카탈로그는 다른 작업 영역에 대한 액세스 권한을 부여하도록 선택하지 않는 한 작업 영역에만 바인딩됩니다. 이 카탈로그를 바인딩 해제하는 경우 사용 권한을 할당하는 방법에 대한 중요한 내용은 작업 영역에서 카탈로그 바인딩 해제를 참조 하세요.

작업 영역에서 카탈로그에 대한 읽기 및 쓰기 액세스를 허용하거나 읽기 전용 액세스를 지정할 수 있습니다. 읽기 전용을 지정하면 모든 쓰기 작업이 해당 작업 영역에서 해당 카탈로그로 차단됩니다.

카탈로그를 특정 작업 영역에 바인딩하는 일반적인 사용 사례는 다음과 같습니다.

  • 사용자가 프로덕션 작업 영역 환경에서만 프로덕션 데이터에 액세스할 수 있도록 합니다.
  • 사용자가 전용 작업 영역에서 중요한 데이터만 처리할 수 있도록 합니다.
  • 개발자 작업 영역에서 프로덕션 데이터에 대한 읽기 전용 액세스 권한을 사용자에게 제공하여 개발 및 테스트를 사용하도록 설정합니다.

참고 항목

외부 위치 및 스토리지 자격 증명을 특정 작업 영역에 바인딩하여 외부 위치의 데이터에 액세스하는 기능을 해당 작업 영역의 권한 있는 사용자로 제한할 수도 있습니다. (선택 사항) 특정 작업 영역에 외부 위치 할당 및 (선택 사항) 특정 작업 영역에 스토리지 자격 증명 할당을 참조하세요.

작업 영역 카탈로그 바인딩 예제

프로덕션 및 개발 격리의 예를 들어 보세요. 프로덕션 데이터 카탈로그를 프로덕션 작업 영역에서만 액세스할 수 있도록 지정하면 사용자에게 발급된 개별 보조금이 대체됩니다.

카탈로그 작업 영역 바인딩 다이어그램

이 다이어그램에서는 prod_catalog 두 개의 프로덕션 작업 영역에 바인딩됩니다. 호출 my_table 된 테이블에 prod_catalog 대한 액세스 권한이 사용자에게 부여되었다고 가정합니다(사용GRANT SELECT ON my_table TO <user>). 사용자가 개발자 작업 영역에서 액세스 my_table 하려고 하면 오류 메시지가 표시됩니다. 사용자는 Prod ETL 및 Prod Analytics 작업 영역에서만 액세스할 my_table 수 있습니다.

작업 영역 카탈로그 바인딩은 플랫폼의 모든 영역에서 적용됩니다. 예를 들어 정보 스키마를 쿼리하는 경우 쿼리를 실행한 작업 영역에서 액세스할 수 있는 카탈로그만 표시됩니다. 마찬가지로 데이터 계보 및 검색 UI는 작업 영역에 할당된 카탈로그만 표시합니다(바인딩 사용 여부 또는 기본적으로).

하나 이상의 작업 영역에 카탈로그 바인딩

특정 작업 영역에 카탈로그를 할당하려면 카탈로그 탐색기 또는 Databricks CLI를 사용할 수 있습니다.

필요한 권한: Metastore 관리자 또는 카탈로그 소유자입니다.

참고 항목

Metastore 관리자는 카탈로그 탐색기를 사용하여 메타스토어의 모든 카탈로그를 볼 수 있으며 카탈로그 소유자는 카탈로그가 현재 작업 영역에 할당되었는지 여부에 관계없이 메타스토어에서 소유한 모든 카탈로그를 볼 수 있습니다. 작업 영역에 할당되지 않은 카탈로그는 회색으로 표시되고 자식 개체는 표시되거나 쿼리할 수 없습니다.

카탈로그 탐색기

  1. 메타스토어에 연결된 작업 영역에 로그인합니다.

  2. 카탈로그를 클릭합니다카탈로그 아이콘.

  3. 카탈로그 창의 왼쪽에서 카탈로그 이름을 클릭합니다.

    기본 카탈로그 탐색기 창은 기본적으로 카탈로그 목록으로 설정됩니다 . 카탈로그를 선택할 수도 있습니다.

  4. 작업 영역 탭에서 모든 작업 영역에 액세스 권한이 있는지 확인란의 선택을 취소 합니다.

    카탈로그가 이미 하나 이상의 작업 영역에 바인딩된 경우 이 확인란은 이미 선택 취소되어 있습니다.

  5. 작업 영역에 할당을 클릭하고 할당할 작업 영역을 입력하거나 찾습니다.

  6. (선택 사항) 작업 영역 액세스를 읽기 전용으로 제한합니다.

    액세스 수준 관리 메뉴에서 읽기 전용으로 액세스 변경을 선택합니다.

    카탈로그를 편집하고 읽기 및 쓰기에 대한 액세스 변경(Change access)을 선택하여 언제든지 이 선택을 되돌릴 수 있습니다.

액세스 권한을 취소하려면 작업 영역 탭으로 이동하여 작업 영역을 선택하고 해지(Revoke)를 클릭합니다.

CLI

두 개의 Databricks CLI 명령 그룹과 작업 영역에 카탈로그를 할당하는 데 필요한 두 단계가 있습니다.

다음 예제에서는 Azure Databricks 인증 구성 프로필의 이름으로 바꿉 <profile-name> 니다. 개인 액세스 토큰을 생성한 작업 영역의 작업 영역 인스턴스 이름 및 작업 영역 ID 외에도 개인 액세스 토큰의 값을 포함해야 합니다. Azure Databricks 개인용 액세스 토큰 인증을 참조하세요.

  1. catalogs 명령 그룹의 update 명령을 사용하여 카탈로그 isolation mode 를 다음으로 ISOLATED설정합니다.

    databricks catalogs update <my-catalog> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    기본값 isolation-modeOPEN 메타스토어에 연결된 모든 작업 영역입니다.

  2. workspace-bindings 명령 그룹의 update-bindings 명령을 사용하여 작업 영역을 카탈로그에 할당합니다.

    databricks workspace-bindings update-bindings catalog <my-catalog> \
    --json '{
      "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
      "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
    }' --profile <profile-name>
    

    "add""remove" 속성을 사용하여 작업 영역 바인딩을 추가하거나 제거합니다. “BINDING_TYPE_READ_WRITE” (<binding-type>기본값) 또는 “BINDING_TYPE_READ_ONLY”.

카탈로그에 대한 모든 작업 영역 할당을 나열하려면 명령 그룹의 get-bindings 명령을 사용합니다workspace-bindings.

databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>

작업 영역에서 카탈로그 바인딩 해제

카탈로그 탐색기 또는 workspace-bindings CLI 명령 그룹을 사용하여 카탈로그에 대한 작업 영역 액세스를 취소하는 지침은 하나 이상의 작업 영역에 카탈로그 바인딩에 포함되어 있습니다.

Important

작업 영역이 자동으로 Unity 카탈로그에 사용하도록 설정되어 있고 작업 영역 카탈로그가 있는 경우 작업 영역 관리자는 해당 카탈로그를 소유하고 작업 영역에서만 해당 카탈로그에 대한 모든 권한을 갖습니다. 해당 카탈로그를 바인딩 해제하거나 다른 카탈로그에 바인딩하는 경우 작업 영역 관리자 그룹이 작업 영역-로컬 그룹이므로 작업 영역 관리자 그룹의 구성원에게 개별 사용자 또는 계정 수준 그룹을 사용하는 데 필요한 권한을 수동으로 부여해야 합니다. 계정 그룹 및 작업 영역-로컬 그룹에 대한 자세한 내용은 계정 그룹과 작업 영역-로컬 그룹 간의 차이를 참조하세요.