google cloud platform - postgres - El proxy de Google Cloud SQL no pudo encontrar las credenciales predeterminadas
google cloud sql tutorial (3)
Si está en un entorno CI / CD sin acceso a un navegador:
O si simplemente desea automatizar el proceso.
En lugar de ejecutar el gcloud auth application-default login
, debe exponer la ubicación del archivo json de su cuenta de servicio utilizando la variable $GOOGLE_APPLICATION_CREDENTIALS
por ejemplo, echo "export GOOGLE_APPLICATION_CREDENTIALS=${TF_VAR_gcp_service_account_file_loc}" >> $BASH_ENV
(si necesita mover env vars entre pasos / trabajos). $BASH_ENV
es una propiedad especial expuesta por CircleCI, si utiliza una herramienta de CI / CD diferente, necesitará encontrar la ubicación del perfil de bash.
o simplemente export GOOGLE_APPLICATION_CREDENTIALS=[path-to-service-account-json-file]
para usar en el mismo paso
Estoy tratando de ejecutar el proxy de Google Cloud SQL localmente de esta manera:
$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306
Pero esta volviendo
google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.
Mi Google Cloud SDK ya está instalado y ha iniciado sesión en Google.
¿Cómo puedo solucionar esto?
Dos problemas pueden estar generando su problema.
Para encontrar qué es login, usando:
gcloud auth login
1. No tienes credenciales predeterminadas de la aplicación.
Si tienes una versión reciente de gcloud obtendrás:
WARNING: `gcloud auth login` no longer writes application default credentials.
Para hacer que su aplicación local use sus credenciales debe hacer ( ref ):
gcloud auth application-default login
Si no ve esta advertencia, considere actualizar gcloud con:
gcloud components update
2. No has definido tu proyecto.
Después de iniciar sesión, debería ver:
Your current project is [project-id].
Una vez más dos soluciones:
a. Asociar un proyecto
Si no estás viendo esto, haz ( ref ):
gcloud config set project PROJECT_ID
segundo. Usar el --project
global --project
en la llamada
En su comando asocie un proyecto:
./cloud_sql_proxy -instances=project-id:region-name:instance-id=tcp:3306 --project=project-id
Las credenciales predeterminadas de la aplicación Google se administran por separado de las credenciales de gcloud.
Utilizar
gcloud auth application-default login
en lugar de configurar sus credenciales de usuario como predeterminadas de la aplicación. Ver ref para más información.
Anteriormente, gcloud auth login
hizo esto, pero con versiones más recientes de Cloud SDK, este ya no es el caso.
Tenga en cuenta que cambiar la configuración de gcloud o configurar una cuenta no actualizará las credenciales predeterminadas de la aplicación. Solo los comandos en gcloud auth application-default
se pueden usar para administrarlos.
Además, para usar la cuenta de servicio como credencial predeterminada de la aplicación, puede usarla directamente descargando su clave json desde la consola del desarrollador.