凭证分发概览

借助 Lakehouse 运行时目录的凭据销售功能,您可以委托存储访问权限,并对数据文件应用精细的权限。 作为 Lakehouse for Apache Iceberg的一部分,此功能可让您在表级管理存储在 Cloud Storage 中的表的 Identity and Access Management (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 存储分区上的此账号授予 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) 才能 获取具有写入范围的销售凭据。

后续步骤