Google Cloud Platform 服务帐户无法访问项目

bry*_*yan 15 google-cloud-platform gcloud google-cloud-iam

我遇到以下警告:

警告:您似乎无权访问项目 [$PROJECT] 或它不存在。

在本地运行以下命令后:

  1. 激活并设置服务帐户:

    gcloud auth activate-service-account \
    $SERVICE_ACCOUNT \
    --key-file=key.json
    
    #=>
    
    Activated service account credentials for: [$SERVICE_ACCOUNT]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 选择$PROJECT作为上面的服务帐号:

    gcloud config set project $PROJECT
    
    #=>
    
    Updated property [core/project].
    WARNING: You do not appear to have access to project [$PROJECT] or it does not exist.
    
    Run Code Online (Sandbox Code Playgroud)

我自己的 GCP 帐户与以下角色相关联:

  • 应用引擎管理员
  • 云构建编辑器
  • 云调度器管理员
  • 存储对象创建者
  • 存储对象查看器

为什么这个服务账户不能set $PROJECT?是否有我缺少的角色或权限?

小智 36

此问题的解决方案可能是Cloud Resource Manager在您的 Google Cloud Console 中启用api。转到https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=<project-id>并单击启用。


mtl*_*nch 12

我相信这是一个错误的警告信息。尽管该帐户对我的 GCP 项目具有权限并且可以成功执行必要的操作,但我在我的服务帐户上看到了相同的警告消息。

由于不相关的问题,您可能会看到此错误。就我而言,我试图从持续集成环境 (Circle CI) 部署到 AppEngine,但我没有启用App Engine Admin API。启用 API 后,我就能够成功部署。


Pro*_*ton 10

我在开始使用 Google CLoud Platform 时遇到了这个错误。

问题是我my-kube-project使用以下命令将一个不存在的项目 ( )配置/设置为我的默认项目:

gcloud config set project my-kube-project
Run Code Online (Sandbox Code Playgroud)

这是我解决的方法

我必须首先列出我现有的项目:

gcloud projects list
Run Code Online (Sandbox Code Playgroud)

然后我复制了我想要的项目的ID,这次再次运行命令:

gcloud config set project gold-magpie-258213
Run Code Online (Sandbox Code Playgroud)

它工作得很好。

注意:您不能更改项目的ID编号ID,您只能更改名称

就这样。

我希望这有帮助