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

Lakehouse 런타임 카탈로그의 사용자 인증 정보 제공을 사용하면 스토리지 액세스를 위임하고 데이터 파일에 세분화된 권한을 적용할 수 있습니다. Apache Iceberg용 Lakehouse의 일부인 이 기능을 사용하면 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)을 부여해야 합니다. 이 계정에는 액세스 권한이 없습니다. 이 액세스 권한이 없으면 제공된 사용자 인증 정보가 스토리지에서 읽거나 쓸 수 없습니다. 콘솔을 사용하는 경우 Set 버킷 권한 설정 을 클릭하면 이 역할이 확인됩니다. Google Cloud gcloud CLI, Terraform 또는 API의 경우 이 역할을 수동으로 부여해야 합니다.
  • 쿼리 엔진 서비스 계정: 쿼리 엔진 작업 (예: Managed Service for Apache Spark, Managed Service for Apache Spark 또는 Dataflow)을 실행하는 서비스 계정에는 쓰기 범위로 제공된 사용자 인증 정보를 가져오기 위해 프로젝트 수준에서 BigLake 편집자 역할 (roles/biglake.editor)이 필요합니다.

다음 단계