谷歌应用程序默认凭据存储在哪里?

5个回答

31

我找到了它们。它们在~/.config/gcloud/credentials中。我可以通过挂载它们docker run --rm -it -v ~/.config/gcloud:/root/.config/gcloud alpine:3.4 sh,将默认凭据传递给我正在使用的 Docker 镜像。


17

Windows:

C:\Users\%用户名%\AppData\Roaming\gcloud\credentials

C:\Users\%用户名%\AppData\Roaming\gcloud\legacy_credentials


1
这个应用程序(localhost)如何使用这个凭据文件与Google Cloud API通信? - Prabhat Yadav
2
这似乎在新版本中无法正常工作。该文件夹现在被命名为legacy_credentials。 - Benjamin McIntire
那么你如何将它们传递给Docker? - Jack Marchetti
1
@JackMarchetti 你需要将那个位置挂载到 Docker 容器中。 - RJFalconer
1
正确的路径只是 %AppData%\gcloud - rustyx

8
我会超越Peter V. Mørch的回答,并说这里没有一个答案是正确的,甚至可能从来都不正确!就像其他回答中提到的,gcloud和其他Google Cloud SDK工具(如bqgsutil)使用的凭证存储在~/.config/gcloud/credentials.db数据库中。然而,问题是关于应用程序默认凭证(ADC),而credentials.db中的凭证不作为ADC的一部分使用。
  • 要创建供ADC使用的凭证,请运行gcloud auth application-default login,它会在~/.config/gcloud/application_default_credentials.json路径下创建凭证文件
  • 要创建供Cloud SDK使用的凭证,请运行gcloud auth login(或gcloud auth activate-service-account),它会在credentials.db数据库中添加一个条目。

这些不同的凭证不必验证相同的用户;使用gcloud auth login登录不会启用ADC。

我写了一篇博客文章详细介绍了这个问题: GCP上的身份验证:应用程序默认凭证


6

目前被接受的回答不再正确。

如今,正如John Hanley在 https://superuser.com/a/1508016/111814 中所描述:

你的凭据存储在 ~/.config/gcloud

凭证存储在该目录下的两个文件中:access_tokens.db 和 credentials.db。这两个文件都是 SQLite 数据库。

要查看内容,例如:sqlite3 ~/.config/gcloud/credentials.db .dump


0

官方文档中提到:

Linux,macOS: $HOME/.config/gcloud/application_default_credentials.json

Windows: %APPDATA%\gcloud\application_default_credentials.json


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接