Acerca del proxy de autenticación SQL en la nube

MySQL | PostgreSQL / SQL Server

Esta página proporciona una introducción básica al proxy de autenticación SQL en la nube y describe las opciones de proxy.

Para obtener instrucciones paso a paso sobre el uso del proxy de autenticación SQL en la nube, siga el enlace para su entorno:

  • Inicio rápido para usar el proxy de autenticación SQL en la nube
  • Cómo conectarse mediante el proxy de autenticación SQL en la nube
  • Cómo conectarse mediante el proxy de autenticación SQL en la nube desde GKE

No necesita usar el proxy de autenticación SQL en la nube ni configurar SSL para conectarse a SQL en la Nube desde Entorno flexible del motor de aplicaciones.

Pruébelo usted mismo

Si es nuevo en Google Cloud, cree una cuenta para evaluar el rendimiento de Cloud SQL en escenarios del mundo real. Los nuevos clientes también obtienen credits 300 en créditos gratuitos para ejecutar, probar e implementar cargas de trabajo.

Pruebe Cloud SQL free

Lo que proporciona el proxy de autenticación SQL en la nube

El proxy de autenticación SQL en la nube proporciona acceso seguro a sus instancias sin necesidad de redes autorizadas o para configurar SSL.

El acceso a su instancia SQL en la nube mediante el proxy de autenticación SQL en la nube ofrece las siguientes ventajas:

  • Conexiones seguras: El proxy de autenticación SQL en la nube encripta automáticamente el tráfico hacia y desde la base de datos mediante TLS 1.2 con un cifrado AES de 128 bits; Los certificados SSL se utilizan para verificar las identidades de cliente y servidor.
  • Gestión de conexiones más sencilla: El proxy de autenticación SQL en la nube gestiona la autenticación con SQL en nube, lo que elimina la necesidad de proporcionar direcciones IP estáticas.

El proxy de autenticación SQL en la nube no proporciona una nueva ruta de conectividad; se basa en la conectividad IP existente. Para conectarse a una instancia SQL en la nube utilizando IP privada, el proxy de autenticación SQL en la nube debe estar en un recurso con acceso a la misma red VPC que la instancia.

Cómo funciona el proxy de autenticación SQL en la nube

El proxy de autenticación SQL en la nube funciona al tener un cliente local ejecutándose en el entorno local. Su aplicación se comunica con el proxy SQL Auth en la nube con el protocolo de base de datos estándar utilizado por su base de datos. El proxy de autenticación SQL en la nube utiliza un túnel seguro para comunicarse con su proceso complementario que se ejecuta en el servidor.

Aunque el proxy puede escuchar en cualquier puerto, solo crea conexiones salientes a nuestra instancia SQL en la nube en el puerto 3307. Si tiene una política de cortafuegos saliente, asegúrese de que permite conexiones al puerto 3307 en la IP de su Cloud sqlInstance.

El siguiente diagrama muestra cómo el proxy de autenticación SQL en la nube se conecta a SQL en la nube:

Diagrama del proxy de autenticación SQL en la nube que se conecta desde el software cliente a la instancia SQL

Requisitos para usar el proxy de autenticación SQL en la nube

Para usar el proxy de autenticación SQL en la nube, debe cumplir los siguientes requisitos:

  • La API de administración de SQL en la nube debe estar habilitada.
  • Debe proporcionar el proxy de autenticación SQL en la nube con credenciales de autenticación en la nube de Google.
  • Debe proporcionar al proxy de autenticación SQL en la nube una cuenta de usuario y una contraseña de base de datos válidas.
  • La instancia debe tener una dirección IPv4 pública o configurarse para usar IP privada.

    La dirección IP pública no necesita ser accesible a ninguna dirección externa (no es necesario agregarla como dirección de red autorizada).

Opciones de inicio del proxy de autenticación SQL en la nube

Al iniciar el proxy de autenticación SQL en la nube, le proporciona la siguiente información:

  • Qué instancias de SQL en la nube para establecer conexiones a
  • , Donde escuchará los datos procedentes de su aplicación que se enviarán a Cloud SQL
  • , Donde encontrará las credenciales que usará para autenticar su aplicación a Cloud SQL
  • , Si es necesario, qué tipo de dirección IP usar.

