I am in the process of attempting to adjust user permissions in Google Cloud and have created a service account that other users can impersonate to access various projects. The gcloud
command has the --impersonate-service-account
option to make API calls with the proper authentication, but I was wondering if anyone knows how to make such calls using gsutil
.
Here's an example of what a successful call looks like using gcloud
:
gcloud --impersonate-service-account=superuser@PROJECT1.iam.gserviceaccount.com iam service-accounts list --project PROJECT2
For example, if a principal has the Service Account User role on a service account, and the service account has the Cloud SQL Admin role ( roles/cloudsql. admin ) on the project, then the principal can impersonate the service account to create a Cloud SQL instance.
You can create a service account key using the console, the gcloud CLI, the serviceAccounts. keys. create() method, or one of the client libraries. A service account can have up to 10 keys.
Once you have a service account and the Service Account Token Creator role, you can impersonate service accounts in Terraform in two ways: set an environment variable to the service account's email or add an extra provider block in your Terraform code.
Yes, here's the option:
$ gsutil -i [SERVICE-ACCOUNT]@[PROJECT] [GSUTIL-COMMAND]
Example:
$ gsutil -i [email protected] ls
There is no such option in the top-level gsutil command-line options (at least not a documented one).
By contrast the gcloud --impersonate-service-account is documented.
Things to try:
gsutil
distributed with the gcloud SDK - it has some ability to use the credentials established by gcloud auth
, see Configuring/Using Credentials Via Cloud Sdk Distribution Of Gsutil
gsutil config
command, which should allow specifying a service account credentials (see also Updating To The Latest Configuration File):-e Prompt for service account credentials. This option requires that -a is not set.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With