사용자 인증 정보 제공 사용 설정

기존 Apache Iceberg REST 카탈로그에 사용자 인증 정보 벤더 제공 모드를 사용 설정하면 권한이 있는 쿼리 엔진 또는 워크로드에 수명이 짧은 다운스코프 스토리지 토큰을 제공하도록 Lakehouse for Apache Iceberg가 구성됩니다.

Lakehouse 런타임 카탈로그 내에서 이 인증 방법을 사용하면 사용자 또는 쿼리 런타임이 기본 Cloud Storage 버킷에 대한 직접 읽기 및 쓰기 권한을 보유할 필요가 없습니다.

시작하기 전에

  1. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다 Google Cloud .

  2. BigLake API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기

    API 사용 설정

필요한 역할

사용자 인증 정보 벤더 제공을 사용 설정하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • 전체:
  • 자동 프로비저닝된 Apache Iceberg REST 카탈로그 서비스 계정: 스토리지 객체 사용자 (roles/storage.objectUser) 대상 Cloud Storage 버킷에 대한 사용자 인증 정보 벤더 제공을 사용 설정한 후 스토리지 버킷에 대한 스토리지 객체 사용자 역할 (roles/storage.objectUser)을 카탈로그의 자동 프로비저닝된 Apache Iceberg REST 카탈로그 서비스 계정에 명시적으로 부여합니다.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

사용자 인증 정보 벤더 제공 사용 설정

Apache Iceberg REST 카탈로그의 인증 방법이 최종 사용자 인증 정보로 설정 된 경우 사용자 인증 정보 벤더 제공 모드로 전환할 수 있습니다.

콘솔

  1. 콘솔에서 Lakehouse 페이지를 엽니다. Google Cloud

Lakehouse로 이동

  1. 업데이트 중인 카탈로그의 행에서 카탈로그 작업 더보기 > 인증 수정을 선택합니다.

    1. 인증 대화상자에서 사용자 인증 정보 벤더 제공 모드 를 선택합니다. 자동 프로비저닝된 Apache Iceberg REST 카탈로그 서비스 계정에는 대상 Cloud Storage 버킷에 대한 명시적인 스토리지 객체 사용자 역할(roles/storage.objectUser)이 필요합니다. 기본적으로 뷰어 전용 액세스 권한으로 생성됩니다. 이 역할이 없으면 벤더 제공 인증 정보의 범위가 스토리지 쓰기를 실행하기에 충분하지 않습니다.

    2. 저장 을 선택합니다. ` 카탈로그가 업데이트되고 카탈로그 세부정보 페이지가 열립니다.

  2. 인증 방법에서 버킷 권한 설정을 선택합니다.

    1. 대화상자에서 확인 을 선택합니다.

이렇게 하면 카탈로그의 서비스 계정에 스토리지 버킷에 대한 스토리지 객체 사용자 역할 (roles/storage.objectUser)이 있는지 확인됩니다.

gcloud

gcloud biglake iceberg catalogs create 명령어를 사용합니다.

gcloud biglake iceberg catalogs create \
    CATALOG_NAME \
    --project PROJECT_ID \
    --catalog-type gcs-bucket \
    --credential-mode vended-credentials \
    [--primary-location LOCATION]

다음을 바꿉니다.

  • CATALOG_NAME: 카탈로그의 이름입니다. 이 이름 은 Lakehouse Iceberg REST 카탈로그와 함께 사용되는 Cloud Storage 버킷 ID와 일치하는 경우가 많습니다. 예를 들어 버킷이 gs://bucket-id인 경우 카탈로그 이름 은 bucket-id일 수 있습니다. 이 이름은 BigQuery에서 이러한 테이블을 테이블을 쿼리할 때 카탈로그 식별자로도 사용됩니다.
  • PROJECT_ID: 프로젝트 ID Google Cloud
  • LOCATION: (선택사항) BigQuery와의 상호 운용성을 보장하는 카탈로그의 기본 리전입니다. 미국 리전 (예: US 또는 us-central1) 또는 EU 리전 (예: EU 또는 europe-west4)의 Cloud Storage 버킷의 경우 카탈로그에 액세스할 수 있고 해당 BigQuery 멀티 리전에서 쿼리할 수 있도록 각각 US 또는 EU를 지정합니다. 자세한 내용은 버킷 및 카탈로그 리전을 참조하세요.

    카탈로그를 만든 후 스토리지 버킷에 대한 스토리지 객체 사용자 역할 (roles/storage.objectAdmin)을 카탈로그의 자동 프로비저닝된 Apache Iceberg REST 카탈로그 서비스 계정에 명시적으로 부여합니다.

REST

REST API를 사용하여 사용자 인증 정보 벤더 제공 모드를 사용 설정하려면 PATCH 요청 을 UpdateIcebergCatalog 엔드포인트에 전송합니다.

PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credentialMode

요청 본문에는 credentialModeVENDED_CREDENTIALS로 설정된 IcebergCatalog JSON 페이로드가 포함되어야 합니다.

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다. Google Cloud
  • CATALOG_ID: Lakehouse 런타임 카탈로그의 ID입니다.