如何获取经过身份验证的活动 gcloud 帐户?
How to get the active authenticated gcloud account?
使用 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
我找到了解决方案:
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 员工都可以 post 如果这是一个合理的评论 feature/bug request/report?
gcloud 命令通常是供人类使用的,而不是机器。
你想做什么?一般来说,如果您需要以编程方式进行身份验证,您将使用 Application Default Credentials and (for example) the GOOGLE_APPLICATION_CREDENTIALS
environment variable, which the client libraries 从中获取身份验证信息。
这似乎也有效
gcloud config get-value account
下面这两个命令将给出相同的结果:
$ 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
打开 gcloud 控制台然后 运行 下面这个命令,它对我有用
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
我找到了解决方案:
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 员工都可以 post 如果这是一个合理的评论 feature/bug request/report?
gcloud 命令通常是供人类使用的,而不是机器。
你想做什么?一般来说,如果您需要以编程方式进行身份验证,您将使用 Application Default Credentials and (for example) the GOOGLE_APPLICATION_CREDENTIALS
environment variable, which the client libraries 从中获取身份验证信息。
这似乎也有效
gcloud config get-value account
下面这两个命令将给出相同的结果:
$ 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
打开 gcloud 控制台然后 运行 下面这个命令,它对我有用 gcloud 授权列表