외부 카탈로그에 대한 자격 증명 제공 활성화하기

자격 증명 제공을 사용하면 Snowflake Open Catalog를 사용하여 카탈로그와 카탈로그의 기본 클라우드 저장소에 대한 액세스 제어를 한 곳에서 구성하고 관리할 수 있습니다. 내부 카탈로그의 경우 기본적으로 자격 증명 자동 발급이 사용 설정되어 있습니다. 외부 카탈로그의 경우 다음 선택 사항 중 하나를 사용하여 자격 증명 자동 발급을 사용 설정할 수 있습니다.

중요

외부 카탈로그에 자격 증명 자동 발급을 사용 설정하기 전에 카탈로그의 테이블에 저장소 디렉터리 위치가 겹치지 않는지 확인하십시오. 그렇지 않으면 사용자가 액세스 권한이 없어야 하는 테이블에 액세스할 수 있습니다. 자세한 내용은 외부 카탈로그용 자격 증명 자동 발급을 참조하십시오.

오픈 카탈로그 사용

  1. Open Catalog에 로그인합니다.

  2. 왼쪽 메뉴에서 카탈로그 를 선택합니다.

  3. 카탈로그 목록에서 자격 증명 자동 발급을 사용하도록 설정할 카탈로그를 선택합니다.

  4. 카탈로그 세부 정보 탭의 저장소 세부 정보 아래 자격 증명 자동 발급에서 편집 아이콘을 선택합니다.

    자격 증명 자동 발급 활성화 또는 비활성화를 위한 편집 아이콘을 보여주는 스크린샷](img/edit-icon-disable-credential-vending.png)

  5. 표시되는 팝업에서 사용 을 선택합니다.

Apache Polaris™ (인큐베이팅) CLI

이 섹션에서는 Polaris CLI 를 사용하여 외부 카탈로그에 대한 자격 증명 자동 발급을 활성화하는 방법에 대해 설명합니다. Apache Polaris(인큐베이팅) CLI 는 고객이 프로그래밍 방식으로 설정을 업데이트할 수 있는 명령줄 인터페이스입니다. 자세한 내용은 Apache Polaris(인큐베이팅) CLI 섹션을 참조하십시오.

외부 카탈로그에 대한 자격 증명 발급을 사용하려면 Polaris CLI 와의 서비스 연결을 사용합니다.

1단계: 필요한 권한으로 서비스 연결 준비하기

  1. 주체 역할 만들기를 클릭하여 새 서비스 연결에 할당합니다. 서비스 연결에 할당할 주체 역할이 이미 있는 경우에는 이 단계를 건너뛰십시오.

  2. 서비스 연결 구성을 클릭하고 클라이언트 ID 와 클라이언트 시크릿을 저장하여 나중에 Polaris CLI 에서 사용할 수 있습니다. Polaris CLI 를 사용하기 위해 이미 서비스 연결이 되어 있는 경우 이 단계를 건너뛰십시오.

  3. 대상 카탈로그에서 카탈로그 역할 만들기를 생성하여 자격 증명 자동 발급을 활성화하는 데 필요한 권한을 부여합니다. 자격 증명 자동 발급 활성화에 사용할 카탈로그 역할이 이미 있는 경우 이 단계를 건너뛰십시오.

  4. 대상 카탈로그 보안. 보안을 설정할 때 카탈로그 역할에 다음 권한 중 하나 이상이 부여되었는지 확인하십시오.

    • CATALOG_MANAGE_CONTENT

    • CATALOG_MANAGE_METADATA

    • CATALOG_WRITE_PROPERTIES

    자격 증명 자동 발급을 사용하려면 이 작업을 수행하는 데 사용되는 서비스 주체에 이러한 권한 중 하나가 부여되어 있어야 합니다.

2단계: CLI 명령 실행하기

CLI 명령을 실행하려면 사용 중인 환경에 해당하는 단계를 참조하십시오.

Linux 또는 Mac 사용자로 CLI 명령 실행

전제 조건

CLI 명령을 실행하기 전에 사용 중인 환경에 맞는 다음 전제 조건을 충족해야 합니다.

