Para conectar tus aplicaciones y herramientas de forma segura a las bases de datos de AlloyDB para PostgreSQL, puedes configurar las redes, la autorización, la autenticación y la agrupación de conexiones:
Herramientas de redes: Las instancias de AlloyDB usan direcciones IP públicas o privadas en una red de nube privada virtual (VPC). Existen varias opciones que permiten conexiones seguras desde aplicaciones que se ejecutan fuera de la red de VPC.
Autorización: El proxy de autenticación de AlloyDB y los conectores de lenguajes para AlloyDB te permiten usar Identity and Access Management (IAM) para controlar quién tiene acceso a tus datos. Las reglas de firewall de tu red de VPC te permiten ajustar aún más el acceso a los recursos de AlloyDB.
Autenticación: Usa técnicas estándar de autenticación de usuarios de PostgreSQL para acceder a tus instancias. AlloyDB también admite la autenticación basada en IAM con roles de usuario estándar de PostgreSQL.
Agrupación: Para mejorar la confiabilidad, el rendimiento y la escalabilidad, usa la agrupación de conexiones estándar del cliente de PostgreSQL y la agrupación de conexiones administrada del servidor.
Si deseas obtener orientación para elegir la configuración de conectividad adecuada para tu carga de trabajo, consulta Elige una opción de conectividad.
Redes
Aunque una instancia de AlloyDB contiene muchos nodos, tus aplicaciones se conectan a una instancia a través de una sola dirección IP estática. Esta dirección puede ser una dirección IP privada en la red de VPC que especificas cuando configuras por primera vez el clúster de una instancia o una dirección IP pública que permite conexiones directas desde fuera de la red de VPC.
IP privada
Cuando configuras AlloyDB con una IP privada, tu instancia obtiene una dirección IP privada dentro de tu red de VPC.
Las direcciones IP privadas afectan las conexiones a tu aplicación de dos maneras:
Las aplicaciones que se ejecutan en cualquier otro lugar de la red de VPC de tu proyecto pueden conectarse a la instancia, o a un proxy que la represente, sin pasos ni recursos adicionales.
Por ejemplo, en Conéctate desde Compute Engine, se muestra cómo conectarte a tu instancia de AlloyDB ejecutando el programa de línea de comandos
psqlen una VM de Compute Engine dentro de tu red de VPC.Las aplicaciones que se ejecutan fuera de la red de VPC requieren un servicio intermediario para conectarse a la instancia de AlloyDB. Entre las soluciones, se incluye ejecutar servicios de proxy en una VM dentro de la red de VPC de la instancia o usar otros productos deGoogle Cloud para establecer una conexión permanente entre tu aplicación y tu red de VPC.
Para obtener más información, consulta Conéctate a un clúster desde fuera de su VPC.
Las conexiones a través de IP privada suelen proporcionar una latencia más baja y vectores de ataque limitados, ya que no requieren atravesar Internet.
Para obtener más información sobre la IP privada en AlloyDB, consulta Descripción general de la IP privada.
IP pública
Cuando configuras AlloyDB con una IP pública, tu instancia obtiene una dirección IP pública para las conexiones entrantes a la que se puede acceder en la Internet pública. De manera opcional, puedes usar redes externas autorizadas para especificar un rango de direcciones IP en formato CIDR que puedan acceder a tu instancia.
Recomendamos usar una IP pública con los conectores de lenguajes para AlloyDB o el proxy de autenticación de AlloyDB para garantizar conexiones seguras entre el cliente y tu instancia.
Para obtener más información sobre cómo agregar una dirección IP pública y redes externas autorizadas a tu instancia, consulta Conéctate con una IP pública.
AlloyDB también admite conexiones salientes desde tu instancia a la Internet pública. Cuando habilitas la IP pública saliente, AlloyDB proporciona una dirección IP de origen coherente y predecible para el tráfico que sale de tu instancia de AlloyDB a la Internet pública. Cuando habilitas esta función, AlloyDB aprovisiona un par de direcciones IP públicas estáticas que se usan exclusivamente para las conexiones salientes desde tu instancia.
Las conexiones salientes son especialmente útiles en las siguientes situaciones:
Migración de bases de datos: Cuando migras tus datos de una base de datos externa a AlloyDB con Database Migration Service, puedes configurar el firewall de la base de datos externa para permitir conexiones desde las direcciones IP salientes específicas de tu instancia de AlloyDB, lo que garantiza una ruta de transferencia de datos segura.
Contenedores de datos externos: Si necesitas consultar datos de una base de datos externa dentro de AlloyDB con contenedores de datos externos, como
postgres_fdwooracle_fdw, puedes agregar las direcciones IP de salida de tu instancia a la lista de entidades permitidas de la base de datos externa. Esta configuración permite que AlloyDB se conecte y consulte de forma segura la fuente de datos externa.
Cuando habilitas la IP pública de salida, puedes ver las direcciones IP asignadas en la consola de Google Cloud o con gcloud CLI. Luego, puedes usar estas direcciones IP para configurar reglas de firewall o listas de control de acceso (LCA) en tus sistemas externos y otorgar a tu instancia de AlloyDB acceso a tus sistemas externos.
Para obtener más información sobre cómo habilitar la IP pública saliente, consulta Agrega conectividad saliente a una instancia.
Autorización
Puedes controlar el acceso a un clúster de AlloyDB con los conectores de lenguaje de AlloyDB, el proxy de autenticación de AlloyDB o las reglas de firewall de VPC.
Conectores de lenguajes para AlloyDB
Los conectores de lenguajes para AlloyDB son bibliotecas cliente que proporcionan mTLS automatizada con TLS 1.3 y autorización de IAM cuando se conectan a un clúster de AlloyDB.
Puedes usar estas bibliotecas directamente desde sus respectivos lenguajes de programación. Proporcionan las mismas capacidades que el proxy de autenticación sin la necesidad de un proceso externo. Este enfoque proporciona una seguridad mejorada y requisitos de configuración reducidos para conectarse a AlloyDB.
Para obtener más información, consulta la descripción general de los conectores de lenguajes para AlloyDB.
Conéctate con gcloud
Para las sesiones de base de datos interactivas, puedes usar el comando
gcloud beta alloydb connect. Este comando simplifica el proceso de conexión, ya que administra automáticamente
una instancia local del proxy de autenticación de AlloyDB y, además, inicia una sesión de cliente de psql
por ti.
Para obtener más información, consulta Conéctate con gcloud.
Controla el acceso con IAM y el proxy de autenticación de AlloyDB
Aunque puedes conectarte directamente a una instancia a través de su dirección IP, te recomendamos que uses el proxy de autenticación de AlloyDB en entornos de producción. Proporciona control de acceso basado en IAM y encriptación de extremo a extremo entre el proxy y tu clúster.
Para obtener más información, consulta Acerca del proxy de autenticación de AlloyDB.
Limita el acceso a la VPC con reglas de firewall
Al igual que con cualquier proyecto basado en la nube, debes ajustar las reglas de firewall de tu red de VPC para restringir el acceso a la red solo a los rangos de IP o las subredes desde las que se conectan tus aplicaciones. Esta práctica es especialmente importante con las aplicaciones externas, como se detalla en Conéctate a un clúster desde fuera de su VPC.
Para obtener más información sobre cómo configurar el firewall de tu red de VPC, consulta Reglas de firewall de VPC.
Autenticación
AlloyDB admite dos tipos de usuarios de bases de datos, cada uno de los cuales tiene su propia forma de autenticarse con tus bases de datos:
Los roles de usuario estándar de PostgreSQL se autentican con un nombre de usuario y una contraseña. Estas cuentas se administran con técnicas comunes de administración de usuarios de PostgreSQL. Para obtener más información, consulta Administra usuarios de PostgreSQL con autenticación integrada.
Las cuentas de usuario y de servicio de IAM se autentican como usuarios de la base de datos con tokens de OAuth 2.0. Estas cuentas se administran con el sistema de IAM deGoogle Cloud . Para obtener más información, consulta Administra la autenticación de IAM.
Después de autenticarse con una instancia de AlloyDB, una aplicación puede
tratar la instancia como un servidor de PostgreSQL común. Después de establecer
las rutas de red y autorización a una instancia, puedes usar técnicas estándar
de PostgreSQL para acceder a una instancia y a tus datos. Esto se aplica
tanto si accedes de forma manual con una herramienta como psql como si te conectas a tu
base de datos de manera programática con una biblioteca de código de PostgreSQL.
Por lo general, tu primera autenticación con un clúster de AlloyDB nuevo implica acceder a su instancia principal como su usuario postgres con la contraseña que especificas cuando creas el clúster. Desde allí, puedes crear usuarios de la base de datos sin privilegios de administrador para el uso de tu aplicación.
Si no estableces una contraseña para postgres cuando creas un clúster, no podrás
acceder a él. Para acceder, establece una contraseña para postgres
o crea un usuario adicional. Para obtener más información,
consulta Administra usuarios de PostgreSQL con autenticación integrada.
Agrupación
La agrupación de conexiones es una técnica que te ayuda a garantizar que tu carga de trabajo tenga una conexión confiable y de alto rendimiento a tu base de datos. Es útil tanto en el cliente como en el servidor.
Agrupación de conexiones de cliente
Cuando te conectes a AlloyDB, usa un grupo de conexiones de cliente. El grupo de conexiones de cliente crea varias conexiones a tu base de datos y se asegura de que esas conexiones permanezcan activas y en buen estado durante toda la vida útil de tu carga de trabajo. Este enfoque garantiza que tu carga de trabajo tenga una conexión confiable a tu base de datos.
- Cuando ejecutas consultas de forma manual desde la línea de comandos
- Cuando usas un lenguaje que no admite la agrupación de conexiones de clientes
- Cuando la carga de trabajo es efímera y no mantendrá una conexión de larga duración.
Puedes usar cualquier grupo de conexiones de cliente estándar que admita PostgreSQL. Ten en cuenta lo siguiente:
- A veces, la biblioteca del grupo de conexiones del cliente es independiente del controlador de PostgreSQL.
- A veces, el controlador de PostgreSQL incluye la funcionalidad de agrupación de conexiones de cliente en la misma biblioteca.
Las siguientes son bibliotecas de grupos de conexiones de uso frecuente:
- HikariCP para Java
- SQLAlchemy para Python
- pgxpool para Go
- node-postgres para Node.js
- Npgsql para .NET
Si la biblioteca admite PostgreSQL, puedes usarla con AlloyDB.
Configura grupos de conexiones de clientes
Para obtener el mejor rendimiento de tu grupo de conexiones de cliente, es posible que debas configurar el tamaño del grupo. Usa la siguiente fórmula como punto de partida:
connections = (vCPU count * 2) + 1
Para obtener más información, consulta Acerca del tamaño del grupo. Según las cargas reales, es posible que debas realizar ajustes adicionales.
Usa la agrupación de conexiones administrada
Además de la agrupación de conexiones de cliente, AlloyDB también admite la agrupación de conexiones del servidor con la agrupación de conexiones administrada.
Si bien puedes usar la agrupación de conexiones administradas para cualquier carga de trabajo transaccional, esta es más adecuada para las aplicaciones que contienen más conexiones de corta duración o que pueden experimentar un aumento repentino de conexiones. Para obtener más información, consulta Configura la agrupación de conexiones administradas.
¿Qué sigue?
- Elige una opción de conectividad.
- Obtén más información para conectarte con gcloud CLI.
Aprende a conectarte a una instancia de AlloyDB con la shell de línea de comandos de
psql. En esta guía, se incluyen instrucciones para configurar una VM dentro de tu red de VPC y, luego, instalarpsqlen ella.Obtén información para crear una base de datos.
Aprende a instalar y usar el proxy de autenticación de AlloyDB para establecer conexiones seguras con tu instancia de AlloyDB.
Obtén más información para conectarte con los conectores de lenguajes para AlloyDB.
Aprende a conectarte desde VS Code o una CLI potenciada por IA con Google Cloud Data Agent Kit.