Información sobre el proxy de autenticación de AlloyDB

En esta página se ofrece una descripción general de AlloyDB Auth Proxy, un conector que te permite establecer conexiones cifradas y autorizadas con bases de datos de AlloyDB.

Para obtener una guía paso a paso sobre cómo usar el proxy de autenticación, consulta Conectarse mediante el proxy de autenticación de AlloyDB.

Ventajas de usar el proxy de autenticación de AlloyDB

El proxy de autenticación ofrece estas ventajas con respecto a la conexión de clientes directamente a bases de datos de AlloyDB:

  • Autorización de conexiones basada en IAM (AuthZ): el proxy de autenticación usa las credenciales y los permisos de un principal de Gestión de Identidades y Accesos (IAM) para autorizar las conexiones a instancias de AlloyDB.

  • Comunicación segura y cifrada: Auth Proxy crea, usa y mantiene automáticamente una conexión TLS 1.3 mediante un cifrado AES de 256 bits entre tu cliente y una instancia de AlloyDB para verificar las identidades del cliente y del servidor, así como para cifrar el tráfico de datos.

Para obtener más información sobre cómo conectarse a instancias de AlloyDB, consulta la información general sobre las conexiones.

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

El proxy de autenticación de AlloyDB funciona con un cliente local que se ejecuta en el entorno local. Tu aplicación se comunica con el proxy de autenticación de AlloyDB con el protocolo de base de datos estándar que usa tu base de datos.

El proxy de autenticación de AlloyDB usa un túnel seguro (TLS 1.3, cifrado AES de 256 bits) para comunicarse con su proceso complementario que se ejecuta en el servidor. Cada conexión establecida a través del proxy de autenticación de AlloyDB crea una conexión con la instancia de AlloyDB.

Cuando una aplicación se conecta al proxy de autenticación de AlloyDB, comprueba si hay una conexión entre ella y la instancia de AlloyDB de destino. Si no existe ninguna conexión, llama a las APIs de administrador de AlloyDB para obtener un certificado SSL efímero y lo usa para conectarse a AlloyDB. Los certificados SSL efímeros caducan en 24 horas. AlloyDB Auth Proxy renueva estos certificados antes de que caduquen.

El proxy de autenticación de AlloyDB llama a las APIs a través del nombre de dominio alloydb.googleapis.com mediante HTTPS. Por lo tanto, tu cortafuegos debe permitir todas las conexiones TCP de salida en el puerto 443 (HTTPS) desde el equipo cliente.

Aunque AlloyDB Auth Proxy puede escuchar en cualquier puerto, solo crea conexiones salientes o de salida a tu instancia de AlloyDB en el puerto 5433. Si tu host de cliente tiene un cortafuegos saliente, debe permitir las conexiones al puerto 5433 en la dirección IP de tu instancia de AlloyDB. El host del cliente también debe permitir conexiones al puerto 443, que es el puerto HTTPS estándar, a todas las direcciones IP.

Cómo autoriza el proxy de autenticación de AlloyDB a las entidades de IAM

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 mediante las credenciales principales de IAM del cliente y, a continuación, valida que la principal de IAM tenga los roles de IAM Cliente de AlloyDB de Cloud (roles/alloydb.client) y Consumidor de uso de servicios (roles/serviceusage.serviceUsageConsumer).

Para localizar las credenciales de gestión de identidades y accesos en el cliente, el cliente de Auth Proxy comprueba cada uno de los siguientes elementos y usa el primero que encuentra para intentar autenticarse en Google Cloud:

  1. Credenciales proporcionadas por la marca --credentials-file

    Usa una cuenta de servicio para crear y descargar el archivo de clave JSON asociado, y define la marca --credentials-file en la ruta del archivo cuando inicies el cliente Auth Proxy. La cuenta de servicio debe tener los roles de gestión de identidades y accesos Cliente de AlloyDB en Cloud (roles/alloydb.client) y Consumidor de uso de servicios (roles/serviceusage.serviceUsageConsumer) de la instancia de AlloyDB.

    Para usar esta opción en la línea de comandos, invoca el comando alloydb-auth-proxy con la marca --credentials-file definida en la ruta y el nombre de archivo de un archivo de credenciales JSON. La ruta puede ser absoluta o relativa al directorio de trabajo actual.

  2. Credenciales proporcionadas por la marca --token

    Crea un token de acceso e invoca el comando alloydb-auth-proxy con la marca --token definida en un token de acceso de OAuth 2.0.

  3. Credenciales proporcionadas por una variable de entorno

    Esta opción es similar a usar la marca --credentials-file, pero en lugar de usarla, debes especificar el archivo de credenciales JSON que has definido en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS.--credentials-file

  4. Credenciales de un cliente autenticado de la CLI de Google Cloud

    Si has instalado la CLI de gcloud y te has autenticado con tu cuenta personal, el cliente de Auth Proxy puede usar las mismas credenciales de cuenta si habilitas la marca --gcloud-auth. Este método es especialmente útil para poner en marcha un entorno de desarrollo.

    Si no se ha seleccionado ninguna cuenta para gcloud auth login, el cliente de Auth Proxy busca una cuenta que se haya seleccionado para gcloud auth application-default login. Este es el comportamiento predeterminado cuando no habilitas la marca --gcloud-auth.

  5. Credenciales asociadas a la instancia de Compute Engine

    Si te conectas a AlloyDB desde una instancia de Compute Engine, el cliente del proxy de autenticación puede usar la cuenta de servicio asociada a la instancia de Compute Engine. Si la cuenta de servicio tiene los roles de gestión de identidades y accesos (IAM) de cliente de Cloud AlloyDB (roles/alloydb.client) y consumidor de uso de servicios (roles/serviceusage.serviceUsageConsumer) para la instancia de AlloyDB, el cliente de Auth Proxy se autenticará correctamente.

    Si la instancia de Compute Engine está en el mismo proyecto que la instancia de AlloyDB, la cuenta de servicio predeterminada de la instancia de Compute Engine tiene los permisos necesarios para autenticar AlloyDB. Si las dos instancias están en proyectos diferentes, debes añadir la cuenta de servicio de la instancia de Compute Engine al proyecto que contiene la instancia de AlloyDB.

  6. Cuenta de servicio predeterminada del entorno

    Si el cliente de Auth Proxy no encuentra credenciales en ninguno de los lugares que hemos mencionado, sigue la lógica que se describe en Autenticarse como cuenta de servicio. Algunos entornos (como Compute Engine, App Engine y otros) proporcionan una cuenta de servicio predeterminada que tu aplicación puede usar para autenticarse de forma predeterminada. Si usas una cuenta de servicio predeterminada, debe tener los roles de gestión de identidades y accesos Cliente de Cloud AlloyDB (roles/alloydb.client) y Consumidor de uso de servicios (roles/serviceusage.serviceUsageConsumer).

    Para obtener más información sobre el enfoque de Google Cloud en la autenticación, consulta el artículo Descripción general de la autenticación.

Siguientes pasos