Linux 또는 Mac에서 CLI 명령을 실행하려면 다음 단계를 따르십시오.

  1. 다음 명령을 실행하여 Apache Polaris™ GitHub 리포지토리를 복제합니다.

    git clone https://github.com/apache/polaris.git
    
    Copy

    GitHub 리포지토리를 복제하는 방법에 대한 지침은 리포지토리 복제를 참조하십시오.

  2. CLI 명령에 대해 다음 환경 변수를 정의합니다.

    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    export sfAccountUrl=https://<open_catalog_account_identifier>.snowflakecomputing.com
    export catalogName=<my-catalog>
    
    Copy

    여기서:

    • sfAccountUrl 은 다음 URL: https://<open_catalog_account_identifier>.snowflakecomputing.com 과 같습니다. <open_catalog_account_identifier> 의 경우 카탈로그 열기 계정의 계정 식별자를 지정합니다. 계정의 리전과 클라우드 플랫폼에 따라, 이 식별자는 그 자체로 계정 로케이터가 되거나(예: xy12345) 추가 세그먼트를 포함할 수 있습니다. 자세한 내용은 계정 로케이터를 식별자로 사용하기 섹션을 참조하십시오.

    • CLIENT_ID 는 저장한 서비스 연결의 client_id입니다.

    • CLIENT_SECRET 는 저장한 서비스 연결에 대한 client_secret입니다.

    • catalogName 은 자격 증명 자동 발급을 사용하도록 설정할 외부 카탈로그의 이름입니다.

  3. Apache Polari 리포지토리를 복제본으로 생성한 디렉터리에서 Polaris CLI 를 실행합니다.

    ./polaris \
      --base-url "${sfAccountUrl}/polaris" \
      --client-id ${CLIENT_ID} \
      --client-secret ${CLIENT_SECRET} \
      catalogs \
      update "${catalogName}" \
      --set-property "enable.credential.vending"="true"
    
    Copy

Windows 사용자로 CLI 명령을 실행합니다

전제 조건

다음 코드를 실행하려면 Windows 머신에 Docker가 설치 관리자가 필요합니다.

  1. 다음 코드 예제를 사용하여 Docker 파일을 만듭니다.

    FROM python:3.11
    
    # install git
    RUN apt-get update && apt-get install -y git
    
    # get polaris
    RUN git clone https://github.com/apache/polaris.git
    
    WORKDIR /polaris
    
    RUN pip install --upgrade pip
    
    # install polaris cli
    RUN ./polaris --help
    
    Copy
  2. Docker파일이 위치한 폴더에서 다음 명령을 사용하여 Polaris CLI 에 대한 도커 이미지를 빌드합니다.

    % docker build -t polaris-cli .                                                                                                                 0.0s
    
    Copy
  3. 다음 명령어로 도커 컨테이너와 bash 터미널을 실행합니다.

    % docker run --rm -it polaris-cli /bin/bash
    root@ae4c8353b45f:/polaris# 
    
    Copy
  4. 다음 코드를 실행해 카탈로그를 업데이트하여 enable.credential.vending 속성을 true 로 설정합니다.

    % docker run --rm -it polaris-cli /bin/bash
    root@ae4c8353b45f:/polaris# export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    export sfAccountUrl=https://<open_catalog_account_identifier>.snowflakecomputing.com
    export catalogName=<my-catalog>
    root@ae4c8353b45f:/polaris# ./polaris \
      --base-url "${sfAccountUrl}/polaris" \
      --client-id ${CLIENT_ID} \
      --client-secret ${CLIENT_SECRET} \
      catalogs \
      update "${catalogName}" \
      --set-property "enable.credential.vending"="true"
    
    Copy
  5. 다음 코드를 실행하여 enable.credential.vending 매개 변수가 올바르게 구성되었는지 확인합니다.

    root@ae4c8353b45f:/polaris# ./polaris \
      --base-url "${sfAccountUrl}/polaris" \
      --client-id ${CLIENT_ID} \
      --client-secret ${CLIENT_SECRET} \
      catalogs \
      get "${catalogName}"
    {"type": "EXTERNAL", "name": "<my-catalog>", "properties": {"default-base-location": "s3://<bucket-name>/polaris/my-catalog-v2-storage/", "enable.credential.vending": "true"}, "createTimestamp": 1722547448827, "lastUpdateTimestamp": 1730906335286, "entityVersion": 3, "storageConfigInfo": {"storageType": "S3", "allowedLocations": ["s3://<bucket-name>/polaris/my-catalog-v2-storage/"], "roleArn": "arn:aws:iam::<aws-account-id>:role/<polaris-aws-role>"}}
    
    Copy