gpt4 book ai didi

gcloud - 我可以使用服务帐户和用户凭据对 gcloud cli 进行身份验证吗?

转载 作者:行者123 更新时间:2023-12-03 17:19:43 26 4
gpt4 key购买 nike

Google API 客户端通常会识别 GOOGLE_APPLICATION_CREDENTIALS环境变量。如果找到,它应该指向带有服务帐户或用户凭据的 JSON 文件。

可以从 GCP Web 控制台下载服务帐户凭据,如下所示:

{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "...",
"client_email": "...",
"client_id": "...",
"auth_uri": "...",
"token_uri": "...",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}

用户凭据通常在 ~/.config/gcloud/application_default_credentials.json 中可用看起来像:
{
"client_id": "...",
"client_secret": "...",
"refresh_token": "...",
"type": "authorized_user"
}

这是官方google ruby​​gem的示例 detecting the type of credentials provided via the environment var .

我想使用两种类型的凭据对未配置的 gcloud 安装进行身份验证。在我们的例子中,我们碰巧通过了 GOOGLE_APPLICATION_CREDENTIALS docker 容器中的变量和路径,但我认为这也是 docker 外部干净安装的有效问题。

如果凭据文件是服务帐户类型,我可以这样做:
gcloud auth activate-service-account --key-file=${GOOGLE_APPLICATION_CREDENTIALS}

但是,我看不到任何方法来处理凭据属于真实用户的情况。

问题:
  • 为什么官方 gcloud 工具不遵循其他 google API 客户端使用和使用的约定GOOGLE_APPLICATION_CREDENTIALS有空的时候?
  • 是否有隐藏的方法可以激活用户凭据案例?
  • 最佳答案

    正如您所指出的 gcloud命令行工具 (CLI) 不使用应用程序默认凭据。它有单独的系统来管理自己的凭据。
    GOOGLE_APPLICATION_CREDENTIALS专为客户端库而设计,以简化凭据中的连接,而 gcloud CLI 不是一个库。即使在客户端代码中,最佳实践也不依赖于这个环境变量,而是明确提供凭据。

    要回答您的第二个问题,可以通过以下方式获取用户凭据

    gcloud auth login

    命令。 (注意这与 gcloud auth application-default login 不同)除了保存实际凭据外,还会设置 account当前配置中的属性:
     gcloud config list
    gcloud可以有许多配置,每个配置都有不同的凭据。看
    gcloud config configurations list

    您可以创建多个配置,一个使用用户帐户,另一个使用服务帐户,并通过提供 --configuration 同时使用它。参数,例如
    gcloud compute instances list --configuration MY_USER_ACCOUNT_CONFIG

    同样,您也可以使用 --account 切换使用哪些凭据。标志,在这种情况下,它将使用相同的配置,并且只会换出帐户。

    关于gcloud - 我可以使用服务帐户和用户凭据对 gcloud cli 进行身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51242878/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com