Lakehouse 執行階段目錄的憑證販售功能可讓您委派儲存空間存取權,並對資料檔案套用精細的權限。這項功能是 Lakehouse for Apache Iceberg 的一部分,可讓您在資料表層級管理 Cloud Storage 中儲存的資料表身分與存取權管理 (IAM) 政策。
您可以使用 gcloud CLI 取得及設定這些政策,控管資源的存取權。
認證臨時配發的運作方式
使用憑證販售時,查詢處理順序會略有變更, 以便在讀取資料前強制執行政策:
- 要求:使用者將 SQL 查詢提交至支援的引擎 (例如 Apache Spark 或 BigQuery)。
- 中繼資料查詢:引擎會傳送要求至 Lakehouse 執行階段目錄,以解析資料表。
- 驗證和政策:目錄會驗證使用者身分,並檢查使用者在 Google Cloud Lakehouse 資源上的 IAM 權限。
- 回應:由於憑證販售功能已啟用,目錄會將中繼資料和短期儲存空間權杖 (範圍縮小的儲存空間憑證) 傳回引擎。
- 讀取:引擎會使用這個權杖,直接從 Cloud Storage 讀取特定授權檔案。
- 運算:引擎會處理資料並傳回結果。
支援的引擎
如要搭配查詢引擎使用憑證販售功能,必須將 Lakehouse Iceberg REST 目錄設為支援憑證販售。
- 開放原始碼引擎:支援的引擎 (例如 Apache Spark 和 Trino) 會使用目錄提供的短期儲存空間權杖。用戶端應用程式必須在
X-Iceberg-Access-Delegation標頭中指定憑證販售支援功能。 - BigQuery:BigQuery 會使用 Cloud Storage 存取權的供應憑證,而非使用者憑證。
必要服務帳戶權限
啟用憑證販售功能後,請確保下列服務帳戶具備必要角色:
- 自動佈建的 Lakehouse 執行階段目錄服務帳戶:必須在目標 Cloud Storage 值區上明確授予「Storage 物件使用者」角色 (
roles/storage.objectUser)。根據預設,這個服務帳戶建立時只具備檢視者存取權。如果沒有物件管理員存取權,供應的憑證就無法執行儲存空間寫入作業。(注意:如果透過控制台 UI 設定,按一下「設定 bucket 權限」會驗證這個角色。如果是gcloud、Terraform 或 API 設定,則必須手動授予這個角色)。 - 查詢引擎服務帳戶:執行查詢引擎作業 (例如 Managed Service for Apache Spark、Managed Service for Apache Spark 或 Dataflow) 的服務帳戶,必須在專案層級具備 BigLake 編輯者角色 (
roles/biglake.editor),才能取得具有寫入範圍的販售憑證。
後續步驟
- 瞭解如何在憑證臨時配發模式中建立目錄。
- 瞭解如何使用Google Cloud 控制台,為現有目錄啟用憑證販售功能。
- 瞭解如何設定用戶端應用程式以販售憑證。