通过 Lakehouse 运行时目录的凭据自动售卖功能,您可以委托存储访问权限,并对数据文件应用精细的权限。 作为 Lakehouse for Apache Iceberg 的一部分,此功能可让您在表级管理存储在 Cloud Storage 中的表的 Identity and Access Management (IAM) 政策。
您可以使用 gcloud CLI 获取和设置这些政策,以控制对资源的访问权限。
凭证分发的工作方式
使用凭据贩卖时,操作顺序会略有变化,以便在访问存储空间之前强制执行政策:
- 请求:用户向受支持的引擎提交 SQL 语句,例如查询、DML 或 DDL 操作。例如,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 Object User 角色 (
roles/storage.objectUser)。如果没有此访问权限,供应商提供的凭据将无法读取或写入存储空间。如果您使用Google Cloud 控制台,点击设置存储桶权限即可验证此角色。对于 gcloud CLI、Terraform 或 API,您必须手动授予此角色。 - 查询引擎服务账号:运行查询引擎作业(例如 Managed Service for Apache Spark、Managed Service for Apache Spark 或 Dataflow)的服务账号需要具有 BigLake Editor 角色 (
roles/biglake.editor),才能获取具有写入范围的出售凭据。
后续步骤
- 了解如何在凭据自动售卖模式下创建目录。
- 了解如何使用Google Cloud 控制台为现有目录启用凭据自动售卖。
- 了解如何为凭据自动售卖配置客户端应用。