Search code examples
authenticationgoogle-cloud-platformgcloudverbosity

How to get the active authenticated gcloud account?


Using gcloud auth ... you can add or remove accounts used during the gcloud commands.

Is there a way to get the active account without grep-ing and awk-ing?

gcloud auth list is good for humans but not good enough to a machine. I want a cleaner solution.

gcloud config list account also shows me to verbose output:

Your active configuration is: [default]

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

Solution

  • I found the solution:

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

    This would tell you:

    Your active configuration is: [default]
    
    service@<my_project>.iam.gserviceaccount.com
    

    To also avoid the active configuration message, you can redirect the stderr to /dev/null:

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

    It would be nice if --verbosity would also work in this case to remove the info message. That would mean:

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

    Any Googlers out there that can post a comment if this is a reasonable feature/bug request/report?