BigQuery - 授予对其他Google云平台项目的访问权限

时间:2015-03-19 00:44:02

标签: google-bigquery google-cloud-platform google-cloud-console

我正在尝试设置客户访问我的一些BigQuery数据。我将从我的要求开始,然后我认为解决方案需要,但我不确定如何执行。

要求

  1. 根据客户的查询单独计费
  2. 我不想公开我的数据集
  3. 只读访问特定数据集
  4. 可通过Excel连接器访问
  5. 我的主项目没有访问权限
  6. 他们管理自己的访问权限,我不希望代表所有客户添加和删除直接数据集访问的个人用户。
  7. 很高兴拥有 - Web UI访问
  8. 我做了什么

    • 创建了一个新的Google Developer Project
    • 在该项目中添加了一个仅查看用户
    • 添加了服务帐户
    • 授予对我的BigQuery数据集到服务帐户的访问权限

    以下是从文档中授予数据集访问权限的选项:

    Google BigQuery Dataset Permissions Settings 我想我需要设置一些特殊组,但我无法弄清楚如何做到这一点。

    提前致谢!

1 个答案:

答案 0 :(得分:5)

在BigQuery中有两个不同的概念:

  1. 第一个是结算(用于查询和任何其他计费 活动)与Google Cloud Project相关联。
  2. 第二个是访问数据集。
  3. 话虽如此,为了满足您的要求,您需要为每个客户创建一个单独的项目,并以您希望的粒度授予对数据集的访问权。

    通过这种方式,您可以将每个项目的成本分开但向您收取费用。除非您希望他们能够创建其他服务(如VM)或部署GAE应用程序,否则请务必仅授予他们对项目的读取权限,因为他们也会向您收费。

    例如项目 Project1 Project2 中的用户 X Y 的数据集[MyDatasetA],但在项目 Project2 Project3 中访问[MyDatasetB]用户 Y Z

    因此,每个项目都对其用户运行的查询负责,并且您对每个数据集都拥有访问控制权,而不会将其公开。

    1. 根据客户的查询单独计费。完成独立项目。
    2. 我不想公开我的数据集。完成细粒度控制访问。
    3. 只读特定数据集的访问权限。与上述相同。
    4. 可以通过Excel连接器访问。它应该没有问题,因为他们是一流的BQ用户。
    5. 对我的主项目没有访问权限。如果仅限于他们自己的项目,则可以再次使用。
    6. 他们管理自己的访问权限。这比较棘手。我认为,如果您使用项目组作为访问控制,他们需要的不仅仅是读取对数据集的访问权限,还不仅仅是读取对项目的访问权限,以便能够添加新用户。
    7. 很高兴 - Web UI访问。查看https://bigquery.cloud.google.com/
    8. 项目组是允许一键选择具有Viewer,Developer或Owner角色的成员的组,无需手动添加每个成员的麻烦。

      您已经设置了三个小组供您使用:原始项目的查看者,编辑者和所有者。

      但您可以创建自己的Google网上论坛,并为这些群组提供所需的权限。

      这样做的提示是,新用户通常需要显示您的项目,以便它显示在BQ online browser中。通过单击BQ在线浏览器中项目名称旁边的箭头,然后单击Switch to project,然后Display project,使用数据集所属的项目名称,即可完成此操作。

      编辑:改进了有关群组访问的说明