En esta página, se proporciona una descripción general del proxy de autenticación de AlloyDB, un conector que te permite establecer conexiones autorizadas y encriptadas con las bases de datos de AlloyDB.
Para obtener una guía paso a paso sobre el uso del proxy de autenticación, consulta Conéctate con el proxy de autenticación de AlloyDB.
Descripción general
El proxy de autenticación proporciona las siguientes ventajas en comparación con la conexión de clientes directamente a las bases de datos de AlloyDB:
Autorización de conexión basada en IAM (AuthZ): El proxy de autenticación usa las credenciales y los permisos de un principal de IAM para autorizar las conexiones a instancias de AlloyDB.
Comunicación segura y encriptada: El proxy de autenticación crea, usa y mantiene automáticamente una conexión TLS 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 la Descripción general de la conexión.
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. La aplicación se comunica con el proxy de autenticación de AlloyDB a través del 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, algoritmo de cifrado AES de 256 bits) para comunicarse con el 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, verifica si hay una conexión existente entre ella y la instancia de AlloyDB de destino. Si no existe una conexión, llama a las APIs de AlloyDB Admin para obtener un certificado SSL efímero y lo usa para conectarse a AlloyDB. Los certificados SSL efímeros vencen en 24 horas. El proxy de autenticación de AlloyDB actualiza estos certificados antes de que venzan.
Si bien el proxy de autenticación de AlloyDB puede escuchar en cualquier puerto, crea conexiones salientes o de salida a tu instancia de AlloyDB solo en el puerto 5433. Debido a que el proxy de autenticación de AlloyDB llama a las APIs a través del nombre de dominio alloydb.googleapis.com
, que no tiene una dirección IP fija, se deben permitir todas las conexiones TCP de salida en el puerto 443. Si tu máquina cliente tiene una política de firewall saliente, asegúrate de que permita conexiones salientes al puerto 5433 en la IP de tu instancia de AlloyDB.
Cómo autoriza el proxy de autenticación de AlloyDB a los principales de IAM
Para autorizar la conexión de un cliente a una instancia de AlloyDB, el cliente de proxy de autenticación se autentica en Google Cloud con credenciales de principal de IAM en el cliente y, luego, valida que el principal de IAM tenga los roles de IAM cliente de Cloud AlloyDB (roles/alloydb.client
) y consumidor de uso de servicios (roles/serviceusage.serviceUsageConsumer
).
Para ubicar las credenciales de IAM en el cliente, el cliente de Auth Proxy verifica cada uno de los siguientes elementos y usa el primero que encuentra para intentar autenticar a Google Cloud:
Credenciales proporcionadas por la marca --credentials-file
Usa una cuenta de servicio para crear y descargar el archivo de claves JSON asociado y establece la marca--credentials-file
en la ruta de acceso del archivo cuando inicias el cliente de proxy de autenticación. La cuenta de servicio debe tener los roles de IAM de cliente de Cloud AlloyDB (roles/alloydb.client
) y consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer
) para 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
establecida en la ruta y el nombre de archivo de un archivo de credenciales JSON. La ruta de acceso puede ser absoluta o relativa al directorio de trabajo actual.Credenciales proporcionadas por la marca --token
Crea un token de acceso y, luego, invoca el comando
alloydb-auth-proxy
con la marca--token
establecida en un token de acceso de OAuth 2.0.Credenciales provistas por una variable de entorno
Esta opción es similar a usar la marca
--credentials-file
, excepto que se especifica el archivo de credenciales JSON que estableciste en la variable de entornoGOOGLE_APPLICATION_CREDENTIALS
, en lugar de usar la marca--credentials-file
.Credenciales de un cliente autenticado de la CLI de Google Cloud
Si instalaste la CLI de gcloud y te autenticaste con tu cuenta personal, el cliente de proxy de autenticación puede usar las mismas credenciales de la cuenta. Este método es útil, en particular, para poner en ejecución un entorno de desarrollo.
Si no se seleccionó ninguna cuenta para
gcloud auth login
, el cliente de proxy de autenticación verifica una cuenta que se seleccionó paragcloud auth application-default login
.Credenciales asociadas con la instancia de Compute Engine
Si te conectas a AlloyDB desde una instancia de Compute Engine, el cliente de proxy de autenticación puede usar la cuenta de servicio asociada con la instancia de Compute Engine. Si la cuenta de servicio tiene los roles de IAM de cliente de Cloud AlloyDB (
roles/alloydb.client
) y consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer
) para la instancia de AlloyDB, el cliente de Auth Proxy se autentica correctamente.Si la instancia de Compute Engine se encuentra 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 se encuentran en proyectos diferentes, deberás agregar la cuenta de servicio de la instancia de Compute Engine al proyecto que contiene la de AlloyDB.
Cuenta de servicio predeterminada del entorno
Si el cliente de proxy de autenticación no puede encontrar credenciales en ninguno de los lugares mencionados anteriormente, sigue la lógica que se documenta en Cómo autenticarse como una 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 la autenticación según la configuración predeterminada. Si usas una cuenta de servicio predeterminada, esta debe tener los roles de IAM de cliente de Cloud AlloyDB (roles/alloydb.client
) y consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer
).Para obtener más información sobre el enfoque de autenticación de Google Cloud, consulta la sección Descripción general de la autenticación.