Las opciones de inicio de proxy de autenticación SQL en la nube que proporcione determinan si se escuchará en un TCPport o en un socket Unix. Si está escuchando en un socket Unix, crea el bloque en la ubicación que elija; normalmente, el directorio /cloudsql/.Para TCP, el proxy de autenticación SQL en la nube escucha en localhost de forma predeterminada.

Ejecute el ejecutable cloud_sql_proxy con el argumento --help para ver la lista completa de opciones de inicio.

Puede instalar el proxy de autenticación SQL en la nube en cualquier lugar de su entorno local. La ubicación de los binarios de proxy de autenticación SQL en la nube no afecta el lugar donde escucha los datos de su aplicación.

Uso de una cuenta de servicio para autenticación

El proxy de autenticación SQL en la nube requiere autenticación. La ventaja de usar una cuenta de servicio para este propósito es que puede crear un archivo de credenciales específicamente para el proxy de autenticación SQL en Nube, y está vinculado de forma explícita y permanente al proxy de autenticación SQL en la nube siempre que esté funcionando. Por esta razón, el uso de una cuenta de servicio es el método recomendado para las instancias de productioninstances que no se ejecutan en una instancia de Compute Engine.

El archivo de credenciales se puede duplicar en una imagen de sistema si necesita invocar el proxy de autenticación SQL en la nube desde varias máquinas.

Para usar este método, debe crear y administrar el archivo de credenciales. Solo los usuarios con el permiso resourcemanager.projects.setIamPolicy (como los propietarios de proyectos) pueden crear la cuenta de servicio. Si su usuario de Google Cloud no tiene este permiso, debe hacer que alguien cree la cuenta de servicio por usted o usar otro método para autenticar el proxy de autenticación SQL en la nube.

Para obtener ayuda con la creación de un archivo de credenciales, consulte Creación de una cuenta de servicio.

Permisos necesarios para cuentas de servicio

Cuando utilice una cuenta de servicio para proporcionar las credenciales para el proxy de autenticación SQL en la nube, debe crearla con permisos suficientes. Si utiliza los roles de Acceso y Administración de identidad (IAM) de mayor precisión para administrar los permisos SQL de CLOUD, debe asignar a la cuenta de servicio un rol que incluya el permiso cloudsql.instances.connect. Los roles SQL predefinidos de CLOUD que incluyen este permiso son:

  • Cliente SQL en la nube
  • Editor SQL en la nube
  • Administrador SQL en la nube

Si utiliza los roles de proyecto heredados (Visor, Editor, Propietario), la cuenta de servicio debe tener al menos el rol de editor.

Opciones para especificar instancias SQL en la nube

Hay varias formas de indicar al proxy de autenticación SQL en la nube a qué instancias desea conectarse. Algunas son explícitas y otras implícitas. En algunas configuraciones, no es necesario indicar con antelación al proxy de autenticación SQL en la nube a qué instancias desea conectarse, ya que el proxy de autenticación SQL en la nube se conecta en función de las solicitudes de conexión.

Sus opciones, por ejemplo, la especificación, dependen de su sistema operativo y entorno:

Opción Beneficios Advertencias y requisitos Linux/macOS
(sockets Unix)
Java Windows Notas
FUSE
(Sistema de archivos en el Espacio de usuario)
Creación dinámica de sockets basada en solicitudes de conexión; no es necesario reiniciar el proxy a medida que cambian las instancias. Se debe instalar un FUSIBLE. Compatible No No Uso -fuse bandera.
Detección automática de instancias Sin necesidad de especificar instancias; sockets creados para todas las instancias del proyecto predeterminado. Aumenta el uso de la API de proxy de autenticación SQL en la nube. Debe tener instalado y autenticado Cloud SDK, con un conjunto de proyectos predeterminado. Debe reiniciar el proxy de autenticación SQL en la nube para agregar una nueva instancia. Compatible No No No se recomienda para las instancias de producción.
Detección de proyectos No es necesario especificar instancias; sockets creados para todas las instancias en proyectos especificados. Aumenta el uso de la API de proxy de autenticación SQL en la nube. Debe tener instalado y autenticado Cloud SDK. Debe reiniciar el proxy de autenticación SQL en la nube para agregar una nueva instancia. Compatible No No Uso -projects parámetro. No se recomienda para instancias de producción.
Instancias especificadas en invocación de proxy de autenticación SQL en la nube Lista de instancias conocidas y estáticas. Debe reiniciar el proxy de autenticación SQL en la nube para agregar una nueva instancia. Compatible Compatible con sockets TCP Compatible con sockets TCP Uso -instances parámetro. Para varias instancias, utilice una lista separada por comas, sin espacios. Más información.
Las instancias especificadas mediante metadatos de motor de cómputo Lista de instancias se pueden actualizar cambiando el valor de metadatos sin reiniciar el proxy de autenticación SQL en la nube. Disponible solo en Compute Engine. Compatible Compatible con sockets TCP Compatible con sockets TCP Uso -instances_metadata bandera. Más información.

