“gcloud auth application-default login”和“gcloud auth login”之间的区别

Posted

技术标签:

【中文标题】“gcloud auth application-default login”和“gcloud auth login”之间的区别【英文标题】:Difference between "gcloud auth application-default login" and "gcloud auth login" 【发布时间】:2019-04-17 18:27:56 【问题描述】:

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

尽管有以下定义,但仍然很难区分它们。

gcloud auth 应用程序默认登录

acquire new user credentials to use for Application Default Credentials

gcloud auth 登录

authorize gcloud to access the Cloud Platform with Google user credentials

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

【问题讨论】:

【参考方案1】:

区别在于用例:

作为一名开发人员,我想通过 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 这将通过 Web 流获取您的凭据并将它们存储在“应用程序默认凭据的知名位置”。现在,您运行的任何代码/SDK 都将能够自动找到凭据。当您想要在本地测试通常在服务器上运行并使用服务器端凭据文件的代码时,这是一个很好的替代方案。

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

编辑(2019 年 9 月 19 日): 正如 Kent 在下面的评论中所言,“应用程序默认凭据的知名位置” 是一个名为 application_default_credentials.json 的文件,位于您的本地 ~/.config/gcloud/ 目录中。我在下面添加了一个附加链接,指向 Theodore SuiDaniel De Leo 的文章,其中更详细地介绍了不同的身份验证方法。

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

【讨论】:

从 gcloud 248.0.0 开始,application-default 的“众所周知”位置是 ~/.config/gcloud/application_default_credentials.json。 在 Windows 上的 Google Cloud SDK 319.0.0 上,它会将我的应用程序默认凭据放在 ~/AppData/Roaming/gcloud/application_default_credentials.json 中【参考方案2】:

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

所以, gcloud auth login -> 登录 gcloud SDK

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

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

gcloud auth login 要求您选择一个帐户以继续授予对“google cloud sdk”的访问权限。

gcloud auth application-default login 要求您改为授予对 google auth 库的访问权限。

【讨论】:

以上是关于“gcloud auth application-default login”和“gcloud auth login”之间的区别的主要内容,如果未能解决你的问题,请参考以下文章