POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Kubernetes a RDS: conexiones seguras con roles IAM sin contraseñas

## Conexiones seguras entre Kubernetes y RDS con roles IAM sin contraseñas

Publicado el 31/08/2025

Las bases de datos son el pilar de cualquier aplicación seria. Durante décadas nos hemos conectado con usuarios y contraseñas. Suficiente, sí, pero hoy podemos ir un paso más allá y acceder a datos sensibles de forma más segura con herramientas nativas de AWS. En esta guía te muestro, de principio a fin, cómo configurar una conexión a tu base de datos usando roles y políticas de IAM, sin contraseñas.

Escenario base: aplicaciones ejecutándose en Elastic Kubernetes Service EKS y una base de datos en Amazon RDS Postgres aunque sirve para otros motores. La misma idea aplica a EC2 o ECS, con matices en la parte de identidad de ejecución. En EKS usaremos Pod Identity Association y en EC2 usarías un Instance Profile.

Habilitar autenticación IAM en RDS. Da igual si tu clúster ya existe o es nuevo, puedes activar IAM Database Authentication cuando quieras. Ten en cuenta que requiere reinicio del clúster. En consola, activa autenticación IAM en la configuración del clúster. En CLI, al crear o modificar un clúster añade el parámetro enable-iam-database-authentication. Ejemplo CLI simplificado: aws rds create-db-cluster --db-cluster-identifier mi-cluster --engine aurora-postgresql --enable-iam-database-authentication. Para un clúster existente: aws rds modify-db-cluster --db-cluster-identifier mi-cluster --enable-iam-database-authentication.

Crear usuario de base de datos. En Postgres crea un usuario y concédele la capacidad de autenticarse mediante IAM. Ejemplo SQL: CREATE USER database_user; GRANT rds_iam TO database_user; Con esto el usuario database_user podrá iniciar sesión con tokens de IAM.

Política de IAM para conectar. Crea una política mínima que permita la acción rds-db:connect sobre un ARN de tipo dbuser. Un ejemplo de recurso sería arn:aws:rds-db:us-west-2:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/database_user donde la parte final database_user fija el usuario en la base de datos y cluster-... indica que la conexión es válida para ese clúster RDS Aurora. Puedes apuntar a una instancia db-... o a un RDS Proxy prx-... si lo prefieres. Evita comodines amplios salvo que tengas una justificación de seguridad sólida, ya que una política demasiado abierta es un riesgo.

Política de confianza trust policy. Para que un pod pueda asumir el rol, la relación de confianza debe permitir el principal de EKS pods.eks.amazonaws.com y las acciones sts:AssumeRole y sts:TagSession. Con ello otorgas a los pods la capacidad de asumir el rol bajo control del runtime de EKS.

Asociación de identidad de pod en EKS. En tu clúster EKS ve a la pestaña Access y crea una Pod Identity Association. Selecciona el rol de IAM anterior, define el namespace de Kubernetes donde se permitirá usarlo y el ServiceAccount que quedará asociado. La opción Target IAM role habilita delegación anidada si la necesitas, pero no es obligatoria.

ServiceAccount en Kubernetes. Crea un ServiceAccount con el nombre y namespace que definiste en la asociación anterior, por ejemplo nombre my-rds-sa en el namespace rds-app. Es importante que coincidan exactamente con lo configurado en la asociación de identidad, o el pod no podrá asumir el rol.

Workload de prueba. Puedes validar con una app mínima en Python que genere el token de RDS y se conecte por TLS. Pasos clave dentro del contenedor: 1 usar boto3 para generar el token con generate_db_auth_token indicando host, puerto y usuario; 2 conectar con psycopg2 pasando token como password, sslmode require y la base de datos destino; 3 ejecutar consultas simples como SELECT version, SELECT NOW y verificar current_user para confirmar que entras como database_user. Si lo deseas, inyecta variables de entorno RDS_ENDPOINT, RDS_PORT, DB_USER, DB_NAME y AWS_REGION para mayor flexibilidad.

Resultados esperados. Si la política rds-db:connect apunta al ARN correcto, la trust policy permite que los pods asuman el rol y la Pod Identity Association está bien atada al ServiceAccount, verás que el token se genera y la conexión se establece con éxito. Si falla, revisa en este orden: 1 que la autenticación IAM esté habilitada en el clúster RDS y se haya aplicado tras el reinicio; 2 que el usuario tenga el rol rds_iam; 3 que el ARN de recurso en la política coincida con clúster o proxy y usuario adecuados; 4 que el pod use el ServiceAccount correcto en el namespace correcto; 5 que el rol esté asociado a la Pod Identity.

Beneficios de eliminar contraseñas. Desaparecen la gestión y la rotación de contraseñas, reduces superficie de ataque y te apoyas en sesiones de corta duración. Además, las políticas y roles de IAM encajan de forma natural con IaC, lo que facilita auditorías, análisis estático y revisiones de seguridad. Esta arquitectura encaja perfectamente con buenas prácticas de ciberseguridad y gobierno.

Cómo llevarlo a producción. En tu aplicación de negocio basta con sustituir la contraseña estática por un flujo de obtención de token con generate_db_auth_token y establecer ese token como password en la conexión al controlador de tu base de datos. Repite el proceso de obtención cuando caduque el token según las mejores prácticas de tu lenguaje y framework.

En Q2BSTUDIO ayudamos a equipos de ingeniería a diseñar e implementar conexiones seguras entre Kubernetes y RDS con IAM, integrándolo con pipelines de IaC, observabilidad y controles de seguridad. Nuestro equipo combina desarrollo de software a medida, plataformas cloud y ciberseguridad para que tus datos estén protegidos sin fricción operativa. Si buscas modernizar tu plataforma y adoptar buenas prácticas en servicios cloud AWS y Azure, descubre nuestros servicios cloud en AWS y Azure. Si además quieres fortalecer la protección de tus activos, realizamos auditorías, hardening y pruebas de intrusión como parte de nuestros servicios de ciberseguridad y pentesting.

Posicionamiento y valor para tu negocio. Q2BSTUDIO es una empresa de desarrollo con foco en aplicaciones a medida y software a medida, especialistas en inteligencia artificial e ia para empresas incluyendo agentes IA, además de servicios inteligencia de negocio y power bi, automatización de procesos, y gobierno de datos. Uniendo estas competencias construimos soluciones de extremo a extremo: desde la capa de infraestructura segura y escalable hasta la analítica avanzada que convierte tus datos en decisiones.

Conclusión. Con IAM y RDS puedes eliminar contraseñas, ganar seguridad y simplificar operaciones. Si necesitas una implementación guiada, un assessment de arquitectura o quieres integrar este patrón con tu plataforma CI CD, contáctanos. En Q2BSTUDIO convertimos mejores prácticas en resultados, alineando tecnología y negocio de forma segura y escalable.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio