首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JSON激活gcloud auth -service-account设置当前项目

从JSON激活gcloud auth -service-account设置当前项目
EN

Stack Overflow用户
提问于 2018-12-20 12:03:04
回答 2查看 656关注 0票数 2

我创建了一个服务帐户,并得到了一个JSON格式的凭证文件,如下所示。

代码语言:javascript
复制
{
  "type": "service_account",
  "project_id": "myproject",
  "private_key_id": "db0cd27ba7d2acad610b854c04f0aa8ad67ad5fc",
  "private_key": "REDACTED",
  "client_email": "gitlab-ci@myproject.iam.gserviceaccount.com",
  "client_id": "558691835510594518717",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/gitlab-ci%40myproject.iam.gserviceaccount.com"
}

然后,我可以按如下方式激活此服务帐户

代码语言:javascript
复制
# gcloud auth activate-service-account --key-file myproject-5ddb0cd20b85.json
Activated service account credentials for: [gitlab-ci@myproject.iam.gserviceaccount.com]

由于JSON文件包含project_id,我希望在活动配置中设置它,但事实并非如此。

代码语言:javascript
复制
# gcloud config configurations list
NAME     IS_ACTIVE  ACCOUNT                                             PROJECT  DEFAULT_ZONE  DEFAULT_REGION
default  True       gitlab-ci@myproject.iam.gserviceaccount.com

当我激活服务帐户时,有什么方法可以从JSON文件中设置项目吗?

EN

回答 2

Stack Overflow用户

发布于 2018-12-28 21:34:45

服务帐户JSON文件中的project_id不应该自动设置为默认项目。

是否具有此功能取决于用例。一些应用程序接口调用是通过使用服务帐户中的project_id完成的,而另一些则使用当前设置的默认项目,因此不适合对此进行泛化。

作为一种变通方法,我制作了一个bash脚本来实现您想要的结果:

代码语言:javascript
复制
gcloud config set project $(cat 'key.json' | jq '.project_id' | sed -e 's/^"//' -e 's/"$//')
票数 1
EN

Stack Overflow用户

发布于 2018-12-20 16:57:04

由于JSON文件实际上用于身份验证,而project_id用于身份验证目的,因此它不会保留在活动配置中。

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

https://stackoverflow.com/questions/53862263

复制
相关文章

相似问题

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