尝试在 GCP 中创建从项目 A 到项目 B 的 BigQuery 数据集传输配置

Trying to Create a BigQuery Dataset Transfer config from Project A to Project B in GCP

我在项目 A 中有一个服务帐户 admin@proj1.iam.gserviceaccount.com 这是我整个组织的项目所有者,因此我们使用它来使用我们的自动化在不同项目中创建资源。

我正在尝试使用上述来自 Project A 的服务帐户在 Project B 中通过 Terraform 创建一个 Google Big query Data Transfer Config。 它给了我这个错误

Error creating Config: googleapi: Error 400: P4 service account needs iam.serviceAccounts.getAccessToken permission. Running the following command may resolve this error: gcloud iam service-accounts add-iam-policy-binding Admin@projectA.iam.gserviceaccount.com --member='serviceAccount:service-<Project_B_ID>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com' --role='roles/iam.serviceAccountTokenCreator'

我在将创建数据集的 ProjectB 中尝试了 运行ning 上面的内容,它给了我一个错误 admin@proj1.iam.gserviceaccount.com 不存在。 我还没有在 ProjectA 中尝试过它(不允许 运行 CLI cmd)加上一切都是通过 Terraform 管理的,有没有办法解决这个问题而不需要手动 运行 这个。

或任何其他形式来解决此问题?

仅供参考:这仅与资源创建有关,数据集及其传输将仅限于项目 B

您需要将用户 “admin@proj1.iam.gserviceaccount.com” 绑定到项目 B 并分配角色 “roles/iam.serviceAccountTokenCreator”。更多信息 here

您可以将此示例代码与终端一起使用

gcloud iam service-accounts add-iam-policy-binding Admin@projectA.iam.gserviceaccount.com --member='serviceAccount:service-<Project_B_ID>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com' --role='roles/iam.serviceAccountTokenCreator'

或者您可以使用 IAM 控制台并将此角色 roles/iam.serviceAccountTokenCreator 分配给用户 admin@proj1.iam.gserviceaccount.com