在云运行上部署时,服务帐户的权限“iam.serviceaccounts.actAs”被拒绝

Lou*_*nge 2 deployment permissions user-accounts google-cloud-platform google-cloud-iam

当我尝试使用以下命令在云上部署我的 docker 映像时:

gcloud run deploy --image $MULTI_REGION/$PROJECT/$IMAGE --memory $MEMORY --region $REGION --env-vars-file .env.yaml

我收到错误消息:

Deploying container to Cloud Run service [image-name] in project [wagon-bootcamp-352706] region [europe-west1]
X Deploying new service...                                                                                                                                                                                 
  . Creating Revision...                                                                                                                                                                                   
  . Routing traffic...                                                                                                                                                                                     
  . Setting IAM Policy...                                                                                                                                                                                  
Deployment failed                                                                                                                                                                                          
ERROR: (gcloud.run.deploy) User [demange.louis@hotmail.fr] does not have permission to access namespaces instance [wagon-bootcamp-352706] (or it may not exist): Permission 'iam.serviceaccounts.actAs' denied on service account 942802053669-compute@developer.gserviceaccount.com (or it may not exist).
Run Code Online (Sandbox Code Playgroud)

要检查项目的权限,我使用gcloud projects get-iam-policy wagon-bootcamp-352706

bindings:
- members:
  - serviceAccount:service-942802053669@gcp-sa-artifactregistry.iam.gserviceaccount.com
  role: roles/artifactregistry.serviceAgent
- members:
  - serviceAccount:service-942802053669@containerregistry.iam.gserviceaccount.com
  role: roles/containerregistry.ServiceAgent
- members:
  - user:demange.louis@hotmail.fr
  role: roles/iam.serviceAccountUser
- members:
  - serviceAccount:service-942802053669@cloud-ml.google.com.iam.gserviceaccount.com
  role: roles/ml.serviceAgent
- members:
  - user:demange.louis@hotmail.fr
  role: roles/owner
- members:
  - serviceAccount:service-942802053669@gcp-sa-pubsub.iam.gserviceaccount.com
  role: roles/pubsub.serviceAgent
- members:
  - serviceAccount:service-942802053669@serverless-robot-prod.iam.gserviceaccount.com
  role: roles/run.serviceAgent
- members:
  - user:demange.louis@hotmail.fr
  role: roles/storage.admin
- members:
  - user:demange.louis@hotmail.fr
  role: roles/storage.objectAdmin
- members:
  - user:demange.louis@hotmail.fr
  role: roles/storage.objectCreator
Run Code Online (Sandbox Code Playgroud)

我还检查了项目“wagon-bootcamp-352706”是一个不错的项目。

我还检查了容器注册表,我的图像“image-name”已被很好地推送:image-name eu.gcr.io Private

结论是,权限应该是有效的,之前的推送没有问题,项目名称也没有问题。唯一不清楚的是错误消息中提到的“帐户 942802053669-compute@developer.gserviceaccount.com”,它不属于我,我不知道它是什么。有人知道这个问题吗?提前致谢。

此致,

路易斯·德芒热

Fer*_*ona 5

问题是服务帐户942802053669-compute@developer.gserviceaccount.com不存在,因为 Compute Engine API 尚未启用(可能)或者您已将其删除。

您有两个选择:

  1. 例如,通过转至 Compute Engine部分来启用 Compute Engine API 。
  2. 如果您删除了 Compute Engine 默认 SA,则可以恢复它(如果最多在 30 天前删除)或使用现有的与 Cloud Run 一起使用的另一个服务帐号。