BigQuery 中的安全和访问权限控制简介
本文档简要介绍了使用 Identity and Access Management (IAM) 在 BigQuery 中进行访问权限控制。IAM 可让您授予对特定 BigQuery 资源的精细访问权限,并有助于防止对其他资源的访问。IAM 可帮助您应用最小权限安全原则,该原则要求任何 IAM 主账号都不应拥有超出实际所需数量的权限。
当 IAM 主账号(例如用户、群组或服务账号)调用 Google Cloud API 时,该主账号必须具有使用相应资源所需的最小 IAM 权限。如需向主账号授予所需的权限,您可以向主账号授予 IAM 角色。
本文档介绍如何使用预定义和自定义 IAM 角色来允许主账号访问 BigQuery 资源。
如需熟悉 Google Cloud中访问权限的管理方式,请参阅 IAM 概览。
IAM 角色类型
角色是一组可授予 IAM 主账号的权限。您可以使用 IAM 中以下类型的角色来授予对 BigQuery 资源的访问权限:
- 预定义角色由 Google Cloud 管理,并支持常见应用场景和访问权限控制模式。
- 自定义角色根据用户指定的权限列表提供访问权限。如需了解如何创建自定义角色,请参阅 IAM 文档中的创建和管理自定义角色。
如需确定预定义 IAM 角色中是否包含一项或多项权限,您可以使用以下方法之一:
- BigQuery IAM 角色和权限参考
- IAM 角色和权限索引
gcloud iam roles describe
命令- IAM API 中的
roles.get()
方法
BigQuery 中的 IAM 角色
权限不会直接分配给用户、群组或服务账号。用户、群组或服务账号会被授予一个或多个预定义角色或自定义角色,以获得对资源执行操作所需的权限。您可以针对特定资源授予这些角色,但这些角色也适用于资源层次结构中此资源的所有子级。
向用户分配多个角色类型时,授予的权限是每个角色所拥有权限的并集。
您可以授予对以下 BigQuery 资源的访问权限:
- 数据集以及数据集中的以下资源:
- 表和视图
- 例程
- 连接
- 已保存的查询
- 数据画布
- 数据准备
- 流水线
- 代码库
授予对 Resource Manager 资源的访问权限
您可以通过 Resource Manager 配置对 BigQuery 资源的访问权限,方法是向主账号授予 BigQuery 角色,然后在组织、文件夹或项目中授予该角色。
向组织和项目等 Resource Manager 资源授予角色时,您将对组织或项目中的所有 BigQuery 资源授予权限。
如需详细了解如何使用 IAM 管理对 Resource Manager 资源的访问权限,请参阅 IAM 文档中的管理对项目、文件夹和组织的访问权限。
授予对数据集的访问权限
您可以在数据集级分配角色,以提供对特定数据集的访问权限,而无需提供对项目的其他资源的完整访问权限。在 IAM 资源层次结构中,BigQuery 数据集是项目的子资源。如需详细了解如何在数据集级分配角色,请参阅使用 IAM 控制对资源的访问权限。
授予对数据集内单个资源的访问权限
您可以授予角色对数据集内特定类型的资源的访问权限,而无需提供对数据集资源的完整访问权限。
角色可以应用于数据集内的以下资源:
- 表和视图
- 例程
如需详细了解如何在表、视图或例程级分配角色,请参阅使用 IAM 控制对资源的访问权限。
后续步骤
- 如需详细了解如何向 BigQuery 资源分配角色,请参阅使用 IAM 控制对资源的访问权限。
- 如需查看 BigQuery 预定义的 IAM 角色和权限的列表,请参阅 BigQuery IAM 角色和权限。