凭证分发概览

借助 Lakehouse 运行时目录的凭据销售功能,您可以委托存储访问权限,并对数据文件应用精细的权限。 作为 Lakehouse for Apache Iceberg的一部分,此功能可让您在表级管理存储在 Cloud Storage 中的表的 Identity and Access Management (IAM) 政策。

您可以使用 gcloud CLI 获取和设置这些政策,以控制对资源的访问权限。

凭据销售的工作原理

使用凭据销售时,操作顺序会略有变化,以便在访问存储空间之前强制执行政策。下图说明了查询引擎如何从目录获取范围缩小的存储令牌,以便在 Cloud Storage 中安全地直接读取和写入数据:

凭据自动售卖架构图,展示了查询引擎如何从 Lakehouse 运行时目录获取范围缩减的存储令牌,以安全地访问 Cloud Storage。
凭据销售工作流委托 Cloud Storage 访问权限。

上图中显示的操作顺序如下:

  1. 请求: 用户向受支持的引擎提交 SQL 语句,例如查询、DML 或 DDL 操作。例如,Apache Spark 或 BigQuery。
  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 存储分区上的此 账号授予 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) 才能 获取具有写入范围的销售凭据。

后续步骤