【问题标题】:Authenticating the Service Account and Performing a Simple Query验证服务帐户并执行简单查询
【发布时间】:2020-12-01 06:31:54
【问题描述】:

我有一个供应商客户提供的服务帐户

我正在使用 .NET API 通过他们提供的服务帐户从他们的数据库中提取数据 我正在尝试运行一个简单的查询“从 [projectId].[datasetId].[table] 中选择名称” 我收到以下错误:

Access Denied: Project [projectId]: User does not have bigquery.jobs.create permission in project [projectId]. [403]
Errors [
    Message[Access Denied: Project [projectId]: User does not have bigquery.jobs.create permission in project [projectId].] Location[ - ] Reason[accessDenied] Domain[global]
]
  1. 如何检查我的服务帐号权限?
  2. 如何验证我的服务帐号?
  3. 执行“选择”的唯一方法是使用作业权限?

【问题讨论】:

  • 供应商是否向您发送服务帐户密钥文件?您是否有自己的 GCP 订阅(甚至免费)?
  • 问题出在我的权限上。我要求供应商提供给我

标签: authentication google-cloud-platform permissions google-bigquery gcloud


【解决方案1】:
  1. 有多种方法可以测试 documentation website 上的 IAM 权限。使用 curl 你会这样做:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://cloudresourcemanager.googleapis.com/v1/projects/project-id:testIamPermissions

虽然您已经知道缺少哪些权限,但您需要让供应商客户提供 BigQuery 访问权限。 To add access the instructions are here.

  1. 就身份验证而言,您只需发送服务帐户 json 密钥或通过 SDK 进行身份验证,具体取决于您访问它的方式,但通常您会以某种方式发送 json 密钥或将 json 密钥位置指向 SDK .

  2. 有一个number of ways to query BigQuery,但它们都是通过一个“工作”来发送的。

【讨论】:

  • 感谢您的帮助!问题在于我的权限,我要求供应商提供给我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
相关资源
最近更新 更多