이 페이지에서는 Cloudflare R2 외부 위치에 연결하는 방법을 설명합니다. 연결한 후에는 Unity 카탈로그를 사용하여 이러한 R2 개체에 대한 액세스를 제어할 수 있습니다.
Cloudflare R2 경로에 성공적으로 연결하려면 두 개의 Unity 카탈로그 보안 개체가 필요합니다. 첫 번째는 R2 위치에 대한 액세스를 허용하는 R2 API 토큰을 지정하는 스토리지 자격 증명입니다. 두 번째 필수 개체인 R2 스토리지 위치의 경로와 해당 위치에 액세스하는 데 필요한 자격 증명을 정의하는 외부 위치에 대해 이 스토리지 자격 증명이 필요합니다.
Requirements
Unity 카탈로그용으로 활성화된 Databricks 작업 공간입니다.
Databricks Runtime 14.3 이상 또는 SQL Warehouse 2024.15 이상
오류 메시지가
No FileSystem for scheme "r2”표시되면 컴퓨팅이 지원되지 않는 버전에 있는 것일 수 있습니다.Cloudflare 계정입니다. https://dash.cloudflare.com/sign-up을(를) 참조하세요.
Cloudflare R2 관리자 역할입니다. Cloudflare 역할 설명서를 참조하세요.
작업 영역에 연결된 Unity Catalog 메타스토어에 대한
CREATE STORAGE CREDENTIAL및CREATE EXTERNAL LOCATION권한 계정 관리자 및 메타스토어 관리자는 기본적으로 이러한 권한을 갖습니다.
1단계: R2 버킷 구성
Cloudflare R2 버킷을 만듭니다.
Cloudflare 대시보드 또는 Cloudflare 랭글러 도구를 사용할 수 있습니다.
Cloudflare R2 "시작" 설명서 또는 랭글러 설명서참조하세요.
R2 API 토큰을 만들고 버킷에 적용합니다.
Cloudflare R2 API 인증 설명서를 참조하세요.
다음 토큰 속성을 설정합니다.
사용 권한: 개체 읽기 및 쓰기.
이 권한은 Cloudflare R2 복제본 사용 또는 R2로 스토리지 마이그레이션에 설명된 대로 R2 스토리지를 복제 대상으로 사용할 때 필요한 읽기 및 쓰기 액세스 권한을 부여합니다.
Azure Databricks에서 R2 버킷으로 읽기 전용 액세스를 적용하려는 경우 읽기 권한만 부여하는 토큰을 대신 만들 수 있습니다. 그러나 스토리지 자격 증명을 읽기 전용으로 표시할 수 있고 이 권한으로 부여된 쓰기 액세스는 무시되므로 불필요할 수 있습니다.
(선택 사항) TTL: 버킷 데이터를 데이터 받는 사람과 공유하려는 시간입니다.
(선택 사항) 클라이언트 IP 주소 필터링: 네트워크 액세스를 지정된 받는 사람 IP 주소로 제한할지 선택합니다. 이 옵션을 사용하는 경우 받는 사람의 IP 주소를 지정해야 하며 작업 영역 영역에 대한 Databricks 컨트롤 플레인 NAT IP 주소를 허용 목록에 추가해야 합니다.
R2 API 토큰 값을 복사합니다.
- 액세스 키 ID
- 비밀 액세스 키
Important
토큰 값은 한 번만 표시됩니다.
R2 홈페이지에서 계정 세부 정보로 이동하여 R2 계정 ID를 복사합니다.
2단계: 스토리지 자격 증명 만들기
Azure Databricks에서 작업 영역에 로그인합니다.
을 클릭합니다.카탈로그.
외부 데이터 > 단추를 클릭하고 자격 증명 탭으로 이동하여 자격 증명 만들기를 선택합니다.
스토리지 자격 증명을 선택합니다.
자격 증명 유형을 Cloudflare API 토큰로 선택합니다.
R2 버킷을 구성할 때 복사한 자격 증명의 이름과 다음 값을 입력합니다.
- 계정 ID
- 액세스 키 ID
- 비밀 액세스 키
(선택 사항) 사용자가 이 스토리지 자격 증명을 사용하는 외부 위치에 대한 읽기 전용 액세스 권한을 갖도록 하려면 고급 옵션에서 읽기 전용선택할 있습니다.
Cloudflare R2 복제본을 사용하거나 스토리지를 R2로 마이그레이션하는 설명에서처럼 복제 대상으로 사용하는 R2 스토리지에 스토리지 자격 증명을 사용하여 액세스하려는 경우 이 옵션을 선택하지 마세요.
자세한 내용은 스토리지 자격 증명을 읽기 전용으로 표시를 참조하세요.
만들기를 클릭합니다.
스토리지 자격 증명 생성 대화 상자에서 외부 ID를 복사합니다.
(선택 사항) 스토리지 자격 증명을 특정 작업 영역에 바인딩합니다.
기본적으로 메타스토어에 연결된 모든 작업 영역에서 권한 있는 사용자가 스토리지 자격 증명을 사용할 수 있습니다. 특정 작업 영역에서만 액세스를 허용하려면 작업 영역 탭으로 이동하여 작업 영역을 할당합니다. 특정 작업 영역에 스토리지 자격 증명 할당을 참조하세요.
3단계: 외부 위치 만들기
외부 위치를 만들려면 그래픽 UI를 사용하려는 경우 카탈로그 탐색기를 사용하거나 프로그래밍 방식으로 만드는 것을 선호하는 경우 SQL을 사용합니다.
옵션 1: 카탈로그 탐색기를 사용하여 외부 위치 만들기
메타스토어에 연결된 작업 영역에 로그인합니다.
사이드바에서
을 클릭합니다.카탈로그.
외부 데이터 > 단추를 클릭하고 외부 위치 탭으로 이동한 다음 외부 위치 만들기를 클릭합니다.
새 외부 위치 만들기 대화 상자에서 수동, 다음을 차례로 클릭합니다.
AWS 빠른 시작 옵션을 사용하여 DBFS 루트에 대한 외부 위치를 만들 수 없습니다.
새 외부 위치 만들기 수동으로 대화 상자에서 외부 위치 이름을 입력합니다.
스토리지 유형에서 R2를 선택합니다.
URL 아래에 경로를 입력합니다.
r2://my-bucket@my-account-id.r2.cloudflarestorage.com을 예로 들 수 있습니다.스토리지 자격 증명 아래에서 외부 위치에 대한 액세스 권한을 부여하는 스토리지 자격 증명을 선택합니다.
(선택 사항) 사용자가 외부 위치에 대한 읽기 전용 액세스 권한을 갖도록 하려면 고급 옵션을 클릭하고 읽기 전용으로 제한(Limit)을 선택합니다. 이 설정은 나중에 변경할 수 있습니다. 자세한 내용은 외부 위치를 읽기 전용으로 표시를 참조하세요.
(선택 사항) 외부 위치가 레거시 워크로드 마이그레이션 용도인 경우 고급 옵션을 클릭하고 폴백 모드를 활성화합니다.
외부 위치에서 대체 모드를 활성화하려면을(를) 참조하세요.
만들기를 클릭합니다.
(선택 사항) 외부 위치를 특정 작업 영역에 바인딩합니다.
기본적으로 권한 있는 사용자는 메타스토어에 연결된 모든 작업 영역에서 외부 위치를 사용할 수 있습니다. 특정 작업 영역에서만 액세스를 허용하려면 작업 영역 탭으로 이동하여 작업 영역을 할당합니다. 특정 작업 영역에 외부 위치 할당을 참조하세요.
사용 권한 탭으로 이동하여 외부 위치 사용 권한을 부여하세요.
외부 위치를 사용하려면 다음 권한을 부여해야 합니다.
- 외부 위치를 사용하여 메타스토어, 카탈로그 또는 스키마에 관리되는 스토리지 위치를 추가하려면 권한을 부여합니다
CREATE MANAGED LOCATION. - 외부 테이블 또는 볼륨을 만들려면
CREATE EXTERNAL TABLE권한을 부여하거나CREATE EXTERNAL VOLUME권한을 부여하십시오.
- Grant를 클릭합니다.
-
권한 부여
<external location>대화 상자에서, 보안 주체 필드에 있는 사용자, 그룹 또는 서비스 주체를 선택하고, 부여할 권한을 선택합니다. - Grant를 클릭합니다.
- 외부 위치를 사용하여 메타스토어, 카탈로그 또는 스키마에 관리되는 스토리지 위치를 추가하려면 권한을 부여합니다
옵션 2: SQL을 사용하여 외부 위치 만들기
SQL을 사용하여 외부 위치를 만들려면 Notebook 또는 SQL 쿼리 편집기에서 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
-
<location-name>: 외부 위치의 이름입니다.location_name에 특수 문자가 포함되어 있는 경우, 하이픈(-)과 같은 각 특수 문자는 백틱(` `)로 감싸야 합니다. 이름을 참조하세요. -
<bucket-path>: 이 외부 위치가 액세스 권한을 부여하는 클라우드 테넌트의 경로입니다.r2://my-bucket@my-account-id.r2.cloudflarestorage.com을 예로 들 수 있습니다. -
<storage-credential-name>: 버킷에서 읽고 쓸 수 있는 권한을 부여하는 스토리지 자격 증명의 이름입니다. 스토리지 자격 증명 이름에 하이픈(-)과 같은 특수 문자가 포함된 경우 백틱(` `)으로 묶어야 합니다.
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
작업 영역 바인딩 또는 외부 위치 격리라고도 하는 계정의 특정 작업 영역에 대한 외부 위치 액세스를 제한하려면 특정 작업 영역에 외부 위치 할당을 참조하세요.