Acerca del proxy de autenticación de AlloyDB

El proxy de autenticación de AlloyDB es un conector que te permite establecer conexiones autorizadas y encriptadas a tus bases de datos de AlloyDB para PostgreSQL sin administrar certificados SSL ni configurar reglas de firewall. Para obtener una guía paso a paso sobre cómo usar el proxy de autenticación, consulta Conéctate con el proxy de autenticación de AlloyDB.

Beneficios de usar el proxy de AlloyDB Auth

El proxy de autenticación proporciona las siguientes ventajas en comparación con la conexión directa de los clientes a las bases de datos de AlloyDB:

  • Autorización de conexión basada en Identity and Access Management (IAM). El proxy de autenticación usa las credenciales y los permisos de un principal de IAM para autorizar las conexiones a las instancias de AlloyDB.

  • Autenticación de IAM automatizada. El proxy de autenticación puede autenticar automáticamente a los usuarios de la base de datos según la principal de IAM que ejecuta el proxy.

  • Comunicación segura y encriptada. El proxy de autenticación crea, usa y mantiene automáticamente una conexión de TLS mutua (mTLS) 1.3 con un algoritmo de cifrado AES de 256 bits entre tu cliente y una instancia de AlloyDB para verificar las identidades del cliente y del servidor, y encriptar el tráfico de datos.

Para obtener más información sobre cómo conectarte a instancias de AlloyDB, consulta Descripción general de la conexión.

Cómo funciona el proxy de autenticación de AlloyDB

El proxy de autenticación de AlloyDB se ejecuta como un proceso de cliente local (alloydb-auth-proxy) en el entorno de tu aplicación y escucha las conexiones en localhost (de forma predeterminada, en el puerto TCP 5432) o en un socket de dominio Unix local. Tu aplicación se conecta a este objeto de escucha local con controladores y protocolos de conexión estándar de PostgreSQL, mientras que el cliente del proxy de autenticación reenvía el tráfico a través de un túnel encriptado (mTLS 1.3 con un algoritmo de cifrado AES de 256 bits) a su proceso complementario del servidor proxy de autenticación que se ejecuta en la instancia de AlloyDB. Cada conexión establecida a través del proxy de autenticación crea una conexión con la instancia de AlloyDB.

Cuando una aplicación se conecta al proxy de autenticación, este verifica si hay una conexión existente con la instancia de AlloyDB de destino. Si no existe una conexión, el proxy llama a la API de AlloyDB para obtener un certificado SSL efímero y lo usa para establecer el túnel mTLS a la instancia. Los certificados SSL efímeros vencen en 24 horas, y el proxy de autenticación los actualiza automáticamente antes de que venzan.

El proxy de autenticación llama a la API de AlloyDB a través del nombre de dominio alloydb.googleapis.com por HTTPS. Como resultado, tu firewall debe permitir conexiones TCP salientes en el puerto 443 (HTTPS) desde la máquina cliente.

Si bien el proxy de autenticación puede escuchar de forma local en cualquier puerto, crea conexiones salientes a tu instancia de AlloyDB solo en el puerto TCP 5433. Si tu host cliente tiene un firewall saliente, debe permitir conexiones al puerto 5433 en la dirección IP de tu instancia de AlloyDB y al puerto 443 para todas las direcciones IP.

Puedes usar el proxy de autenticación en todas las rutas de conectividad de red de AlloyDB:

  • Acceso privado a servicios (predeterminado): Se conecta a la dirección IP interna de la instancia dentro de una red de nube privada virtual (VPC) con intercambio de tráfico.
  • Private Service Connect: Se conecta a través de un extremo de Private Service Connect y un registro DNS privado cuando pasas la marca --psc.
  • IP pública: Se conecta a la dirección IP pública de la instancia cuando pasas la marca --public-ip. Debido a que el proxy de autenticación autentica y encripta las conexiones con IAM y mTLS en el puerto 5433, no necesitas agregar la dirección IP de tu cliente a las redes externas autorizadas cuando te conectas a través del proxy de autenticación.

Cómo el proxy de autenticación de AlloyDB autentica y autoriza las conexiones

Para autorizar la conexión de un cliente a una instancia de AlloyDB, el cliente del proxy de autenticación se autentica en Google Cloud con las credenciales de la entidad de IAM en el cliente y, luego, valida que la entidad de IAM tenga los roles de IAM Cliente de AlloyDB (roles/alloydb.client) y Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer).

De forma predeterminada, el cliente del proxy de autenticación usa las credenciales predeterminadas de la aplicación (ADC) para ubicar las credenciales del cliente. Esto proporciona una forma unificada y estándar para que las aplicaciones se autentiquen automáticamente sin editar ni codificar los valores de configuración.

Autenticación estándar

Para las configuraciones estándar de desarrollo y producción, no es necesario que configures credenciales ni marcas personalizadas. El cliente del proxy de autenticación resuelve automáticamente las credenciales con rutas de acceso de entorno estándar. Según el entorno que uses para ejecutar el cliente del proxy de autenticación, este ubica las credenciales de las siguientes fuentes:

  • Desarrollo local. Cuando desarrollas de forma local, puedes autenticarte con tu cuenta de usuario de Google personal o corporativa. El cliente del proxy de autenticación detecta y usa estas credenciales automáticamente. Este es el enfoque recomendado para el desarrollo local, ya que evita la necesidad de descargar archivos de claves de cuentas de servicio de forma local. Para obtener instrucciones completas sobre cómo configurar un entorno de desarrollo local, consulta Conéctate desde tu laptop y Instala la herramienta de línea de comandos de psql.

  • Entornos administrados por Google. Cuando ejecutas tu aplicación en un servicio deGoogle Cloud , como instancias de Compute Engine, Google Kubernetes Engine, Cloud Run, funciones de Cloud Run o App Engine, el servidor de metadatos del entorno proporciona automáticamente las credenciales de la cuenta de servicio adjunta. El cliente del proxy de autenticación descubre y usa estas credenciales de forma automática sin configuración adicional.

    • Si el recurso de procesamiento se encuentra en el mismo proyecto que la instancia de AlloyDB, la cuenta de servicio predeterminada suele tener los permisos necesarios para autenticarse.
    • Si el recurso de procesamiento y la instancia de AlloyDB se encuentran en proyectos diferentes, debes agregar la cuenta de servicio del recurso de procesamiento al proyecto que contiene la instancia de AlloyDB y otorgarle los roles necesarios.

Anula las credenciales

En situaciones específicas, como pruebas, ejecuciones fuera de Google Cloudo cuando deseas omitir las credenciales de entorno estándar, puedes anular las credenciales con uno de los siguientes métodos:

  • Una clave de cuenta de servicio. Proporciona la clave a través de la variable de entorno GOOGLE_APPLICATION_CREDENTIALS o la marca --credentials-file. Las claves de las cuentas de servicio son un riesgo de seguridad si no se administran de forma adecuada, por lo que debes preferir una de las fuentes estándar cuando puedas.

  • Un token de acceso de OAuth 2.0 existente. Proporciona el token a través de la marca --token.

  • Credenciales de gcloud CLI Proporciona estas credenciales a través de la marca --gcloud-auth. No recomendamos esta marca. En su lugar, ejecuta gcloud auth application-default login.

Para obtener más información sobre cómo configurar estas credenciales en el cliente, consulta Conéctate con el proxy de autenticación de AlloyDB. Para obtener información general sobre el enfoque de Google Cloud para la autenticación, consulta Descripción general de la autenticación.

¿Qué sigue?