Consulte invocaciones de ejemplo y cadenas de conexión.

Mantener actualizado el proxy de autenticación SQL en la nube

Google lanza ocasionalmente nuevas versiones del proxy de autenticación SQL en la nube. Puede ver cuál es la versión actual consultando la página de versiones de GitHub de proxy de autenticación SQL en nube.Las futuras versiones de proxy también se anotarán en el foro de anuncios SQL en la nube de Google Groups.

Uso de la API

El proxy de autenticación SQL en la nube emite solicitudes a la API de administración SQL en la nube. Estas solicitudes cuentan contra la cuota de API de su proyecto.

El mayor uso de API se produce al iniciar el proxy de autenticación SQL en la nube; esto es especialmente cierto si utiliza la detección automática de instancias o el parámetro -projects. Mientras se ejecuta el proxy de autenticación SQL de NUBE, emite 2 llamadas a la API por hora por instancia conectada.

Acerca de la creación de una cuenta de usuario especial para el proxy de autenticación SQL en la nube

Cuando se conecta a la instancia mediante el proxy de autenticación SQL en la nube, proporciona una cuenta de usuario que se utiliza para iniciar sesión en la instancia. Para ello, puede utilizar cualquier cuenta de usuario de la base de datos. Sin embargo, dado que el proxy de autenticación SQL en la nube siempre se conecta desde un nombre de host al que no se puede acceder excepto por el proxy de autenticación SQL en la nube, puede crear una cuenta de usuario que solo puede usar el proxy de autenticación SQL en la nube. La ventaja de hacer esto es que puede especificar esta cuenta sin una contraseña sin comprometer la seguridad de su instancia o sus datos.

Para crear una cuenta de usuario para conexiones proxy de autenticación SQL en la nube, especifique el nombre de host como'cloudsqlproxy~'. También puede usar la tarjeta IP addresswild, que resultaría en 'cloudsqlproxy~%'. El nombre completo de la cuenta de usuario:

''@'cloudsqlproxy~%'

o

''@'cloudsqlproxy~'

Para obtener ayuda con la creación de un usuario, consulte Creación y administración de usuarios.Para obtener información sobre cómo funciona Cloud SQL con cuentas de usuario,consulte Usuarios. Para obtener información sobre las cuentas de usuario de MySQL, consulte Registro de las Cuentas MySQL Iniciales en la Documentación de MySQL.

Parámetros y banderas del proxy de autenticación SQL en la nube

El proxy de autenticación SQL en la nube acepta varias banderas y parámetros cuando se inicia. Estas opciones determinan dónde y cómo el proxy de autenticación SQL en la nube crea los sockets que utiliza para comunicarse con SQL en la nube, y cómo se autentica.

Para obtener ayuda con las opciones de proxy de autenticación SQL en la nube, consulte la siguiente información:

  • Opciones para autenticar el proxy de autenticación SQL en la nube
  • Opciones para especificar instancias SQL en la nube
  • Ejemplo invocaciones de proxy de autenticación SQL en la nube
  • Página de GitHub del proxy de autenticación SQL en la nube
  • La ayuda del proxy de autenticación SQL en la nube, que se muestra con ./cloud_sql_proxy -help

Cómo se utiliza FUSE con Cloud SQL Auth proxy

FUSE significa «Sistema de archivos en el espacio de usuario».Dependiendo de cómo se invoque el proxy de autenticación SQL en la nube, puede utilizar opcionalmente FUSE para crear los sockets que utiliza para conectarse con SQL en la nube.

Al conectarse desde el motor de cómputo o entornos de desarrollo local, el proxy de autenticación SQL de CLOUD utiliza FUSE para acceder a instancias SQL en la nube de la siguiente manera:

  • El directorio» / cloudsql » está montado como un Sistema de archivos en el Espacio de usuario, orFUSE, por el proxy de autenticación SQL en la Nube.

  • Un proceso (por ejemplo, mysql) intenta buscar un archivo llamado INSTANCE INSTANCE.

  • El proxy de autenticación SQL en la nube intercepta la solicitud y devuelve que /cloudsql/$INSTANCE es un enlace simbólico que apunta a un socket Unix ubicado en otro lugar del sistema de archivos.

  • El proceso (por ejemplo, mysql) sigue el enlace y abre el zócalo Unix al que conduce y se conecta.

