You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery如何通过CEL条件为指定表授予访问权限

针对BigQuery指定表粒度授权的CEL条件实现方案

roles/bigquery.user 本身是数据集级的角色,要限制仅对指定表生效,只需要在授予该角色时添加IAM条件即可,具体操作和CEL规则如下:

操作步骤

  • 进入对应GCP项目的IAM权限管理页面,找到需要授权的账号/服务账号,点击「编辑权限」
  • 点击「添加角色」,选择 roles/bigquery.user(或者其他需要限制表范围的BigQuery相关角色)
  • 点击角色右侧的「添加条件」,进入条件生成器页面

CEL规则编写

两种实现方式,可直接写CEL表达式或者用可视化条件生成器配置:

1. 直接编写CEL表达式

如果是限制单张表的访问权限,CEL表达式如下:

resource.type == "bigquery.googleapis.com/Table" && resource.name == "projects/你的项目ID/datasets/你的数据集ID/tables/你的表名"

如果是匹配符合命名规则的多张表,比如匹配表名前缀为ods_的所有表,可以用:

resource.type == "bigquery.googleapis.com/Table" && resource.name.startsWith("projects/你的项目ID/datasets/你的数据集ID/tables/ods_")

如果要匹配多个不相关的指定表,可以用:

resource.type == "bigquery.googleapis.com/Table" && resource.name in [
  "projects/项目ID/datasets/数据集ID/tables/表1",
  "projects/项目ID/datasets/数据集ID/tables/表2"
]

2. 可视化条件生成器配置

不需要手动写代码的配置方式:

  • 条件类型选择「资源」
  • 资源类型选择 bigquery.googleapis.com/Table
  • 运算符选择「名称」->「等于」/「开头为」/「在列表中」,根据你的需求填入对应表的完整资源路径即可

注意事项

该条件仅会限制roles/bigquery.user对表资源的访问权限,不会影响账号对数据集本身的列表等基础操作权限;如果需要同时限制作业权限,可以在CEL规则中追加resource.type == "bigquery.googleapis.com/Job"相关的判断逻辑。

内容的提问来源于stack exchange,提问作者BAE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:09:02