¿Cuál es la forma más sencilla de usar la gcloud
línea de comandos de forma no interactiva con una cuenta de servicio fuera de GCE? Preferiblemente sin ensuciar el sistema de archivos con archivos de credenciales, que es lo que gcloud auth activate-service-account --key-file=...
hace.
Hay muchos casos de uso para usar gcloud
con una cuenta de servicio. Por ejemplo, en un servidor, me gustaría probar que GOOGLE_APPLICATION_CREDENTIALS
está configurado correctamente y tiene los permisos necesarios antes de ejecutar mi aplicación. O, me gustaría ejecutar algunos scripts de configuración o scripts cron que realicen alguna comprobación con la gcloud
línea de comando.
Las bibliotecas de Google Cloud (por ejemplo , python , java ) usan automáticamente la variable de entorno GOOGLE_APPLICATION_CREDENTIALS
para autenticarse en Google Cloud. Pero desafortunadamente, esta línea de comando parece no tener efecto gcloud
. ¿Cuál es una forma limpia de usar gcloud
dejando el sistema de archivos intacto?
$ GOOGLE_APPLICATION_CREDENTIALS=/etc/my-service-account-4b4b6e63aaed.json gcloud alpha pubsub topics publish testtopic hello
ERROR: (gcloud.alpha.pubsub.topics.publish) You do not currently have an active account selected.
Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a
different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account to use.