Instalación de FUSE

Para Linux:

FUSE requiere el programa fusermount y un módulo de núcleo para funcionar. Puede comprobar si este programa está instalado buscando el archivo, /dev/fuse/. Si fusermount no está en su sistema, puede instalarlo usando su administrador de paquetes o compilándolo desde el código fuente.

Para macOS:

Instale FUSE para macOS.

Uso del proxy de autenticación SQL en la nube en un entorno de producción

Cuando utiliza el proxy de autenticación SQL en la nube en un entorno de producción, puede realizar algunos pasos para asegurarse de que el proxy de autenticación SQL en la nube proporcione la disponibilidad requerida para su aplicación.

Asegúrese de que el proxy de autenticación SQL en la nube se ejecute como un servicio persistente

Si el proceso de proxy de autenticación SQL en la nube se detiene, se interrumpen todas las conexiones existentes a través de él y su aplicación no puede crear más conexiones a la instancia SQL en la nube con el proxy de autenticación SQL en la nube. Para evitar este escenario, asegúrese de ejecutar el proxy de autenticación SQL en la nube como un servicio persistente, de modo que si el proxy de autenticación SQL en la nube sale de anyreason, se reinicie automáticamente. Esto se puede lograr utilizando un servicio como systemd, upstart o supervisor. Para el sistema operativo de Windows, ejecute el proxy de autenticación SQL en la nube como un servicio de Windows. En general, asegúrese de que el proxy de autenticación SQL en la nube tenga los mismos requisitos de tiempo de actividad que el proceso de aplicación.

Cuántas copias del proxy de autenticación SQL en la nube necesita su aplicación

No es necesario crear un proceso de proxy para cada proceso de aplicación; muchos procesos de aplicación pueden compartir un único proceso de proxy de autenticación SQL en la nube. Ejecute un proceso de cliente de proxy de autenticación SQL en la nube por estación de trabajo o máquina virtual.

Si utiliza el escalado automático para máquinas virtuales, asegúrese de que el proxy de autenticación SQL en la nube esté incluido en la configuración de su máquina virtual, de modo que, cada vez que se inicie una nueva máquina virtual, tenga su propio proceso de proxy de autenticación SQL en la nube.

Depende de usted administrar cuántas conexiones necesita su aplicación,ya sea limitando o agrupando las conexiones. El proxy de autenticación SQL en la nube no establece limitaciones en las nuevas velocidades de conexión ni en el recuento de conexiones persistentes.

Reducir la salida de proxy de autenticación SQL en la nube

Si necesita reducir el tamaño del registro de proxy de autenticación SQL en la nube, puede hacerlo configurando-verbose=false cuando inicie el proxy de autenticación SQL en la nube. Sin embargo, tenga en cuenta que hacerlo reduce la eficacia de la salida de proxy de autenticación SQL en la nube para diagnosticar problemas de conexión.

Cómo afecta la conmutación por error al proxy de autenticación SQL en la nube

Si ejecuta el proxy de autenticación SQL en la nube en una instancia configurada para Alta disponibilidad y se produce una conmutación por error,las conexiones a través del proxy de autenticación SQL en la nube se ven afectadas de la misma manera que las conexiones a través de IP: se pierden todas las conexiones existentes y la aplicación debe establecer nuevas conexiones. Sin embargo, no se requiere intervención manual; la aplicación puede continuar utilizando las mismas cadenas de conexión que antes.

Mantener actualizada la imagen de la ventana acoplable del proxy de autenticación SQL en la nube

La imagen de la ventana acoplable del proxy de autenticación SQL en la nube se basa en una versión específica del proxy de autenticación SQL en la nube.Cuando esté disponible una nueva versión del proxy de autenticación SQL en la nube, extraiga la nueva versión de la imagen acoplable del proxy de autenticación SQL en la nube para mantener actualizado el entorno. Para ver la versión actual del proxy de autenticación SQL en la nube, consulte la página Versiones de GitHub del proxy de autenticación SQL en nube.

  • Obtenga más información sobre el proxy de autenticación SQL en la nube.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.