Delta Sharing에 대한 데이터 수신자 만들기 및 관리
이 아티클에서는 델타 공유를 위한 수신자를 만들고 관리하는 방법을 설명합니다.
수신자는 공유 데이터를 사용하는 실제 세계에서 사용자 또는 사용자 그룹의 ID를 나타내는 명명된 개체입니다. 수신자를 만드는 방법은 수신자가 Unity 카탈로그에 대해 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 있는지 여부에 따라 다릅니다.
- Unity 카탈로그에 대해 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 있는 수신자의 경우 Databricks에서 완전히 관리되는 보안 연결을 사용하여 수신자 개체를 만들 수 있습니다. 이 공유 모드를 Databricks-to-Databricks 공유라고 합니다.
- Unity 카탈로그에 대해 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 없는 받는 사람의 경우 토큰 기반 인증을 사용하여 관리하는 보안 연결과 함께 열린 공유를 사용해야 합니다.
이러한 두 공유 모드 및 선택할 시기에 대한 자세한 내용은 개방형 공유와 Databricks-Databricks 공유 비교를 참조하세요.
요구 사항
수신자 만들기를 만들려면 다음을 수행합니다.
- 메타스토어 관리자이거나 공유하려는 데이터가 등록된 Unity 카탈로그 메타스토어에 대한
CREATE_RECIPIENT
권한이 있어야 합니다. - Unity 카탈로그 메타스토어가 연결된 Azure Databricks 작업 영역을 사용하여 받는 사람을 만들어야 합니다.
- Databricks Notebook을 사용하여 받는 사람을 만드는 경우 클러스터는 Databricks Runtime 11.3 LTS 이상과 공유 또는 단일 사용자 클러스터 액세스 모드를 사용해야 합니다.
다른 받는 사람 관리 작업(예: 공유에 대한 보기, 삭제, 업데이트 및 권한 부여)은 이 문서의 작업별 섹션에 나열된 사용 권한 요구 사항을 참조하세요.
Databricks에 대한 액세스 권한이 있는 사용자를 위한 수신자 개체 만들기(Databricks-Databricks 공유)
데이터 수신자가 Unity 카탈로그에 대해 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 있는 경우 인증 유형이 DATABRICKS
인 수신자 개체를 만들 수 있습니다.
인증 유형이 있는 받는 사람 개체는 메타스토어의 DATABRICKS
클라우드, 지역 및 UUID로 구성된 공유 식별자 문자열로 받는 사람 개체 정의에서 식별되는 특정 Unity 카탈로그 메타스토어의 데이터 받는 사람을 나타냅니다. 이 수신자와 공유된 데이터는 해당 메타스토어에서만 액세스할 수 있습니다.
1단계: 수신자의 공유 식별자 요청
수신자 사용자에게 요청하여 수신자 사용자 또는 사용자 그룹이 공유 데이터로 작업할 작업 영역에 연결된 Unity 카탈로그 메타스토어에 대한 공유 식별자를 보내달라고 합니다.
공유 식별자는 메타스토어의 클라우드, 지역 및 UUID(메타스토어의 고유 식별자)로 구성된 <cloud>:<region>:<uuid>
형식의 문자열입니다.
예를 들어 다음 스크린샷에서 전체 공유 식별자 문자열은 aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016
입니다.
받는 사람은 사용하려는 작업 영역의 Unity 카탈로그 지원 클러스터에서 실행되는 Databricks Notebook 또는 Databricks SQL 쿼리에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 기본 SQL 함수 CURRENT_METASTORE
를 사용하여 식별자를 찾을 수 있습니다.
카탈로그 탐색기
카탈로그 탐색기를 사용하여 공유 식별자를 얻으려면 다음을 수행합니다.
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 항목 탭에서 오른쪽 위에 있는 Databricks 공유 조직 이름을 클릭하고 공유 식별자 복사를 선택합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
SELECT CURRENT_METASTORE();
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다. 공유 식별자는 global_metastore_id
로 반환됩니다.
databricks metastores summary
이 단계에 포함된 정보를 연락처에 보내거나 Databricks-Databricks 모델에서 액세스 권한을 얻도록 지정하여 수신자를 지원할 수 있습니다.
2단계: 수신자 만들기
Databricks-Databricks 공유에 대한 받는 사람을 만들려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 CREATE RECIPIENT
SQL 명령을 사용할 수 있습니다.
필요한 권한: 메타스토어 관리자 또는 공유하려는 데이터가 등록된 Unity 카탈로그 메타스토어에 대한 CREATE_RECIPIENT
권한이 있는 사용자여야 합니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 새 받는 사람을 클릭합니다.
받는 사람 이름 및 공유 식별자를 입력합니다.
<cloud>:<region>:<uuid>
형식의 전체 공유 식별자 문자열을 사용합니다. 예들 들어aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016
입니다.(선택 사항) 설명을 입력합니다.
만들기를 클릭합니다.
(선택 사항) 사용자 지정 받는 사람 속성을 만듭니다.
속성 > 편집 +속성 추가를 클릭합니다. 그런 다음 속성 이름(키) 및 값을 추가합니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
USING ID '<sharing-identifier>'
[COMMENT "<comment>"];
<cloud>:<region>:<uuid>
형식의 전체 공유 식별자 문자열을 사용합니다. 예들 들어 aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef
입니다.
받는 사람에 대한 사용자 지정 속성을 추가할 수도 있습니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
<recipient-name>
: 수신자의 이름입니다.<sharing-identifier>
:<cloud>:<region>:<uuid>
형식의 전체 공유 식별자 문자열입니다. 예들 들어aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef
입니다.<authentication-type>
: 형식<cloud>:<region>:<uuid>
의 공유 식별자 문자열이 제공될<sharing-identifier>
때로 설정합니다DATABRICKS
.
databricks recipients create <recipient-name> <authentication-type> --sharing-code <sharing-identifier>
받는 사람에 대한 사용자 지정 속성을 추가할 수도 있습니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
수신자는 DATABRICKS
의 authentication_type
을 사용하여 만들어집니다.
다른 모든 사용자에 대한 수신자 개체 만들기(개방형 공유)
Databricks의 자체 사용 여부에 관계없이 Azure Databricks 작업 영역 외부의 사용자와 데이터를 공유하려는 경우 개방형 Delta Sharing을 사용하여 데이터를 안전하게 공유할 수 있습니다. 작동 방식은 다음과 같습니다.
- 데이터 공급자는 Unity 카탈로그 메타스토어에서 수신자 개체를 만듭니다.
- 수신자 개체를 만들 때 Azure Databricks는 토큰, 토큰을 포함하는 자격 증명 파일 및 수신자와 공유할 수 있는 활성화 링크를 생성합니다. 수신자 개체의 인증 유형은
TOKEN
입니다. - 수신자는 활성화 링크에 액세스하고, 자격 증명 파일을 다운로드하고, 자격 증명 파일을 사용하여 사용자가 액세스 권한을 부여한 공유에 포함된 테이블에 대한 읽기 권한을 인증하고 가져옵니다.
1단계: 수신자 만들기
열린 공유를 위해 받는 사람을 만들려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 CREATE RECIPIENT
SQL 명령을 사용할 수 있습니다.
필요한 권한: 메타스토어 관리자 또는 공유하려는 데이터가 등록된 Unity 카탈로그 메타스토어에 대한 CREATE_RECIPIENT
권한이 있는 사용자여야 합니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 새 받는 사람을 클릭합니다.
수신자 이름을 입력합니다.
(선택 사항) 설명을 입력합니다.
만들기를 클릭합니다.
개방형 공유 수신자에는 공유 식별자를 사용하지 않습니다.
활성화 링크를 복사합니다.
또는 나중에 활성화 링크를 가져올 수 있습니다. 2단계: 활성화 링크 가져오기를 참조하세요.
(선택 사항) 사용자 지정 받는 사람 속성을 만듭니다.
받는 사람 세부 정보 탭에서 속성 > 편집 +속성 추가를 클릭합니다. 그런 다음 속성 이름(키) 및 값을 추가합니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];
받는 사람에 대한 사용자 지정 속성을 추가할 수도 있습니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients create <recipient-name>
받는 사람에 대한 사용자 지정 속성을 추가할 수도 있습니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
출력에는 수신자와 공유하는 activation_url
이 포함됩니다.
수신자는 TOKEN
의 authentication_type
을 사용하여 만들어집니다.
참고 항목
수신자를 만들 때 제한된 IP 주소 집합으로 수신자 액세스를 제한하는 옵션이 있습니다. 기존 수신자에게 IP 액세스 목록을 추가할 수도 있습니다. IP 액세스 목록을 사용하여 델타 공유 받는 사람 액세스 제한(공유 열기)을 참조하세요.
2단계: 활성화 링크 가져오기
새 받는 사람의 활성화 링크를 얻으려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 DESCRIBE RECIPIENT
SQL 명령을 사용할 수 있습니다.
수신자가 자격 증명 파일을 이미 다운로드한 경우 활성화 링크가 반환 또는 표시되지 않습니다.
필요한 권한: Metastore 관리자, 권한이 있는 USE RECIPIENT
사용자 또는 받는 사람 개체 소유자입니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
수신자 세부 정보 페이지에서 활성화 링크를 복사합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
DESCRIBE RECIPIENT <recipient-name>;
출력에는 activation_link
가 포함됩니다.
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients get <recipient-name>
출력에는 activation_url
가 포함됩니다.
수신자에게 공유에 대한 액세스 권한 부여
수신자를 만들고 공유를 만든 후에는 수신자에게 해당 공유에 대한 액세스 권한을 부여할 수 있습니다.
받는 사람에게 공유 액세스 권한을 부여하려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 GRANT ON SHARE
SQL 명령을 사용할 수 있습니다.
다음 중 하나의 권한이 필요합니다.
- 메타스토어 관리자.
- 공유 및 받는 사람 개체((
USE SHARE
+SET SHARE PERMISSION
) 또는 공유 소유자) AND (USE RECIPIENT
또는 받는 사람 소유자)에 대해 위임된 사용 권한 또는 소유권.
지침은 델타 공유 데이터 공유에 대한 액세스 관리(공급자용)를 참조하세요.
수신자에게 연결 정보 보내기
공유 중인 데이터에 액세스하는 방법을 수신자에게 알려야 합니다. 수신자와 공유하는 정보는 Databricks-Databricks 공유 또는 개방형 공유 중 무엇을 사용하는지에 따라 달라집니다.
Databricks-databricks 공유의 경우 공유 중인 데이터에 액세스하기 위한 지침 링크를 보냅니다.
사용 가능한 공유를 나열하는 공급자 개체가 수신자의 메타스토어에 자동으로 만들어집니다. 수신자는 사용하려는 공유를 보고 선택하기만 하면 됩니다. Databricks 간 Delta Sharing을 사용하여 공유된 데이터 읽기(수신자의 경우)를 참조하세요.
개방형 공유의 경우 보안 채널을 사용하여 활성화 링크 및 사용 지침에 대한 링크를 공유합니다.
자격 증명 파일은 한 번만 다운로드할 수 있습니다. 수신자는 다운로드한 자격 증명을 비밀로 처리해야 하며 조직 외부에서 공유해서는 안 됩니다. 자격 증명이 안전하지 않게 처리되었다는 우려가 있는 경우 언제든지 수신자의 자격 증명을 회전할 수 있습니다. 안전한 수신자 액세스를 보장하기 위해 자격 증명을 관리하는 방법에 대한 자세한 내용은 토큰에 대한 보안 고려 사항을 참조하세요.
수신자 보기
받는 사람 목록을 보려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 SHOW RECIPIENTS
SQL 명령을 사용할 수 있습니다.
필요한 권한: metastore 관리자이거나 metastore의 USE RECIPIENT
모든 받는 사람을 볼 수 있는 권한이 있어야 합니다. 다른 사용자는 자신이 소유한 받는 사람만 액세스할 수 있습니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다. 필요에 따라 <pattern>
을 LIKE
조건자로 바꿉니 다.
SHOW RECIPIENTS [LIKE <pattern>];
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients list
수신자 세부 정보 보기
받는 사람에 대한 세부 정보를 보려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 DESCRIBE RECIPIENT
SQL 명령을 사용할 수 있습니다.
필요한 권한: Metastore 관리자, 권한이 있는 USE RECIPIENT
사용자 또는 받는 사람 개체 소유자입니다.
세부 정보는 다음과 같습니다.
- 수신자의 작성자, 생성 타임스탬프, 메모 및 인증 유형(
TOKEN
또는DATABRICKS
)입니다. - 수신자가 개방형 공유를 사용하는 경우: 토큰 수명, 활성화 링크, 활성화 상태(자격 증명 다운로드 여부) 및 IP 액세스 목록(할당된 경우).
- 수신자가 Databricks-databricks 공유를 사용하는 경우: 수신자의 Unity 카탈로그 메타스토어의 클라우드, 지역 및 메타스토어 ID, 활성화 상태.
- 사용자 지정 속성을 포함한 받는 사람 속성입니다. 받는 사람 속성 관리를 참조하세요.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
DESCRIBE RECIPIENT <recipient-name>;
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients get <recipient-name>
수신자의 공유 권한 보기
받는 사람에게 액세스 권한이 부여된 공유 목록을 보려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks CLI 또는 SHOW GRANTS TO RECIPIENT
SQL 명령을 사용할 수 있습니다.
필요한 권한: Metastore 관리자, 권한이 있는 USE RECIPIENT
사용자 또는 받는 사람 개체 소유자입니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
공유 탭으로 이동하여 수신자와 공유된 공유 목록을 봅니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
SHOW GRANTS TO RECIPIENT <recipient-name>;
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients share-permissions <recipient-name>
받는 사람 업데이트
받는 사람을 업데이트하려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 ALTER RECIPIENT
SQL 명령을 사용할 수 있습니다.
업데이트할 수 있는 속성에는 받는 사람 이름, 소유자, 메모 및 사용자 지정 속성이 포함됩니다.
필요한 권한: 소유자를 업데이트하려면 메타스토어 관리자이거나 수신자 개체의 소유자여야 합니다. 이름을 업데이트하려면 metastore 관리자(또는 권한이 있는 CREATE_RECIPIENT
사용자) 와 소유자여야 합니다. 주석 또는 사용자 지정 속성을 업데이트하려면 소유자여야 합니다.
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
받는 사람 세부 정보 페이지에서 다음을 수행합니다.
소유자를 업데이트합니다.
메모를 편집하거나 추가합니다.
받는 사람의 이름을 바꿉니다.
케밥 메뉴를 클릭하고 이름 바꾸기를 선택합니다.
사용자 지정 받는 사람 속성을 편집, 제거 또는 추가합니다.
속성 편집을 클릭합니다. 속성을 추가하려면 +속성 추가를 클릭하고 속성 이름(키) 및 값을 입력합니다. 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 중 하나 이상의 명령을 실행합니다.
ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;
ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;
COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key> = property_value [, ...] )
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )
속성에 대한 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
CLI
받는 사람 이름, 주석, 소유자, IP 액세스 목록 또는 사용자 지정 속성에 대한 업데이트가 포함된 JSON 파일을 만듭니다.
{
"name": "new-recipient-name",
"owner": "someone-else@example.com",
"comment": "something new",
"ip_access_list": {
"allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
},
"property": {
"country": "us",
"id": "001"
}
}
이제 Databricks CLI를 사용해 다음 명령을 실행합니다. <recipient-name>
을 현재 수신자 이름으로 바꾸고 update-recipient-settings.json
을 JSON 파일의 파일 이름으로 바꿉니다.
databricks recipients update --json-file update-recipient-settings.json
속성에 대한 자세한 내용은 받는 사람 속성 관리를 참조 하세요.
수신자 토큰 관리(개방형 공유)
개방형 공유를 사용하여 수신자와 데이터를 공유하는 경우 해당 수신자의 토큰을 회전해야 할 수 있습니다. 토큰 회전은 기존 토큰을 만료되도록 설정하고 새 토큰 및 활성화 URL로 바꾸는 것으로 구성됩니다.
다음과 같은 상황에서 받는 사람의 토큰을 회전하고 새 활성화 URL을 생성해야 합니다.
- 기존 수신자 토큰이 곧 만료되는 경우.
- 수신자가 활성화 URL을 분실하거나 URL이 손상된 경우.
- 수신자가 다운로드한 자격 증명이 손상되거나 분실된 경우.
- 메타스토어에 대한 수신자 토큰 수명을 수정하는 경우. 수신자 토큰 수명 수정을 참조하세요.
토큰에 대한 보안 고려 사항
지정된 시간에 수신자가 최대 두 개의 토큰(활성 토큰과 변경된 토큰)을 가질 수 있습니다. 회전된 토큰은 만료되고 활성 토큰으로 대체되도록 설정된 토큰입니다. 변경된 토큰이 만료될 때까지 토큰을 다시 변경하려고 하면 오류가 발생합니다.
받는 사람의 토큰을 회전할 때 필요에 따라 기존 받는 사람 토큰(즉, 회전할 토큰이 만료되기 전의 시간)으로 설정할 --existing-token-expire-in-seconds
수 있습니다. 이 값을 0
으로 설정하면 기존 수신자 토큰이 즉시 만료됩니다.
수신자에게 두 개의 활성 토큰이 있는 시간을 최소화하면서 수신자 조직에게 새 활성화 URL에 액세스할 수 있는 시간을 제공하는 비교적 짧은 기간으로 --existing-token-expire-in-seconds
를 설정하는 것이 좋습니다. 기존 받는 사람 토큰이 손상된 것으로 의심되는 경우 Databricks는 즉시 만료되도록 강제하는 것이 좋습니다.
받는 사람의 기존 활성화 URL에 액세스한 적이 없는 경우 기존 토큰을 회전하면 해당 활성화 URL이 무효화되고 새 토큰으로 바뀝니다.
모든 받는 사람 토큰이 만료된 경우 토큰을 회전하면 기존 활성화 URL이 새 토큰으로 바뀝니다. 토큰이 만료된 수신자를 즉시 변경하거나 삭제하는 것이 좋습니다.
받는 사람 활성화 URL이 실수로 잘못된 사람에게 전송되거나 안전하지 않은 채널을 통해 전송되는 경우 Databricks는 다음을 권장합니다.
- 공유에 대한 수신자의 액세스 권한을 해지합니다.
- 수신자를 변경하고
--existing-token-expire-in-seconds
를0
으로 설정합니다. - 보안 채널을 통해 의도한 받는 사람과 새 활성화 URL을 공유합니다.
- 활성화 URL에 액세스한 후 수신자에게 공유에 대한 액세스 권한을 다시 부여합니다.
극단적인 상황에서는 수신자의 토큰을 회전하는 대신 수신자를 드롭하고 다시 만들 수 있습니다.
수신자의 토큰 회전
받는 사람의 토큰을 회전하려면 카탈로그 탐색기 또는 Databricks Unity 카탈로그 CLI를 사용할 수 있습니다.
필요한 권한: 수신자 개체 소유자
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
왼쪽 창에서 Delta Sharing 메뉴를 확장하고 내가 공유함을 선택합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
세부 정보 탭의 토큰 만료에서 회전을 클릭합니다.
토큰 회전 대화 상자에서 토큰이 만료되는 시간을 즉시 또는 설정된 기간 동안 중에서 선택합니다. 기존 토큰이 만료되는 시기에 대한 조언은 토큰에 대한 보안 고려 사항을 참조하세요.
회전을 클릭합니다.
세부 정보 탭에서 새 활성화 링크를 복사하고 보안 채널을 통해 수신자와 공유합니다. 2단계: 활성화 링크 가져오기를 참조하세요.
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
<recipient-name>
: 수신자의 이름입니다.<expiration-seconds>
: 기존 받는 사람 토큰이 만료될 때까지의 시간(초)입니다. 이 기간 동안 기존 토큰은 계속 작동합니다. 값0
은 기존 토큰이 즉시 만료된다는 것을 의미합니다. 기존 토큰이 만료되는 시기에 대한 조언은 토큰에 대한 보안 고려 사항을 참조하세요.
databricks recipients rotate-token \ <recipient-name> \ <expiration-seconds>
수신자의 새 활성화 링크를 가져오고 보안 채널을 통해 이를 수신자와 공유합니다. 2단계: 활성화 링크 가져오기를 참조하세요.
수신자 토큰 수명 수정
Unity 카탈로그 메타스토어의 기본 받는 사람 토큰 수명을 수정해야 하는 경우 카탈로그 탐색기 또는 Databricks Unity 카탈로그 CLI를 사용할 수 있습니다.
참고 항목
메타스토어의 기본 수신자 토큰 수명을 변경하면 기존 수신자의 수신자 토큰 수명이 자동으로 업데이트되지 않습니다. 지정된 수신자에게 새 토큰 수명을 적용하려면 해당 토큰을 회전해야 합니다. 수신자 토큰 관리(개방형 공유)를 참조하세요.
필요한 권한: 계정 관리자입니다.
카탈로그 탐색기
- 계정 콘솔에 로그인합니다.
- 사이드바에서 카탈로그를 클릭합니다 .
- 메타스토어 이름을 클릭합니다.
- 델타 공유 받는 사람 토큰 수명 아래에서 편집을 클릭합니다.
- Set expiration(만료 설정)을 사용하도록 설정합니다.
- 초, 분, 시간 또는 일 수를 입력하고 측정 단위를 선택합니다.
- 저장을 클릭합니다.
Set expiration(만료 설정)을 사용하지 않도록 설정하면 수신자 토큰이 만료되지 않습니다. 토큰이 만료되도록 구성하는 것이 좋습니다.
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다. 메타스토어 UUID로 바꾸고 받는 사람 토큰이 만료되기 전의 시간(초)으로 바 86400
꿉 12a345b6-7890-1cd2-3456-e789f0a12b34
니다. 이 값을 0
으로 설정하면 수신자 토큰이 만료되지 않습니다. 토큰이 만료되도록 구성하는 것이 좋습니다.
databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400
(선택 사항) 액세스 목록을 사용하여 수신자 액세스 제한
수신자 개체를 구성할 때 제한된 IP 주소 집합으로 수신자 액세스를 제한할 수 있습니다. IP 액세스 목록을 사용하여 델타 공유 받는 사람 액세스 제한(공유 열기)을 참조하세요.
받는 사람 속성 관리
받는 사람 개체에는 데이터 공유 액세스를 구체화하는 데 사용할 수 있는 미리 정의된 속성이 포함됩니다. 예를 들어 다음을 수행하는 데 사용할 수 있습니다.
- 다른 받는 사람과 서로 다른 테이블 파티션을 공유하면 받는 사람 간에 데이터 경계를 유지하면서 여러 받는 사람과 동일한 공유를 사용할 수 있습니다.
- 받는 사람 속성에 따라 행 또는 열 수준에서 테이블 데이터에 대한 받는 사람 액세스를 제한하는 동적 보기를 공유합니다.
사용자 지정 속성을 만들 수도 있습니다.
미리 정의된 속성은 다음으로 databricks.
시작하고 포함합니다.
databricks.accountId
: 데이터 받는 사람이 속한 Azure Databricks 계정(Databricks-to-Databricks 공유만 해당).databricks.metastoreId
: 데이터 받는 사람이 속한 Unity 카탈로그 메타스토어입니다(Databricks-to-Databricks 공유에만 해당).databricks.name
: 데이터 받는 사람의 이름입니다.
값일 수 있는 사용자 지정 속성에는 예를 들어 country
포함할 수 있습니다. 예를 들어 사용자 지정 속성을 'country' = 'us'
받는 사람에게 연결하는 경우 국가별로 테이블 데이터를 분할하고 미국 데이터가 있는 행만 해당 속성이 할당된 받는 사람과 공유할 수 있습니다. 받는 사람 속성에 따라 행 또는 열 액세스를 제한하는 동적 보기를 공유할 수도 있습니다. 자세한 예제는 받는 사람 속성을 사용하여 파티션 필터링을 수행하고 공유에 동적 보기를 추가하여 행과 열을 필터링하는 방법을 참조하세요.
요구 사항
받는 사람 속성은 Databricks Runtime 12.2 이상에서 지원됩니다.
받는 사람을 만들거나 업데이트할 때 속성 추가
받는 사람을 만들 때 속성을 추가하거나 기존 받는 사람에 대한 속성을 업데이트할 수 있습니다. Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 SQL 명령을 사용할 수 있습니다.
필요한 권한: Metastore 관리자 또는 Unity 카탈로그 메타스토어에 대한 권한이 있는 CREATE RECIPIENT
사용자입니다.
카탈로그 탐색기
카탈로그 탐색기를 사용하여 받는 사람을 만들거나 업데이트하는 경우 다음을 수행하여 사용자 지정 속성을 추가하거나 업데이트합니다.
받는 사람 세부 정보 페이지로 이동합니다.
새 받는 사람을 만드는 경우 만들기를 클릭한 후 이 페이지로 이동합니다. 기존 받는 사람을 업데이트하는 경우 기어 아이콘 델타 공유 > 받는 사람을 클릭하고 받는 사람을 선택하여 이 페이지로 > 이동합니다.>
속성 > 편집 +속성 추가를 클릭합니다.
속성 이름(키) 및 값을 입력합니다.
예를 들어 국가별로 공유 데이터를 필터링하고 이 받는 사람과 미국 데이터만 공유하려는 경우 값이 "US"인 "country"라는 키를 만들 수 있습니다.
저장을 클릭합니다.
SQL
받는 사람을 만들 때 사용자 지정 속성을 추가하려면 Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
<property-key>
는 문자열 리터럴 또는 식별자일 수 있습니다. <property-value>
는 문자열 리터럴이어야 합니다.
예시:
CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');
기존 받는 사람에 대한 사용자 지정 속성을 추가, 편집 또는 삭제하려면 다음 중 하나를 실행합니다.
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );
CLI
받는 사람을 만들 때 사용자 지정 속성을 추가하려면 Databricks CLI를 사용하여 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
<recipient-name>
: 수신자의 이름입니다.<property-key>
는 문자열 리터럴 또는 식별자일 수 있습니다.<property-value>
는 문자열 리터럴이어야 합니다.
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"<property-key>": "<property-value>",
}
}
}'
예시:
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
기존 받는 사람에 대한 사용자 지정 속성을 추가하거나 편집하려면 다음 대신 create
사용합니다update
.
databricks recipients update \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
받는 사람 속성 보기
받는 사람 속성을 보려면 받는 사람 세부 정보 보기의 지침을 따릅니다.
수신자 삭제
받는 사람을 삭제하려면 Azure Databricks Notebook 또는 Databricks SQL 쿼리 편집기에서 카탈로그 탐색기, Databricks Unity 카탈로그 CLI 또는 DROP RECIPIENT
SQL 명령을 사용할 수 있습니다. 수신자를 삭제하려면 수신자 개체 소유자여야 합니다.
수신자를 삭제하면 수신자가 나타내는 사용자는 더 이상 공유 데이터에 액세스할 수 없습니다. 개방형 공유 시나리오에서 수신자가 사용하는 토큰은 무효화됩니다.
필요한 권한: 수신자 개체 소유자
카탈로그 탐색기
Azure Databricks 작업 영역에서 카탈로그를 클릭합니다.
카탈로그 창 위쪽에서 기어 아이콘을 클릭하고 델타 공유를 선택합니다.
또는 즐겨찾기 페이지에서 델타 공유> 버튼을 클릭합니다.
공유한 사람 탭에서 받는 사람을 클릭하고 받는 사람을 선택합니다.
수신자 탭에서 수신자를 찾아 선택합니다.
케밥 메뉴를 클릭하고 삭제를 선택합니다.
확인 대화 상자에서 삭제를 클릭합니다.
SQL
Notebook 또는 Databricks SQL 쿼리 편집기에서 다음 명령을 실행합니다.
DROP RECIPIENT [IF EXISTS] <recipient-name>;
CLI
Databricks CLI를 사용하여 다음 명령을 실행합니다.
databricks recipients delete <recipient-name>