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

Gab*_*vay 9 authentication verbosity google-cloud-platform gcloud

使用gcloud auth ...您可以添加或删除gcloud命令期间使用的帐户.

有没有办法在没有grep-ing和awk-ing的情况下获得活动帐户?

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

gcloud config list account 还告诉我详细输出:

Your active configuration is: [default]

[core]
account = service@<my_project>.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

Gab*_*vay 16

我找到了解决方案:

gcloud config list account --format "value(core.account)"
Run Code Online (Sandbox Code Playgroud)

这会告诉你:

Your active configuration is: [default]

service@<my_project>.iam.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)

要避免活动配置消息,可以将stderr重定向到/dev/null:

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

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

$ gcloud config list account --format "value(core.account)" --verbosity error
Run Code Online (Sandbox Code Playgroud)

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

  • 或者使用`gcloud auth list --filter = status:ACTIVE --format ="value(account)"`.https://cloud.google.com/sdk/gcloud/reference/auth/list (2认同)

Che*_*ana 8

下面的这两个命令都会给出相同的结果:

$ gcloud config get-value account
$ gcloud config list --format 'value(core.account)'
Run Code Online (Sandbox Code Playgroud)

但是,当您想将帐户设置为在外部激活时,可以使用json 键来完成:

#!/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
Run Code Online (Sandbox Code Playgroud)

输出将是这样的

$ 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
Run Code Online (Sandbox Code Playgroud)

  • 对于那些想要检查是否没有活动帐户的人,请注意这两个命令的输出之间存在细微差别:`gcloud config get-value account`将返回`(unset)`,而`gcloud config list -- format 'value(core.account)'` 将返回空输出。 (2认同)

acl*_*kay 6

这似乎也有效 gcloud config get-value account