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

Der*_*ins 2 google-bigquery google-cloud-console google-cloud-platform

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

要求

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

我做了什么

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

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

Google BigQuery数据集权限设置 我想我需要设置一些特殊组,但我无法弄清楚如何做到这一点.

提前致谢!

Mar*_*rio 5

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

  1. 第一个是与Google云端项目关联的结算(用于查询和任何其他可结算活动).
  2. 第二个是访问数据集.

话虽如此,为了满足您的要求,您需要为每个客户创建一个单独的项目,并以您希望的粒度授予对数据集的访问权限.

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

例如项目Project1Project2中的[MyDatasetA]用户XY的数据集,但是项目Project2Project3中的用户YZ的访问权限.[MyDatasetB]

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

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

项目组是允许一次性选择具有Viewer,Developer或Owner角色的成员的组,无需手动添加每个成员的麻烦.

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

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

这样做的提示是,新用户通常需要显示您的项目,以便它出现在BQ在线浏览器中.这是通过点击箭头,项目名称在网上BQ浏览器,然后一边做Switch to project然后Display project与数据集所属的项目名称.

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