“ gcloud auth应用程序默认登录”和“ gcloud auth登录”之间的区别

Mar*_* An 4 google-cloud-platform gcloud

gcloud auth application-default loginvs和有gcloud auth login什么区别?

尽管有以下定义,仍然很难区分它们。 gcloud auth application-default login - acquire new user credentials to use for Application Default Credentials gcloud auth login - authorize gcloud to access the Cloud Platform with Google user credentials

我什么时候应该使用另一个?

Him*_*mal 18

不同之处在于用例:

作为开发人员,我想通过gcloud与GCP进行交互。
gcloud auth login
这将获取您的凭据并将其存储在中~/.config/gcloud/。现在,您可以gcloud从终端运行命令,它将自动找到您的凭据。在这种情况下,任何代码/ SDK都不会自动获取您的信任。

参考:https : //cloud.google.com/sdk/gcloud/reference/auth/login

作为开发人员,我希望我的代码通过SDK与GCP交互。
gcloud auth application-default login
这将通过网络流获取您的凭据并将其存储在“应用程序默认凭据的众所周知位置”中。现在,您运行的所有代码/ SDK都将能够自动找到凭据。当您要本地测试通常在服务器上运行并使用服务器端凭据文件的代码时,这是一个很好的替代方法。

参考:https : //cloud.google.com/sdk/gcloud/reference/auth/application-default/login

编辑(09/19/2019):
正如Kent在下面的评论中所做的那样,“应用程序默认凭据的众所周知位置”是一个application_default_credentials.json位于您本地~/.config/cloud/目录中的文件。我在下面添加了一个附加链接,以链接到Theodore SuiDaniel De Leo的文章,其中更详细地介绍了差异身份验证方法。

文章:https//medium.com/google-cloud/local-remote-authentication-with-google-cloud-platform-afe3aa017b95

  • 如果您想同时登录两者,可以使用 `gcloud auth login --update-adc` (4认同)
  • 从gcloud 248.0.0开始,应用程序默认的“知名”位置为〜/ .config / gcloud / application_default_credentials.json。 (3认同)
  • 在 Windows 上的 Google Cloud SDK 319.0.0 上,它将我的应用程序默认凭据放在 ~/AppData/Roaming/gcloud/application_default_credentials.json 中 (2认同)
  • 您可以指定“gcloud auth login --update-adc”同时执行这两项操作,这很好! (2认同)

小智 9

我将此添加为答案,因为我没有评论的声誉。我认为@Himal 的回答是正确的,但我想澄清一下,当它说代码/SDK 时,我们应该考虑代码或语言(Java/Ruby/Python)SDK 与 gcloud SDK(也称为云 SDK)。这让我有点困惑,因为我也有同样的疑问

因此,gcloud auth login -> Login to gcloud SDK

gcloud auth application-default login -> 登录到计算机上运行的任何代码(应用程序中的语言 SDK)

在打开的浏览器窗口中的 OAuth 身份验证屏幕中还有一个赠品:

gcloud auth login 要求您选择一个帐户以继续访问“google cloud sdk”。

gcloud auth application-default login 要求您改为访问 google auth 库。