【发布时间】:2021-06-28 15:34:04
【问题描述】:
我们目前正在 CI 管道中运行一个进程,该 CI 管道将资源部署到 Google Cloud Platform (GCP),然后调用云函数。我们作为此部署的一部分运行的脚本之一是这样的:
gcloud --impersonate-service-account "$DEPLOYER_SA" functions call "$FUNCTION_NAME" --region "$REGION" --project "$PROJECT_ID" --data {}
但是它失败并出现错误:
警告:此命令正在使用服务帐户模拟。所有 API 调用都将作为 [deployer-dev@redacted-project-name.iam.gserviceaccount.com] 执行。
错误:(gcloud.functions.call)无法模拟 [deployer-dev@redacted-project-name.iam.gserviceaccount.com]。确保尝试模拟它的帐户有权访问服务帐户本身和“roles/iam.serviceAccountTokenCreator”角色。
换句话说,被模拟的服务帐户与运行脚本的服务帐户相同(我不会详细说明为什么会这样 - 有原因)。
我的问题是......我很惊讶服务帐户不能模拟自己。为什么它不能做到这一点?
【问题讨论】:
标签: google-cloud-platform service-accounts google-iam