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

Lakehouse 런타임 카탈로그의 사용자 인증 정보 자동 판매를 사용하면 Cloud Storage 액세스를 쿼리 엔진에 위임하고 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 카탈로그, 네임스페이스, 테이블 수준에서 세분화된 Identity and Access Management (IAM) 정책을 적용할 수 있습니다. 압축, 스냅샷 만료, 가비지 컬렉션과 같은 백그라운드 유지보수 작업을 위해 자동 테이블 관리를 사용 설정하려면 사용자 인증 정보 자동 판매도 필요합니다.

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

사용자 인증 정보 판매를 사용하는 경우 스토리지에 액세스하기 전에 정책을 시행하도록 작업 순서가 약간 변경됩니다. 다음 다이어그램은 쿼리 엔진이 카탈로그에서 범위 축소된 스토리지 토큰을 가져와 Cloud Storage에서 직접 데이터를 안전하게 읽고 쓰는 방법을 보여줍니다.

쿼리 엔진은 Lakehouse 런타임 카탈로그에서 범위가 축소된 스토리지 토큰을 가져와 Cloud Storage에서 데이터를 읽고 씁니다.
Cloud Storage 액세스를 위임하는 사용자 인증 정보 자동 판매 워크플로

위 다이어그램에 표시된 작업 시퀀스는 다음과 같습니다.

  1. 요청: 사용자가 쿼리, DML 또는 DDL 작업과 같은 SQL 문을 Apache Spark 또는 BigQuery와 같은 지원되는 엔진에 제출합니다.
  2. 메타데이터 조회: 엔진이 테이블을 확인하기 위해 Lakehouse 런타임 카탈로그에 요청을 보냅니다.
  3. 인증 및 정책: 카탈로그는 사용자를 인증하고 Lakehouse 리소스에 대한 IAM 권한을 확인합니다.
  4. 응답: 사용자 인증 정보 판매가 사용 설정되어 있으므로 카탈로그는 메타데이터와 단기 스토리지 토큰 (범위가 축소된 스토리지 사용자 인증 정보)을 엔진에 반환합니다. 토큰은 테이블과 연결된 경로로 범위가 지정되고 필요한 최소 권한으로 범위가 축소됩니다 (예: 파일을 쓸 필요가 없는 쿼리에 대한 읽기 전용 액세스).
  5. 액세스: 엔진은 이 토큰을 사용하여 Cloud Storage에서 직접 특정 승인된 파일을 읽거나 씁니다.
  6. 컴퓨팅: 엔진이 데이터를 처리하거나 작업을 실행하고 결과를 반환합니다.

자동 테이블 관리(gcp.biglake.table-management.enabled)가 사용 설정되면 압축, 스냅샷 만료, 가비지 컬렉션과 같은 백그라운드 유지보수 태스크는 카탈로그의 자동 프로비저닝된 서비스 계정을 사용하여 Cloud Storage에 직접 인증하고 기본 데이터 파일을 업데이트합니다.

지원되는 엔진

쿼리 엔진에서 사용자 인증 정보 제공을 사용하려면 사용자 인증 정보 제공을 지원하도록 Lakehouse 런타임 카탈로그에서 Apache Iceberg REST 카탈로그 엔드포인트를 구성해야 합니다. Apache Hive 카탈로그 엔드포인트에는 사용자 인증 정보 판매가 지원되지 않습니다.

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

필수 서비스 계정 권한

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

  • 자동 프로비저닝된 Lakehouse 런타임 카탈로그 서비스 계정: 연결된 모든 Cloud Storage 버킷에서 이 계정에 스토리지 객체 사용자 역할(roles/storage.objectUser)을 부여해야 합니다. 이 액세스 권한이 없으면 판매된 사용자 인증 정보가 스토리지에 읽거나 쓸 수 없습니다. Google Cloud 콘솔을 사용하는 경우 버킷 권한 설정을 클릭하면 이 역할이 확인됩니다. gcloud CLI, Terraform 또는 API의 경우 이 역할을 수동으로 부여해야 합니다.
  • 쿼리 엔진 서비스 계정: 쿼리 엔진 작업 (예: Managed Service for Apache Spark, Managed Service for Apache Spark 또는 Dataflow)을 실행하는 서비스 계정에는 쓰기 범위가 있는 판매된 사용자 인증 정보를 가져오기 위해 BigLake 편집자 역할 (roles/biglake.editor)이 필요합니다.

다음 단계