首页 > 解决方案 > go sdk 使用的 Gcloud 身份验证帐户

问题描述

我可用的gcloud身份验证帐户:

▶ gcloud auth list                                                        
         Credentialed Accounts
ACTIVE  ACCOUNT
        account1@gmail.com
        account2@gmail.com
*       account3@gmail.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

执行时,gcloud projects list确实得到了与上面指示为 ACTIVE 的帐户相对应的项目列表(即带有星号的项目,account3@gmail.com

尽管如此,当我使用go google cloud sdk,更具体地说是cloudresourcemanager为了列出我的项目时,我得到了与account1@gmail.com.

为什么 Go SDK 不使用gcloud被认为是 ACTIVE 的帐户,我该如何指示它这样做?

奇怪的是,当我使用 Python SDK 开发一些工具时,行为很简单,所有 SDK 调用确实都在使用活动帐户,而我无需执行任何额外的配置步骤。

标签: gosdkgcloud

解决方案


默认情况下, Google 的 [Golang] Cloud SDK 使用应用程序默认凭据 (ADC)对 Google Cloud Platforms 服务进行身份验证。

我怀疑(!)在某些时候,你使用gcloud auth application-defaultaccount1@gmail.com,所以使用了这个帐户。

最佳做法是使用服务帐户而不是 ADC 的人工帐户,然后使用GOOGLE_APPLICATION_CREDENTIALS环境变量引用该帐户。

同时,您可以切换到account3@gmail.com使用上述命令来确认行为。


推荐阅读