카탈로그 만들기¶
Snowflake Open Catalog 서비스 관리자가 카탈로그를 만듭니다.
카탈로그를 만드는 단계는 클라우드 저장소 공급자에 따라 다릅니다.
카탈로그를 만들 경우 외부 클라우드 저장소에 대한 정보를 제공하며, Snowflake Open Catalog는 해당 정보를 사용하여 저장소 구성을 만듭니다. 이 구성은 저장소에 대한 ID 및 액세스 관리(IAM) 엔터티를 저장합니다. Open Catalog는 IAM 엔터티를 사용하여 저장소 위치에 안전하게 연결하여 테이블 데이터, Apache Iceberg™ 메타데이터, 매니페스트 파일에 액세스합니다.
자세한 지침은 다음 섹션을 참조하십시오.
Amazon Simple Storage Service(Amazon S3)를 사용하여 카탈로그 만들기¶
전제 조건
Snowflake 계정을 호스팅하는 동일한 리전의 S3 저장소 버킷
Open Catalog는 점을 포함한 버킷 이름(예: my.s3.bucket)을 지원하지 않습니다. Open Catalog는 가상 호스팅 스타일 경로와 HTTPS를 사용하여 S3의 데이터에 액세스합니다. 그러나 S3는 이름에 점이 있는 가상 호스팅 스타일 버킷에 대해서는 SSL을 지원하지 않습니다.
데이터 복구 기능에 대한 자세한 내용은 저장소 공급자에 문의하십시오.
IAM 정책 및 역할을 생성하고 관리하기 위한 AWS의 권한
AWS 관리자가 아닌 경우 AWS 관리자에게 이러한 작업을 수행하도록 요청하십시오.
1단계: S3 위치에 대한 액세스 권한을 부여하는 IAM 정책 만들기¶
AWS Management Console에서 Open Catalog에 대한 액세스 권한을 구성하려면 다음 절차를 따르십시오.
AWS Management Console에 로그인합니다.
홈 대시보드에서 IAM 을 선택합니다.
탐색 창에서 계정 설정 을 선택합니다.
보안 토큰 서비스(STS) 의 엔드포인트 목록에서 자신의 계정이 있는 Open Catalog 리전을 찾고, STS 상태 가 비활성인 경우 토글을 활성 으로 설정합니다.
탐색 창에서 정책 을 선택합니다.
정책 만들기 를 선택합니다.
정책 편집기 에는 JSON 을 선택합니다.
Open Catalog에 S3 위치에서 데이터를 읽고 쓸 수 있는 필요한 권한을 제공하는 정책을 추가합니다.
다음 예제 정책은 지정된 버킷의 모든 위치에 대한 액세스 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3:::<my_bucket>/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::<my_bucket>", "Condition": { "StringLike": { "s3:prefix": [ "*" ] } } } ] }
참고
*my_bucket*
을 실제 버킷 이름으로 바꿉니다. 버킷에 경로를 지정할 수도 있습니다(예:*my_bucket*/*path*
)."s3:prefix":
조건을["*"]
로 설정하면 지정된 버킷의 모든 접두사에 대한 액세스 권한이 부여되고,["*path*/*"]
로 설정하면 버킷의 지정된 경로에 대한 액세스 권한이 부여됩니다.정부 리전에 있는 버킷의 경우, 버킷 ARN은
arn:aws-us-gov:s3:::
접두사를 사용합니다.
다음 을 선택합니다.
정책 이름 에는 정책 이름을 입력합니다(예:
open_catalog_access
).선택 사항: 설명 에 설명을 입력합니다.
정책 만들기 를 선택합니다.
2단계: S3 버킷에 대한 권한을 부여하는 IAM 역할 만들기¶
AWS Management Console의 IAM(Identity and Access Management) 대시보드에 있는 탐색 창에서 역할 을 선택합니다.
역할 만들기 를 선택합니다.
신뢰할 수 있는 엔터티 유형에는 AWS 계정 을 선택합니다.
AWS 계정 에서 이 계정 을 선택합니다.
이후 단계에서는 신뢰할 수 있는 관계를 수정하고 Open Catalog에 대한 액세스 권한을 부여합니다.
선택 사항: 외부 ID를 생성하려면 외부 ID 필요 확인란을 선택하고 외부 ID를 입력합니다(예:
open_catalog_external_id
).참고
카탈로그 생성 시 외부 ID를 생성하지 않으면 Open Catalog에서 사용자가 사용할 수 있는 외부 ID를 생성합니다. AWS 리소스(예: S3 버킷)에 대한 액세스 권한을 Open Catalog와 같은 서드 파티에 부여하는 데 외부 ID가 사용됩니다.
다음 을 선택합니다.
이전 단계에서 만든 정책을 선택하고 다음 을 선택합니다.
역할 이름과 역할에 대한 설명을 입력한 다음 역할 만들기 를 선택합니다.
S3 위치에 대한 IAM 정책을 생성하고 IAM 역할을 생성하며 정책을 역할에 연결했습니다.
역할 요약 페이지를 보려면 역할 보기 를 선택합니다.
역할의 ARN (Amazon Resource Name) 값을 찾아서 기록합니다.
3단계: Open Catalog에서 카탈로그 만들기¶
Open Catalog에 로그인합니다.
Open Catalog 홈페이지의 카탈로그 영역에서 + 만들기 를 선택합니다.
카탈로그 만들기 대화 상자에서 다음 필드를 완성합니다.
이름 에 카탈로그의 이름을 입력합니다.
카탈로그 이름은 대/소문자를 구분합니다.
선택 사항: 외부 카탈로그를 만들려면 외부 토글을 켜기 로 설정합니다.
외부 카탈로그에 대한 자세한 내용은 카탈로그 유형 섹션을 참조하십시오.
저장소 공급자 에는 S3 을 선택합니다.
기본 기준 위치 에는 AWS S3 저장소 버킷의 기본 기준 위치를 입력합니다.
선택 사항: 카탈로그에 두 개 이상의 위치에 저장된 오브젝트가 있는 경우 각 추가 위치를 쉼표로 구분하여 추가 위치(선택 사항) 에 나열합니다.
S3 역할 ARN 의 경우 Open Catalog용으로 생성한 IAM 역할의 ARN을 입력합니다.
선택 사항: IAM 역할을 만들 때 외부 ID를 만든 경우 외부 ID 에 외부 ID를 입력합니다.
만들기 를 선택합니다.
4단계: Open Catalog 계정에 대한 AWS IAM 사용자 검색¶
Open Catalog 홈페이지의 카탈로그 영역에서 자신이 만든 카탈로그를 선택합니다.
저장소 세부 정보 에서 IAM 사용자 arn 을 복사합니다(예:
arn:aws:iam::123456789001:user/abc1-b-self1234
).Open Catalog는 전체 Open Catalog 계정에 대해 단일 IAM 사용자를 프로비저닝합니다. 계정의 모든 S3 저장소 구성은 해당 IAM 사용자를 사용합니다.
참고 IAM 역할을 만들 때 외부 ID를 지정하지 않을 경우 Open Catalog는 사용자가 사용할 수 있는 외부 ID를 생성합니다. 생성된 외부 ID로 IAM 역할 신뢰 정책을 업데이트할 수 있도록 값을 기록합니다.
5단계: 버킷 오브젝트에 액세스할 수 있도록 IAM 사용자 권한 부여¶
AWS Management Console에 로그인합니다.
홈 대시보드에서 IAM 을 검색하여 선택합니다.
탐색 창에서 역할 을 선택합니다.
저장소 구성을 위해 생성한 IAM 역할을 선택합니다.
신뢰 관계 탭을 선택합니다.
신뢰 정책 편집 을 선택합니다.
기록한 카탈로그 저장소 세부 정보로 정책 문서를 수정합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "<open_catalog_user_arn>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<open_catalog_external_id>" } } } ] }
여기서:
open_catalog_user_arn
은 자신이 기록한 IAM 사용자 ARN입니다.open_catalog_external_id
는 외부 ID입니다. 역할을 생성할 때 외부 ID를 지정하고 동일한 ID를 사용하여 저장소 구성을 생성한 경우에는 값을 그대로 둡니다. 그렇지 않으면, 기록해 둔 값으로sts:ExternalId
를 업데이트합니다.
참고
새 저장소 구성을 생성하고 자신의 외부 ID를 제공하지 않는 경우 이 정책 문서를 업데이트해야 합니다. 보안상의 이유로, 새 외부 볼륨이나 다시 생성된 저장소 구성에는 다른 외부 ID가 있으며 이 신뢰 정책을 업데이트하지 않으면 신뢰 관계를 확인할 수 없습니다.
IAM 역할에 대한 정책 문서 예시
변경 사항을 저장하려면 정책 업데이트 를 선택합니다.
Google의 Cloud Storage를 사용하여 카탈로그 만들기¶
이 섹션에서는 저장소 구성을 사용하여 카탈로그를 만들고 Open Catalog에 Cloud Storage 버킷에 대한 제한적 액세스 권한을 부여하는 방법에 대해 설명합니다.
조직의 관리자가 Google Cloud 계정에 IAM 사용자 권한을 부여합니다.
참고
이 항목의 지침을 완료하려면 Google Cloud에서 IAM 정책과 역할을 생성하고 관리할 권한이 있어야 합니다. Google Cloud 관리자가 아닌 경우 Google Cloud 관리자에게 이러한 작업을 수행하도록 요청하십시오.
데이터 복구 기능에 대한 자세한 내용은 저장소 공급자에 문의하십시오.
1단계: 카탈로그 만들기¶
Open Catalog에 로그인합니다.
Open Catalog 홈페이지의 카탈로그 영역에서 + 만들기 를 선택합니다.
카탈로그 만들기 대화 상자에서 다음 필드를 완성합니다.
이름 에 카탈로그의 이름을 입력합니다.
카탈로그 이름은 대/소문자를 구분합니다.
선택 사항: 외부 카탈로그를 만들려면 외부 토글을 켜기 로 설정합니다.
외부 카탈로그에 대한 자세한 내용은 카탈로그 유형 섹션을 참조하십시오.
저장소 공급자 에 GCS 를 선택합니다.
기본 기준 위치 에는 Cloud Storage 버킷의 기본 기준 위치를 입력합니다.
선택 사항: 카탈로그에 두 개 이상의 위치에 저장된 오브젝트가 있는 경우 추가 위치(선택 사항) 에 각각의 추가 저장소 위치를 쉼표로 구분하여 나열합니다.
만들기 를 선택합니다.
2단계: Open Catalog 계정에 대한 Google Cloud 서비스 계정 검색¶
Open Catalog 홈페이지의 카탈로그 영역에서 자신이 만든 카탈로그를 선택합니다.
저장소 세부 정보 에서 GCP_SERVICE_ACCOUNT ID를 복사합니다(예:
service-account-id@project1-123456.iam.gserviceaccount.com
).Open Catalog는 전체 Open Catalog 계정에 대해 단일 Google Cloud 서비스 계정을 프로비저닝하고 Google Cloud의 저장소에 액세스할 때 해당 서비스 계정을 사용합니다.
3단계: 서비스 계정에 버킷 오브젝트 액세스 권한 부여¶
이 단계에서는 Google Cloud 콘솔에서 Open Catalog에 대한 IAM 액세스 권한을 구성합니다.
사용자 지정 IAM 역할 만들기¶
버킷에 액세스하고 오브젝트를 가져오기 위해 필요한 권한이 있는 사용자 지정 역할을 생성합니다.
Google Cloud 콘솔에 프로젝트 편집자로 로그인합니다.
홈 대시보드의 탐색 메뉴에서 IAM 및 관리자 > 역할 을 선택합니다.
역할 만들기 를 선택합니다.
직함 에 사용자 지정 역할의 직함을 입력합니다.
선택 사항: 설명 에 사용자 지정 역할에 대한 설명을 입력합니다.
권한 추가 를 선택합니다.
필터 에서 서비스 를 선택한 다음 저장소 를 선택합니다.
권한 목록을 필터링하고 목록에 다음을 선택합니다.
storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
추가 를 선택합니다.
만들기 를 선택합니다.
Google Cloud 서비스 계정에 사용자 지정 역할 할당하기¶
이 절차를 진행하려면 Google Cloud 콘솔에 그대로 머무십시오.
홈 대시보드의 탐색 메뉴에서 클라우드 저장소 > 버킷 을 선택합니다.
버킷 목록을 필터링하고 Open Catalog 저장소 구성에서 지정한 버킷을 선택합니다.
권한 > 주체별로 보기 를 선택한 다음 액세스 권한 부여 를 선택합니다.
주체 추가 에서 이전에 복사한 서비스 계정 ID를 붙여넣습니다.
역할 할당 에서 앞서 만든 사용자 지정 IAM 역할을 선택한 다음 저장 을 선택합니다.
Azure Storage를 사용하여 카탈로그 만들기¶
이 섹션에서는 저장소 구성을 사용하여 Open Catalog에 사용자의 Microsoft Azure 컨테이너에 대한 제한적 액세스 권한을 부여하는 방법에 대해 설명합니다. Open Catalog는 저장소 구성을 위해 다음과 같은 Azure 클라우드 저장소 서비스를 지원합니다.
Blob 저장소
Data Lake Storage Gen2
범용 v1
범용 v2
조직의 관리자가 Azure 계정에 IAM 사용자 권한을 부여합니다.
참고
이 항목의 지침을 완료하려면 Azure에서 IAM 정책 및 역할을 생성 및 관리할 수 있는 권한이 필요합니다. Azure 관리자가 아닌 경우 Azure 관리자에게 이러한 작업을 수행하도록 요청하십시오.
데이터 복구 기능에 대한 자세한 내용은 저장소 공급자에 문의하십시오.
1단계: 카탈로그 만들기¶
Open Catalog에 로그인합니다.
Open Catalog 홈페이지의 카탈로그 영역에서 + 만들기 를 선택합니다.
카탈로그 만들기 대화 상자에서 다음 필드를 완성합니다.
이름 에 카탈로그의 이름을 입력합니다.
카탈로그 이름은 대/소문자를 구분합니다.
선택 사항: 외부 카탈로그를 만들려면 외부 토글을 켜기 로 설정합니다.
외부 카탈로그에 대한 자세한 내용은 카탈로그 유형 섹션을 참조하십시오.
저장소 공급자 에 AZURE 를 선택합니다.
기본 기준 위치 에는 컨테이너의 기본 엔드포인트 경로에 이 목록에서 해당하는 형식을 적용하여 Azure 저장소 컨테이너의 기본 기준 위치를 입력합니다.
엔드포인트 유형
형식
기본 기준 위치 예
Blob
abfss://<컨테이너_이름>@<저장소_계정_이름>.blob.core.windows.net/<디렉터리_이름>/
abfss://my_container1@my_storageaccount1.blob.core.windows.net/my_directory1/
Azure Data Lake Storage(ADLS)
abfss://<컨테이너_이름>@<저장소_계정_이름>.dfs.core.windows.net/<디렉터리_이름>/
abfss://my_container2@my_storageaccount2.dfs.core.windows.net/my_directory2/
참고
Microsoft Azure 컨테이너를 생성할 때 이 경로와 컨테이너 이름을 복사했습니다.
컨테이너의 기본 엔드포인트 경로에서 저장소 계정의 이름은
https://
와 경로에서 첫 번째 마침표 사이의 텍스트입니다.https://
가 아닌abfss://
접두사를 사용합니다.
선택 사항: 카탈로그에 두 개 이상의 위치에 저장된 오브젝트가 있는 경우 추가 위치(선택 사항) 필드에 각각의 추가 저장소 위치를 쉼표로 구분하여 나열합니다.
테넌트 ID 에 Azure 테넌트 ID를 입력합니다.
만들기 를 선택합니다.
2단계: 저장소 위치의 값 복사¶
Open Catalog 홈페이지의 카탈로그 영역에서 자신이 만든 카탈로그를 선택합니다.
저장소 세부 정보 에서 다음 값을 복사합니다.
속성
설명
AZURE_CONSENT_URL
Microsoft 권한 요청 페이지에 대한 URL입니다.
AZURE_MULTI_TENANT_APP_NAME
계정에 대해 생성된 Snowflake 클라이언트 애플리케이션의 이름입니다. 이 섹션의 이후 단계에서는 허용되는 저장소 위치에 대한 액세스 토큰을 획득하기 위한 권한을 이 애플리케이션에 부여해야 합니다.
다음 단계에서 이러한 값을 사용합니다.
3단계. Azure 서비스 주체에게 액세스 토큰에 대한 권한 부여¶
웹 브라우저에서 Microsoft 권한 요청 페이지(Azure 동의 URL)로 이동합니다.
수락 을 선택합니다.
이 작업을 통해 Open Catalog 계정에 대해 생성된 Azure 서비스 주체에게 tenant 내부의 지정된 리소스에 대한 액세스 토큰이 부여됩니다. 액세스 토큰은 서비스 주체에 컨테이너에 대한 적절한 권한을 부여한 경우에만 획득이 가능합니다. Microsoft 권한 요청 페이지가 Snowflake 회사 사이트(snowflake.com)로 리디렉션됩니다.
Microsoft Azure 포털에 로그인합니다.
Azure 서비스 > 저장소 계정 을 엽니다.
Open Catalog 서비스 주체가 액세스해야 하는 저장소 계정의 이름을 선택합니다.
액세스 제어(IAM) > 역할 할당 추가 를 선택합니다.
Open Catalog 서비스 주체에게 부여하려는 역할(예: Storage Blob Data Contributor 역할)을 선택합니다.
Storage Blob Data Contributor 역할은 Open Catalog 서비스 주체에 대한 읽기 및 쓰기 액세스 권한을 부여하고 저장소 위치에 대한 쓰기 액세스 권한을 부여합니다.
참고
Open Catalog가 사용자 위임 공유 액세스 서명(SAS) 토큰을 발급합니다. 저장소 blob에 액세스하기 위한 SAS 토큰은 blob이나 디렉터리가 아닌 컨테이너 수준에서 범위가 지정됩니다. 선택한 역할에는 사용자 위임 키를 생성할 권한이 있어야 합니다. 이러한 역할 목록은 RBAC를 사용하여 권한 할당하기 섹션을 참조하십시오.
다음 을 선택합니다.
+ 구성원 선택 을 선택합니다.
1시간 후 Azure 다중 테넌트 앱 이름 속성인 Open Catalog 서비스 주체를 검색하여 선택합니다. 속성 값의 밑줄 앞 에 있는 문자열을 검색합니다.
중요
Azure에서 이 섹션의 Microsoft 요청 페이지를 통해 요청한 Open Catalog 서비스 주체를 생성하기 위해서는 1시간이 이상 걸릴 수 있습니다. 서비스 주체를 즉시 사용할 수 없는 경우 1~2시간 기다린 후 다시 검색하십시오.
서비스 주체를 삭제하면 인증 실패로 인해 카탈로그가 작동을 멈추게 됩니다.
선택 을 선택합니다.
검토 + 할당 을 선택합니다.
참고
역할을 할당하면 변경 사항이 적용되는 데 최대 10분이 걸릴 수 있습니다. 자세한 내용은 Microsoft Azure 설명서의 증상 - 역할 할당 변경 사항이 감지되지 않음 섹션을 참조하십시오.