首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何基于本地gcloud的CLI认证对gcloud进行curl认证?

如何基于本地gcloud的CLI认证对gcloud进行curl认证?
EN

Stack Overflow用户
提问于 2020-01-16 06:43:15
回答 1查看 7.6K关注 0票数 6

我的脚本使用一系列gcloud命令,当然,gcloud是经过身份验证的。我需要使用curl来访问GCP,这些API对于gcloud来说是不可用的。我可以通过在云控制台中生成一个JSON凭据文件来做到这一点,但我不希望将其作为单独的手动步骤来完成。

编辑:答案是将curl命令中的gcloud auth字符串替换为gcloud auth print-access-token。见下面的回答。

我现在就是这样做的,使用从控制台下载的JSON文件。

代码语言:javascript
运行
复制
    GOOGLE_APPLICATION_CREDENTIALS=credentials.json
    curl -X POST -H "Authorization: Bearer \"$(gcloud auth application-default print-access-token)\"" \
              -H "Content-Type: application/json; charset=utf-8" \
                 https://cloudresourcemanager.googleapis.com/v1/projects/<MY_PROJECT>:getAncestry

如果没有下载的JSON,我可以得到以下内容:

代码语言:javascript
运行
复制
 ERROR: (gcloud.auth.application-default.print-access-token)
 The Application Default Credentials are not available. They are available if running in Google Compute Engine.
 Otherwise, the environment variable  GOOGLE_APPLICATION_CREDENTIALS must be defined pointing
 to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials 
 for more information.
    { "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials.
Expected OAuth 2 access token, login cookie or other valid authentication credential.
 See https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED"
      }
    }

如何利用我的gcloud身份验证来使用curl?如果我可以自动生成JSON作为这个脚本的一部分,我不介意使用它。例如,是否有一种方法可以调用gcloud来生成这个JSON,然后我将其设置为GOOGLE_APPLICATION_CREDENTIALS

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-16 08:57:14

一旦对Cloud进行了身份验证,就可以使用gcloud auth打印访问令牌命令为当前活动帐户获取访问令牌,而无需指定JSON凭据文件的路径。

如果希望激活Cloud实例的服务帐户,仍然需要credentials.json文件。不过,我很肯定你只需要这样做一次。

编辑:

我注意到你在使用gcloud auth application-default print-access-token

请记住,与gcloud auth print-access-token命令相反,它使用当前的应用程序默认凭据(ADC),必须通过使用GOOGLE_APPLICATION_CREDENTIALS env变量指定credentials.json文件路径或使用gcloud auth应用程序-默认登录命令来设置该证书。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59764257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档