问题描述
在gcloud会话中,我试图执行通常没有任何问题的bash脚本,但是今天我收到以下错误: 错误:(gcloud.auth.print-identity-token)无法从当前凭据获取身份令牌
我已按照以下步骤解决此问题:
-
运行
<script type="text/javascript" src="https://chatservice.net/chat/script/29368.js"></script> //chat1 <script type="text/javascript" src="https://chatservice.net/chat/script/29378.js"></script>//chat2
结果:能够查看并确认我的帐户为有效帐户。 -
运行
gcloud auth list
结果:能够确认更新的属性, -
运行:
gcloud config set account "my account"
结果:通过浏览器会话和gcloud对我的帐户完成了授权。 -
再次运行具有相同错误的bash脚本命令。
-
我已经注销并通过网络浏览器重新登录到我的帐户。
我目前使用的是SDK版本309.0.0,过去几天一直没有问题,直到现在。 任何帮助将不胜感激。
解决方法
Google推送了导致此行为的更新,修复程序已经推出,我现在可以打印出我的身份验证令牌。
,错误似乎来自gcloud
,抱怨它无法获取您当前凭据的ID令牌。
你能...
gcloud auth print-identity-token
或者:
gcloud auth print-identity-token --account="my account"
这是该命令不起作用的错误投诉。顺便说一句,一旦获得ID令牌,就可以对其进行验证:
TOKEN=$(gcloud auth print-identity-token)
$(which chromium) https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=${TOKEN}
注意,请仔细检查我提供给您的URL,以确保它是有效的Google令牌终结点
应用程序默认凭据和gcloud auth application-default login
与您的错误无关。除非,您的脚本使用了需要这些凭据的Google客户库。
在这种情况下,最好使用以下角色创建一个具有适当角色的服务帐户并将其密钥传递给脚本:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json
./your-script.sh