Accede a una base de datos con la autenticación de la base de datos de IAM

En esta página, se describe cómo los usuarios y las cuentas de servicio pueden acceder a las bases de datos de Cloud SQL mediante la autenticación de la base de datos de IAM de Cloud SQL. Para obtener más información sobre la integración de IAM de Cloud SQL, consulta Descripción general de la autenticación de la base de datos de IAM de Cloud SQL.

Antes de comenzar

Accede con la autenticación de la base de datos de IAM sin el proxy de autenticación de Cloud SQL

Con el SDK de Cloud, puedes solicitar de forma explícita un token de OAuth 2.0 con el permiso de la API de Cloud SQL Admin que se usa para acceder a la base de datos a través del cliente mysql. Cuando accedes como usuario con autenticación de la base de datos de IAM, debes usar tu dirección de correo electrónico y el token de acceso como contraseña.

Para este procedimiento, debes hacer lo siguiente:

Usa el SDK de Cloud para generar este token y acceder:

Usuario

  1. Autentica en IAM con credenciales predeterminadas de la aplicación mediante gcloud auth application-default login y especifica el permiso de la API de Cloud SQL para MySQL a fin de autorizarlo.

    Para obtener más información, consulta Autoriza con credenciales predeterminadas de la aplicación.

  2. Genera un token de acceso y accede con un cliente.

    Reemplaza lo siguiente:

    • HOSTNAME: la dirección IP de la instancia, o 127.0.0.1 si usas el proxy de Cloud SQL.
    • USERNAME: la dirección de correo electrónico del usuario sin @ ni el nombre de dominio. Por ejemplo, para test-user@gmail.com, ingresa test-user.
    MYSQL_PWD=$(gcloud auth application-default print-access-token) mysql \
        --enable-cleartext-plugin \
        --ssl-ca=server-ca.pem \
        --ssl-cert=client-cert.pem \
        --ssl-key=client-key.pem \
        --host=HOSTNAME \
        --user=USERNAME

Cuenta de servicio

  1. Autentica en IAM mediante gcloud auth activate-service-account Para la cuenta de servicio de una instancia de VM de GCE, usa gcloud compute instances set-service-account a fin de especificar el permiso de la API de Cloud SQL para MySQL para autorizarlo.

    Para obtener más información, consulta Autoriza el acceso con una cuenta de servicio.

  2. Genera un token de acceso y accede con un cliente.

    Reemplaza lo siguiente:

    • SERVICE_ACCOUNT: el correo electrónico de la cuenta de servicio.
    • HOSTNAME: la dirección IP de la instancia, o 127.0.0.1 si usas el proxy de Cloud SQL.
    • USERNAME: la dirección de correo electrónico de la cuenta de servicio sin el sufijo @project-id.iam.gserviceaccount.com.
    MYSQL_PWD=$(gcloud auth print-access-token SERVICE_ACCOUNT) mysql \
        --enable-cleartext-plugin \
        --ssl-ca=server-ca.pem \
        --ssl-cert=client-cert.pem \
        --ssl-key=client-key.pem \
        --host=HOSTNAME \
        --user=USERNAME

¿Qué sigue?