사용자 인증 정보 벤더 제공 개요

Lakehouse 런타임 카탈로그 의 사용자 인증 정보 제공을 사용하면 스토리지 액세스를 위임하고 데이터 파일에 세분화된 권한을 적용할 수 있습니다. Lakehouse for Apache Iceberg의 일부인 이 기능을 사용하면 Cloud Storage에 저장된 테이블의 테이블 수준에서 ID 및 액세스 관리 (IAM) 정책을 관리할 수 있습니다.

gcloud CLI를 사용하여 이러한 정책을 가져오고 설정하여 리소스에 대한 액세스를 제어할 수 있습니다.

사용자 인증 정보 제공 작동 방식

사용자 인증 정보 제공을 사용하면 데이터가 읽히기 전에 정책을 적용하도록 쿼리 처리 순서가 약간 변경됩니다.

  1. 요청: 사용자가 지원되는 엔진 (예: Apache Spark 또는 BigQuery)에 SQL 쿼리를 제출합니다.
  2. 메타데이터 조회: 엔진이 Lakehouse 런타임 카탈로그에 테이블을 확인하는 요청을 보냅니다.
  3. 인증 및 정책: 카탈로그가 사용자를 인증하고 Google Cloud의 Lakehouse 리소스에 대한 IAM 권한을 확인합니다.
  4. 응답: 사용자 인증 정보 제공이 사용 설정되어 있으므로 카탈로그는 메타데이터와 단기 스토리지 토큰 (다운스코프된 스토리지 사용자 인증 정보)을 엔진에 반환합니다.
  5. 읽기: 엔진은 이 토큰을 사용하여 Cloud Storage에서 특정 승인된 파일을 직접 읽습니다.
  6. 계산: 엔진이 데이터를 처리하고 결과를 반환합니다.

지원되는 엔진

쿼리 엔진에서 사용자 인증 정보 제공을 사용하려면 Lakehouse Iceberg REST 카탈로그가 사용자 인증 정보 제공을 지원하도록 구성되어야 합니다.

  • 오픈소스 엔진: Apache Spark 및 Trino와 같은 지원되는 엔진은 카탈로그에서 제공하는 단기 스토리지 토큰을 사용합니다. 클라이언트 애플리케이션은 X-Iceberg-Access-Delegation 헤더에서 사용자 인증 정보 제공 지원을 지정해야 합니다.
  • BigQuery: BigQuery는 최종 사용자 사용자 인증 정보 대신 Cloud Storage 액세스를 위해 제공된 사용자 인증 정보를 사용합니다.

필수 서비스 계정 권한

사용자 인증 정보 제공이 사용 설정된 경우 다음 서비스 계정에 필요한 역할이 있는지 확인합니다.

  • 자동 프로비저닝된 Lakehouse 런타임 카탈로그 서비스 계정: 대상 Cloud Storage 버킷에 스토리지 객체 사용자 역할(roles/storage.objectUser)을 명시적으로 부여해야 합니다. 기본적으로 이 서비스 계정은 뷰어 전용 액세스 권한으로 생성됩니다. 객체 관리자 액세스 권한이 없으면 제공된 사용자 인증 정보가 스토리지 쓰기를 실행할 수 없습니다. (참고: 콘솔 UI를 통해 구성하는 경우 버킷 권한 설정 을 클릭하면 이 역할이 확인됩니다. gcloud, Terraform 또는 API 설정의 경우 이 역할을 수동으로 부여해야 합니다.)
  • 쿼리 엔진 서비스 계정: 쿼리 엔진 작업 (예: Managed Service for Apache Spark, Managed Service for Apache Spark 또는 Dataflow)을 실행하는 서비스 계정은 쓰기 범위가 있는 제공된 사용자 인증 정보를 가져오기 위해 프로젝트 수준에서 BigLake 편집자 역할 (roles/biglake.editor)이 필요합니다.

다음 단계