gpt4 book ai didi

google-cloud-platform - 一些 gcloud 命令返回 UNAUTHENTICATED 错误

转载 作者:行者123 更新时间:2023-12-05 04:53:28 28 4
gpt4 key购买 nike

我正在开展一个托管在 Google Cloud Platform 上的项目,我正在努力适应他们的 gcloud cli。我真正不明白的一件事是它的身份验证方案。

例如,如果我运行 gcloud config configurations list ,我得到了我所有配置的列表:

PS C:\Users\username\dev\project-library> gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True username@domain.com project-dev-gcp
project-dev-local False project-dev-gcp

同样,如果我运行 gcloud auth list , 它显示了我通过身份验证的帐户:

PS C:\Users\username\dev\project-library> gcloud auth list
Credentialed Accounts
ACTIVE ACCOUNT
* username@domain.com

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

但如果我尝试运行 gcloud projects list ,我没有得到我的 GCP 项目列表。相反,我看到一个错误提示我未通过身份验证:

PS C:\Users\username\dev\project-library> gcloud projects list
ERROR: (gcloud.projects.list) UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

好的,如果我尝试使用 gcloud auth application-default login 进行身份验证怎么办? ?

PS C:\Users\username\dev\project-library> gcloud auth application-default login
Your browser has been opened to visit:

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=xxxx

Credentials saved to file: [C:\Users\username\AppData\Roaming\gcloud\application_default_credentials.json]

These credentials will be used by any library that requests Application Default Credentials (ADC).
ERROR: (gcloud.auth.application-default.login) UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

再次出现未经授权的错误,尽管我的浏览器打开了登录页面,我选择了我的 Google 帐户,然后在出现提示时授予了对 Google Auth Library 的访问权限。

奇怪的是我实际上一个访问 token :

PS C:\Users\username\dev\project-library> gcloud auth print-access-token
ya29.a0AfH6SMCGhGKSd39hJxfCBBNIDPGvpGjjskAKNDyH24C9TU0tG8P-FH_YL3OBJOZiqFXD4hKbVGCSNpfuwqOhB2p7uaBI_PtMuQO_Ip2fiMYHbHeLzyKKrnthFV4MqCNM_P80uQrTFy9LvvFm-kpcYFFFmh4Sam2Uoq3wsPW8m9febwFX2-4

最终,我想做的是获取 kubernetes 配置,以便我可以使用 kubectl 与集群交互, 但当然 gcloud container clusters get-credentials告诉我我没有通过身份验证:

PS C:\Users\username\dev\project-library> gcloud container clusters get-credentials project-dev --region us-east4 --project project-dev-gcp
Fetching cluster endpoint and auth data.
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=401, message=Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

那么是什么给了?为什么我似乎无法对 gcloud 做任何事情? ?是什么导致了 UNAUTHENTICATED 错误,我该如何解决?

我对aws非常熟悉cli 身份验证方案,但我很难理解 gcloud 的方式做事。即使 cli 不工作,我似乎有完整的控制台访问权限,而且我知道这些东西确实在某一时刻工作,因为我已经使用 k9s 访问了 kubernetes 集群日志。过去。

最佳答案

解决了问题。似乎我在 C:\Users\username\AppData\Roaming\gcloud\configurations\config_default[default] 配置文件包含一些导致问题的错误配置值:

[core]
account = username@domain.com
project = project-dev-gcp

[compute]

[auth]
disable_credentials = true

[spanner]
instance = project-local

[api_endpoint_overrides]
spanner = http://localhost:9020/

OP 中未经身份验证的问题是由 disable_credentials = true 引起的,如果我尝试与通过 CLI 的 Google Cloud Spanner。

现在,这个配置文件在某些​​情况下确实有意义。我们为本地测试保留了另一个 gcloud 配置,在这种情况下,我们实际上确实想在运行在 docker 容器中的模拟器上禁用对 Cloud Spanner 的身份验证和指向调用。显然,在用于与真实 GCP 通信的 [default] 配置文件中不应该出现这种情况。

解决方案是从该文件中删除有问题的配置,使其看起来像:

[core]
account = username@domain.com
project = project-dev-gcp

关于google-cloud-platform - 一些 gcloud 命令返回 UNAUTHENTICATED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66054205/

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