【问题标题】:My service account is not able to access BigQuery Data even if it have sufficient permission我的服务帐号即使拥有足够的权限也无法访问 BigQuery 数据
【发布时间】:2020-09-02 01:03:28
【问题描述】:

我想使用 BigQuery API 在 BigQuery 中查询数据。 这些是我所做的。

  1. 从“API 服务”菜单创建服务帐户 screenshot
  2. 我授予了“BigQuery 数据编辑器”和“BigQuery 用户”权限 screenshot
  3. 为该服务帐户添加了密钥 screenshot
  4. 尝试使用我创建的服务帐户从该项目的 BigQuery 表中检索数据。但它失败并显示以下错误消息。

拒绝访问:表 [项目 ID]-[表名称]:用户没有表 [项目 ID]-[表名称] 的 bigquery.tables.get 权限。

这很奇怪,因为在 Google 文档中的 BigQuery predefined IAM roles 上,“BigQuery 数据编辑器”中包含“bigquery.tables.get”权限。
screenshot

我仔细检查了服务帐号是否具有来自 IAM 和管理菜单的“BigQuery 数据编辑器”和“BigQuery 用户”权限。
screenshot
我多次尝试此过程以确认我没有犯错误,但结果不会改变。这个问题的原因是什么?任何评论将不胜感激。

p.s.我使用 Microsoft 提供的数据分析工具 DataBricks 软件,关注this step。首先我怀疑 DataBricks 上的配置,但是当我成功使用另一个 BigQuery 帐户检索数据时,我认为这个 BigQuery 帐户存在问题。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您可能没有使用您认为的凭据运行?您可以从您的数据块工具运行查询来验证吗? SELECT SESSION_USER() as whoami 之类的东西应该可以确认。

    另一个最可能导致此错误的原因是该工具正在尝试使用与您预期不同的项目 ID。 databricks 是否有用于定义要使用的默认项目 ID 的配置选项?

    【讨论】:

    • 感谢 cmets shollyman。我正在寻找在 DataBricks 上执行此类查询的命令,但仍然无法找到它。找到后让我更新。 DataBricks 有一个用于定义默认项目 ID 的配置选项,我明确定义了项目 ID,但它不起作用。再次感谢您的评论。
    • 我尝试了您提供的命令,并确认查询是由我打算使用的服务帐户运行的。现在我假设 GCP 上的 VPC 网络正在限制来自数据块的访问。 cloud.google.com/vpc/docs/vpc?hl=en
    • 是的,如果涉及 VPC-SC 策略,则可能是问题的根源。
    猜你喜欢
    • 2020-04-02
    • 2019-05-14
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多