Google Cloud Platform – 在 BigQuery 中使用 IAM 管理访问权限
虽然大数据为我们带来了宝贵的见解和机会,但它也带来了确保数据安全的责任,这意味着只有正确的数据才能与正确的人共享。在本文中,我们将讨论如何使用 Google Cloud 的身份和访问管理服务来定义哪些用户可以在您的项目中查询并访问您的数据集。
BigQuery 是一项完全托管的服务。这意味着它利用了 Google 的基础架构安全性。从服务的物理安全到严格的运营实践,谷歌端到端地保护其基础设施。
但本文是关于您在确保项目和数据安全方面所扮演的角色。具体来说,您如何与公司中的不同最终用户和组共享项目和数据集访问权限。管理对项目和数据的访问的关键是身份和访问管理服务或 IAM。
Cloud IAM 允许您通过定义三件事来管理访问控制:
- 成员
- 角色
- 政策
这意味着您指定谁可以访问哪个资源。让我们仔细看看这些。
成员:
首先,成员,或有权访问的人。您可以通过多种方式定义成员。一种方法是通过他们的电子邮件地址来识别最终用户(如果它与 Google 帐户相关联)。您还可以使用 Google Group、G Suite 域或 Cloud Identity 域作为成员来为一组用户设置访问权限。有时,需要访问您的 BigQuery 数据的不是人,而是应用程序或服务。在这种情况下,您可以创建一个服务帐户,这是一种特殊类型的 Google 帐户,旨在代表非人类用户。创建服务帐户时,会为其分配一个特殊地址,该地址可在定义访问权限时用作成员的身份。当您向任何已登录的用户授予数据集访问权限时,会有一个名为all authenticated users的特殊标识符,在这种情况下您可以将其用作成员。这正是我们向所有 BigQuery 用户提供 BigQuery 公共数据集的方式。
角色:
一旦定义了成员,您需要决定赋予该成员什么角色。角色包括一组权限,用于确定允许成员执行哪些操作。 Cloud IAM 提供了多个包含这些权限组合的预定义角色。Role Description BigQuery Admin Manage all resources and data within the project BigQuery Data Owner Access to edit and share datasets and tables BigQuery Data Editor Access to edit datasets and all its tables BigQuery Data Viewer Access to view datasets and all its tables BigQuery Job User Access to run jobs, including queries BigQuery User Access to run queries and create datasets BigQuery Metadata Viewer Access to view table and dataset metadata
它们包括查看或编辑数据集的能力,以及运行查询和存储计入项目的数据的能力。也可以创建自定义角色。这些允许您将一个或多个权限捆绑到一个角色中以满足您的特定需求。随着新功能、权限和服务添加到 Google Cloud,您必须管理您的自定义角色。因此,出于这个原因,建议坚持使用预定义的角色。您始终可以为成员分配多个预定义角色。
政策:
成员和角色共同构成策略,然后将其应用于特定资源。该政策可以附加到特定的表、数据集或 GCP 项目本身。在项目级别,权限适用于作为项目一部分的所有当前和未来数据集。
让我们看看它在特定场景中是如何工作的。假设您是一家拥有两组数据分析师的零售公司。第一组分析您的零售额,第二组分析客户服务请求。这两种类型的数据存储在项目中的不同数据集中。两组分析师都需要对他们处理的数据集具有完全的访问权限(读写权限),并需要访问权限才能对项目运行查询。
让我们前往控制台并设置策略。首先,您将赋予销售分析师零售销售数据集的 BigQuery 数据编辑者角色。要在数据集级别设置角色,请从资源中选择数据集,然后单击窗口右侧附近的共享数据集。在数据集权限选项卡上,将要添加的实体输入到添加成员文本框中。要选择角色,请选择 BigQuery 数据编辑器并点击添加。然后点击完成。
然后按照相同的步骤为客户服务分析师授予客户服务数据集的 BigQuery 数据编辑者角色。您会注意到我们正在使用 Google 群组来授予角色。 Google 群组是为用户集合创建策略的便捷方式。您可以一次授予和更改整个组的访问权限,而不是一次授予单个用户一个。
然后,您可以轻松地直接从 Google 群组本身添加或删除成员。赋予分析师数据集级别的数据编辑者角色使他们能够访问该特定数据集中的所有表,但不会授予他们实际运行对该项目计费的查询的权限。为此,他们必须被授予名为 BigQuery 用户的项目级角色。要在项目级别授予角色,您需要前往导航窗口。将鼠标悬停在管理中的 IAM 上,然后单击以选择 IAM。
在屏幕顶部,单击添加。在新成员框中,输入两个电子邮件地址来代表您的分析师组。
选择 BigQuery 用户角色,然后点击保存。
现在,您的两个团队已准备好并有能力安全地分析他们的数据。