En esta página se describe cómo pueden iniciar sesión los usuarios y las cuentas de servicio en bases de datos de Cloud SQL mediante la autenticación de bases de datos de gestión de identidades y accesos de Cloud SQL. Para obtener más información, consulta Autenticación de gestión de identidades y accesos.
Antes de empezar
- Configura la instancia para que use la autenticación de bases de datos de gestión de identidades y accesos. Para obtener más información, consulta el artículo sobre cómo configurar instancias nuevas para la autenticación de bases de datos de gestión de identidades y accesos.
- Añade un usuario, una cuenta de servicio o un grupo de gestión de identidades y accesos a la base de datos. Para obtener más información, consulta los artículos Añadir un usuario o una cuenta de servicio de Gestión de Identidades y Accesos a la base de datos y Añadir un grupo a la base de datos.
- Añade el rol de gestión de identidades y accesos
roles/cloudsql.instanceUser
a tu usuario, cuenta de servicio o grupo de gestión de identidades y accesos. Es un rol predefinido que contiene el permiso de gestión de identidades y accesos de Cloud SQLcloudsql.instances.login
necesario. Necesitas este permiso para iniciar sesión en una instancia de base de datos con la autenticación de bases de datos de gestión de identidades y accesos. Para obtener más información, consulta Roles y permisos. - Si usas el proxy de autenticación de Cloud SQL, añade el rol de gestión de identidades y accesos
roles/cloudsql.client
a tu usuario, cuenta de servicio o grupo de gestión de identidades y accesos. Es un rol predefinido que contiene el permisocloudsql.instances.connect
de gestión de identidades y accesos de Cloud SQL necesario. Necesitas este permiso para iniciar sesión en una instancia de base de datos con el proxy de autenticación de Cloud SQL. Para obtener más información, consulta Roles y permisos. Cuando se añade un usuario de gestión de identidades y accesos a una base de datos, el nuevo usuario de la base de datos no tiene privilegios en ninguna base de datos de forma predeterminada. Debes usar el comando
GRANT
para dar al usuario de la base de datos de gestión de identidades y accesos los permisos necesarios. Para obtener más información, consulta Conceder privilegios de base de datos al usuario de IAM y Conceder privilegios de base de datos a un grupo.Si usas la autenticación de grupos de gestión de identidades y accesos, el usuario o la cuenta de servicio de gestión de identidades y accesos deben ser miembros de un grupo al que se le haya concedido un rol o permisos de gestión de identidades y accesos para iniciar sesión en la instancia de Cloud SQL. Cloud SQL crea una cuenta después de que el usuario o la cuenta de servicio inicie sesión en la instancia por primera vez.
Iniciar sesión con la autenticación automática de bases de datos de gestión de identidades y accesos
Puedes configurar un conector de Cloud SQL para que gestione automáticamente la autenticación en la instancia de Cloud SQL en nombre de un usuario o una aplicación. Entre los conectores se incluyen el proxy de autenticación de Cloud SQL, el conector Go, el conector Java y el conector Python, todos ellos compatibles con la autenticación automática de bases de datos de gestión de identidades y accesos. Cuando se usa un conector de Cloud SQL con la autenticación de bases de datos de gestión de identidades y accesos automática, la cuenta de gestión de identidades y accesos que se usa para iniciar el conector debe ser la misma que se usa para autenticar la base de datos.
Para iniciar sesión mediante la autenticación automática de bases de datos de gestión de identidades y accesos, sigue estos pasos:
Proxy de autenticación de Cloud SQL
.Autentícate en Google Cloud.
Usuario
Autentícate en Google Cloud mediante las credenciales de aplicación predeterminadas (ADC).
Usa el comando
gcloud auth application-default login
. Para obtener más información, consulta Configurar credenciales predeterminadas de la aplicación.Cuenta de servicio
Para autenticarte en Google Cloud mediante ADC con una cuenta de servicio, puedes usar la suplantación de identidad de la cuenta de servicio o configurar una clave de cuenta de servicio. Si quieres autenticarte con la suplantación de identidad de la cuenta de servicio, sustituye SERVICE_ACCOUNT_EMAIL_ADDRESS y ejecuta el siguiente comando:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS
Para obtener más información, consulta Configurar credenciales predeterminadas de la aplicación.
Inicia el proxy de autenticación de Cloud SQL con la marca
--auto-iam-authn
. Sustituye INSTANCE_CONNECTION_NAME por la cadena de conexión que se usa para identificar la instancia de Cloud SQL. Si usas un puerto distinto del puerto MySQL predeterminado, especifica el número de puerto. Para obtener más información sobre cómo encontrar y crear esta cadena, consulta Opciones para autenticar el proxy de autenticación de Cloud SQL../cloud-sql-proxy --auto-iam-authn INSTANCE_CONNECTION_NAME
Para obtener más información sobre cómo iniciar el proxy, consulta Iniciar el proxy de autenticación de Cloud SQL.
Cuando quieras conectarte a la instancia mediante el proxy de autenticación de Cloud SQL, inicia sesión con el cliente
mysql
. Haz los cambios siguientes:- HOSTNAME: dirección IP que usa el proxy de autenticación de Cloud SQL. De forma predeterminada, el proxy de autenticación de Cloud SQL usa la dirección localhost
127.0.0.1
, pero puedes asignar otra dirección IP al iniciar el proxy de autenticación de Cloud SQL. - USERNAME: en el caso de una cuenta de usuario de IAM, se trata de la dirección de correo del usuario, sin el símbolo
@
ni el nombre de dominio. Por ejemplo, paratest-user@example.com
, escribetest-user
. En el caso de las cuentas de servicio, es la dirección de correo de la cuenta de servicio sin el sufijo@project-id.iam.gserviceaccount.com
. - PORT_NUMBER: opcional. Si has especificado otro puerto en la cadena de conexión de la instancia, indica ese número de puerto.
Ejecuta el siguiente comando:
mysql --host=HOSTNAME \ --user=USERNAME \ --port=PORT_NUMBER
Para obtener más información sobre cómo conectarse al proxy de autenticación de Cloud SQL, consulta Conectarse con el cliente mysql.
- HOSTNAME: dirección IP que usa el proxy de autenticación de Cloud SQL. De forma predeterminada, el proxy de autenticación de Cloud SQL usa la dirección localhost
Go
Java JDBC
Java R2DBC
Python
Iniciar sesión con la autenticación de bases de datos de gestión de identidades y accesos manual
Un usuario o una aplicación pueden autenticarse en la base de datos mediante IAM solicitando manualmente un token de acceso a Google Cloud y presentándolo a la base de datos. Con la CLI de gcloud, puedes solicitar explícitamente un token de OAuth 2.0 con el permiso de la API Cloud SQL Admin que se usa para iniciar sesión en la base de datos. Cuando inicias sesión como usuario de la base de datos con la autenticación de bases de datos de gestión de identidades y accesos manual, usas tu dirección de correo electrónico como nombre de usuario y el token de acceso como contraseña. Puedes usar este método con una conexión directa a la base de datos o con un conector de Cloud SQL.
En este procedimiento, te autenticas en Google Cloud, solicitas un token de acceso y, a continuación, te conectas a la base de datos pasando el token como contraseña del usuario de la base de datos de gestión de identidades y accesos. Sigue estos pasos para conectarte sin el proxy de autenticación de Cloud SQL.
Para estos pasos, debes hacer lo siguiente:
- Usa la opción --enable-cleartext-plugin
mysql
. - Si te conectas a una instancia con una IP pública, autoriza el acceso externo a la instancia. Para obtener más información, consulta Autorizar la dirección IP de tu máquina para la IP pública.
- Si te conectas a una instancia con una IP privada, ejecuta el comando en la red de nube privada virtual (VPC).
- Usa el comando
gcloud sql generate-login-token
para generar tu token de autenticación.
Para iniciar sesión mediante la autenticación de bases de datos de gestión de identidades y accesos manual, sigue estos pasos:
gcloud
Autentícate en Google Cloud.
Usuario
Autentícate en IAM mediante
gcloud auth login
. Para obtener más información, consulta Autorizar con una cuenta de usuario.Cuenta de servicio
Autentícate en IAM mediante
gcloud auth activate-service-account
. Para obtener más información, consulta el artículo Autorizar con una cuenta de servicio.Solicita el token de acceso e inicia sesión con un cliente.
Haz los cambios siguientes:
- HOSTNAME: la dirección IP de la instancia, ya sea la dirección IP pública o la privada.
- USERNAME: en el caso de una cuenta de usuario de gestión de identidades y accesos, es la dirección de correo del usuario, sin el símbolo
@
ni el nombre de dominio. Por ejemplo, paratest-user@example.com
, escribetest-user
. En el caso de las cuentas de servicio, es la dirección de correo de la cuenta de servicio sin el sufijo@project-id.iam.gserviceaccount.com
.
MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=REQUIRED \ --host=HOSTNAME \ --user=USERNAME
Si
ssl_mode
en tu instancia de Cloud SQL está configurado comoTRUSTED_CLIENT_CERTIFICATE_REQUIRED
, incluye un certificado y una clave de cliente al iniciar sesión. Además, para que el cliente verifique la identidad del servidor en la autenticación mutua, especifica el certificado del servidorserver-ca.pem
. Por ejemplo:MYSQL_PWD=`gcloud sql generate-login-token` \ mysql --enable-cleartext-plugin \ --ssl-mode=VERIFY_CA \ --ssl-ca=server-ca.pem \ --ssl-cert=client-cert.pem \ --ssl-key=client-key.pem \ --host=HOSTNAME \ --user=USERNAME
Para obtener información sobre cómo crear un certificado y una clave de cliente, consulta la sección Certificados de cliente.
Siguientes pasos
- Más información sobre la autenticación de bases de datos de gestión de identidades y accesos
- Consulta cómo habilitar y ver la información de inicio de sesión en los registros de auditoría.
- Consulta cómo crear usuarios y cuentas de servicio que usen la autenticación de bases de datos de gestión de identidades y accesos de Cloud SQL.
- Consulta cómo añadir un enlace de política de gestión de identidades y accesos a un usuario o una cuenta de servicio.
- Consulta cómo gestionar usuarios y cuentas de servicio para la autenticación de bases de datos de gestión de identidades y accesos.