【问题标题】:Service Account with roles/viewer primitive role not able to read dataset in the project具有角色/查看者原始角色的服务帐户无法读取项目中的数据集
【发布时间】:2019-12-02 02:36:20
【问题描述】:

我有一个数据集的角色/bigquery.dataViewer 角色。这使我可以查询属于数据集的表中的数据。我获得了一个具有项目级别查看者角色的服务帐户。当我使用用户帐户查看“共享数据集”时,我看到“查看者”角色有一个成员,即服务帐户,“BigQuery 数据集查看者”有 2 个成员,我的用户名和项目查看者。这应该允许服务帐户查询数据集中的表。但是,当我使用 bq 工具时,出现以下错误“用户无权查询表...”

还需要什么才能让服务帐户能够查询数据集中的表?

【问题讨论】:

  • 运行bq命令时,你当前的身份是什么?如果你运行 gcloud config list 你会看到什么?
  • 它显示与服务帐户相同的帐户配置为活动。
  • 我用我的用户帐户创建了另一个配置,它与 bq 一起使用,就像在 gcp 控制台中一样。

标签: google-bigquery google-cloud-iam


【解决方案1】:

根据https://blog.jetbrains.com/datagrip/2018/07/10/using-bigquery-from-intellij-based-ide/,您可能需要以下权限:

  • 大查询 | BigQuery 数据视图
  • 大查询 | BigQuery 作业用户
  • 大查询 | BigQuery 用户

【讨论】:

  • 我注意到BigQuery Data ViewerBigQuery User 就足够了
【解决方案2】:

在与项目所有者讨论并查看服务帐号的权限后,此问题已得到解决。服务帐户没有我认为它拥有的 Project Viewer 权限。我假设这是因为当我单击“共享数据集”时,它会显示不同的角色,其中一个是“查看者”,其中包含文本“对所有资源的读取访问权限”,并且服务帐户是其中的一部分。我们最终将 Bigquery Data Viewer 角色添加到服务帐户,一切正常。

【讨论】:

    【解决方案3】:

    您需要添加 bigquery.jobs.create 权限或 bigquery.jobUser 角色才能使用任何帐户创建运行 BigQuery 作业,这里是官方documentation 以供进一步参考。

    您可能已经在您的主帐户中继承了此权限。

    【讨论】:

    • 是的,服务帐户已经有 bigquery。在收到作业创建错误后添加了用户。我仍然收到上述错误。
    猜你喜欢
    • 2021-08-31
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2015-06-23
    • 2019-01-01
    • 2019-09-08
    相关资源
    最近更新 更多