如何获得有效身份验证的gcloud帐户?

时间:2016-02-10 09:48:15

标签: authentication google-cloud-platform gcloud verbosity

使用gcloud auth ...,您可以添加或删除gcloud命令中使用的帐户。

有没有办法在没有grepawk的情况下获取有效帐户?

gcloud auth list对人类有益,但对机器不够好。我想要一个更清洁的解决方案。

gcloud config list account也向我展示了详细输出:

Your active configuration is: [default]

[core]
account = service@<my_project>.iam.gserviceaccount.com

5 个答案:

答案 0 :(得分:13)

我找到了解决方案:

gcloud config list account --format "value(core.account)"

这会告诉你:

Your active configuration is: [default]

service@<my_project>.iam.gserviceaccount.com

为了避免出现活动配置消息,您可以将stderr重定向到/dev/null

$ gcloud config list account --format "value(core.account)" 2> /dev/null
service@<my_project>.iam.gserviceaccount.com

如果--verbosity在这种情况下也可以删除info消息,那将会很好。那意味着:

$ gcloud config list account --format "value(core.account)" --verbosity error

如果这是一个合理的功能/错误请求/报告,那么任何Google员工都可以发表评论吗?

答案 1 :(得分:3)

这似乎也可行 gcloud config get-value account

答案 2 :(得分:1)

以下两个命令都将得到相同的结果:

$ gcloud config get-value account
$ gcloud config list --format 'value(core.account)'

但是,如果您希望将帐户设置为在外部激活,则可以使用the json key

#!/bin/bash
if [[ ! $(gcloud config get-value account &> /dev/null) ]]
then
    GCP_SA_KEY=<json credential key>
    GCP_ACCOUNT=service@<my_project>.iam.gserviceaccount.com 
    if [ -z $GOOGLE_APPLICATION_CREDENTIALS ]
    then
        echo $GCP_SA_KEY > google-app-creds.json
        export GOOGLE_APPLICATION_CREDENTIALS=$(realpath google-app-creds.json)
        gcloud auth activate-service-account $GCP_ACCOUNT --project=<my_project> \
        --key-file=$GOOGLE_APPLICATION_CREDENTIALS
    fi
fi

输出会像这样

$ bash /path/to/the/above/file
Activated service account credentials for: [service@<my_project>.iam.gserviceaccount.com] 

To take a quick anonymous survey, run: 
  $ gcloud alpha survey

$ gcloud config get-value account
service@<my_project>.iam.gserviceaccount.com

答案 3 :(得分:0)

gcloud命令通常用于人类消费,而不是机器。

你想做什么?一般来说,如果您需要以编程方式进行身份验证,则可以使用Application Default Credentials和(例如)GOOGLE_APPLICATION_CREDENTIALS环境变量,client libraries抓取身份验证信息。

答案 4 :(得分:0)

打开 gcloud 控制台然后运行下面的命令,它对我有用 gcloud 身份验证列表