Google cloud platform 我可以自动“gcloud auth login”吗?

Google cloud platform 我可以自动“gcloud auth login”吗?,google-cloud-platform,gcloud,google-iam,Google Cloud Platform,Gcloud,Google Iam,我无法以非交互方式激活我的谷歌云服务帐户;即使在读了好几篇这样的文章之后 创建服务帐户 gcloud iam服务帐户创建我的卓越帐户… 为服务帐户创建角色 gcloud iam角色创建awesome角色\ --权限存储.objects.create,存储.objects.delete… 生成密钥 gcloud iam服务帐户密钥创建~/awesome-key.json… 激活服务帐户 gcloud auth activate service account my awesome acct~/aw

我无法以非交互方式激活我的谷歌云服务帐户;即使在读了好几篇这样的文章之后

  • 创建服务帐户
  • gcloud iam服务帐户创建我的卓越帐户…

  • 为服务帐户创建角色
  • gcloud iam角色创建awesome角色\
    --权限存储.objects.create,存储.objects.delete…

  • 生成密钥
  • gcloud iam服务帐户密钥创建~/awesome-key.json…

  • 激活服务帐户
  • gcloud auth activate service account my awesome acct~/awesome key.json

    我的问题

    即使完成了上述步骤,当我运行
    gsutil…
    命令时,仍然会收到错误消息:

    $ gsutil cp my_file.tgz gs://my_bucket
    
      Copying file://my_file.tgz [Content-Type=application/x-tar]...
      Your credentials are invalid. Please run
    
      $ gcloud auth login
    
    我能让它工作的唯一方法是实际运行
    gcloud auth login
    ,并允许在web浏览器中进行身份验证


    我做错什么了吗?或者这是针对每个服务帐户的吗?

    我将在这里回答我自己的问题

    我的解决方案

    我决定使用谷歌云客户端库,而不是使用
    gsutil

    我所做的:

    我现在做的是:

    事后诸葛亮20/20


    在上述解决方案运行之后,如果我也设置了环境变量,
    GOOGLE\u APPLICATION\u CREDENTIALS
    ,那么我的
    gsutil
    也应该运行了。(未经测试)

    您是如何安装gsutil的?作为GCloud安装的一部分还是作为独立安装?
    gsutil cp my_file.tgz gs://my_bucket
    
    from gcloud import storage
    
    # key file is located in my current directory
    os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', 'gcloud-auth.json')
    
    client = storage.Client()
    bucket = client.get_bucket("my_bucket")
    blob = bucket.blob("my_file.tgz")
    blob.upload_from_filename("my_file.tgz")