Cómo asegurar tus contenedores Node.js en Kubernetes con las mejores prácticas

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Aprende las mejores prácticas de seguridad para Kubernetes y especialmente para asegurar aplicaciones construidas con NodeJS que se ejecutan en Kubernetes. Hablaremos sobre cómo asegurar el clúster, tus contenedores Node.js y más. También veremos cómo utilizar OIDC para asegurar el acceso a los clústeres.

This talk has been presented at DevOps.js Conf 2022, check out the latest edition of this JavaScript Conference.

FAQ

RBAC significa 'Control de Acceso Basado en Roles'. Es una forma de gestionar quién puede acceder a qué recursos dentro de un clúster de Kubernetes. Permite definir roles y asignarles permisos específicos a nivel de API, lo que es crucial para la seguridad y la administración eficiente de los accesos en empresas y organizaciones de cualquier tamaño.

Para asegurar la autenticación en Kubernetes, se pueden utilizar varios mecanismos como certificados de cliente, tokens de autenticación y OpenID Connect (OIDC). OIDC es particularmente recomendable porque ofrece una solución de inicio de sesión único y facilita la gestión de usuarios sin necesidad de almacenar información sensible en las máquinas de los usuarios.

Los secrets en Kubernetes son un recurso utilizado para almacenar y gestionar datos sensibles, como contraseñas, tokens y claves. Se pueden montar como volúmenes de datos o exponer como variables de entorno en los contenedores, ayudando a mantener la seguridad de la información sensible dentro del clúster.

Mantener actualizado Kubernetes es crucial para la seguridad, ya que como cualquier otro software, está expuesto a vulnerabilidades que pueden ser explotadas. Actualizar con regularidad ayuda a proteger el clúster de ataques aprovechando errores conocidos y CVEs, asegurando así la integridad y seguridad del sistema.

Utilizar OIDC (OpenID Connect) mejora la seguridad en Kubernetes al proporcionar un método de autenticación robusto y escalable. OIDC permite la integración con proveedores de identidad, facilitando así la incorporación y desincorporación de usuarios de manera centralizada, eliminando la necesidad de gestionar credenciales sensibles directamente en Kubernetes.

Para mejorar la seguridad de los contenedores en Kubernetes se recomienda no ejecutar contenedores como usuario root, utilizar imágenes base oficiales y mínimas, habilitar el escaneo de imágenes de contenedor y utilizar herramientas como Docker Bench for Security para auditar y seguir las mejores prácticas de seguridad.

Deepu K Sasidharan
Deepu K Sasidharan
34 min
24 Mar, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy trata sobre la seguridad de los contenedores Kubernetes, especialmente para Node.js. Las mejores prácticas para asegurar Kubernetes incluyen el uso de RBAC, OIDC y secrets, así como el aislamiento de las cargas de trabajo y la seguridad de las imágenes de los contenedores. Se recomienda OADC para la autenticación en Kubernetes, y asegurar el clúster de Kubernetes es crucial. Los clústeres de Kubernetes basados en la nube pueden utilizar OADC o el mecanismo de autenticación predeterminado proporcionado por el proveedor de la nube. La gestión del tamaño del equipo y lidiar con diferentes filosofías de seguridad son consideraciones importantes. En general, asegurar Kubernetes es esencial para proteger la infraestructura y los datos.

1. Introducción a la seguridad de Kubernetes

Short description:

La charla de hoy trata sobre la seguridad de los contenedores de Kubernetes, especialmente para Node.js. Independientemente de cómo ejecutes tus clústeres de Kubernetes, debes asegurarte de su seguridad. Introducciones: Soy Deepu K. Sashidharan, co-líder de jHipster, creador de kdash y defensor del desarrollo en Okta. Sígueme en Twitter y visita mi blog y libro sobre jHipster.

Hola a todos. Bienvenidos a mi charla. Hoy hablaré sobre cómo asegurar tus contenedores de Kubernetes, especialmente para Node.js. Si eres un ingeniero de DevOps, es muy probable que estés manteniendo ya sea un clúster de Kubernetes local o una plataforma como EKS, AKS o GKE. Pero independientemente de cómo ejecutes tus clústeres de Kubernetes, debes asegurarte de que estén seguros.

Pero primero, las presentaciones. Mi nombre es Deepu K. Sashidharan. Soy el co-líder de jHipster. También creé un panel muy útil llamado kdash para Kubernetes. Soy un aficionado del código abierto, un desarrollador políglota y un campeón de Java. Trabajo como defensor del desarrollo en Okta, con un enfoque en DevOps. También escribo con frecuencia sobre lenguajes y tecnología en mi blog. Puedes encontrarlo en deepu.tech. Por favor, sígueme en Twitter si te interesa mi contenido. He escrito un libro sobre jHipster. Si te gusta esta charla, es posible que también te guste el libro. Así que por favor, échale un vistazo.

2. Understanding Kubernetes Security

Short description:

Antes de hablar sobre cómo asegurar Kubernetes o antes de hablar sobre las mejores prácticas de seguridad en Kubernetes, es importante tener una comprensión básica de la seguridad de Kubernetes. Al igual que cualquier otro software complejo, la seguridad en Kubernetes es multifacética. Se utiliza TLS para garantizar la seguridad del transporte y la autenticación y autorización se pueden realizar utilizando múltiples mecanismos en Kubernetes. Kubernetes viene con muchas opciones de seguridad predefinidas, como hemos visto. Pero para proteger al máximo tu infraestructura, debes considerar muchas más mejores prácticas de seguridad.

Antes de hablar sobre cómo asegurar Kubernetes o antes de hablar sobre las mejores prácticas de seguridad en Kubernetes, es importante tener una comprensión básica de la seguridad de Kubernetes. Al igual que cualquier otro software complejo, la seguridad en Kubernetes es multifacética. Se puede categorizar en cuatro capas: seguridad del transporte, autenticación, autorización y control de admisión.

Se utiliza TLS para garantizar la seguridad del transporte y se puede realizar la autenticación y autorización utilizando múltiples mecanismos en Kubernetes. También es posible agregar módulos de control de admisión personalizados para agregar políticas y seguridad adicionales en Kubernetes. Estas son las cosas que están disponibles de forma predeterminada en Kubernetes.

Kubernetes viene con muchas opciones de seguridad predefinidas, como hemos visto. Pero para proteger al máximo tu infraestructura, debes considerar muchas más mejores prácticas de seguridad. Hoy veremos algunas de las mejores prácticas de seguridad vitales. También puedes encontrar un blog similar en el enlace proporcionado en esta diapositiva. Así que por favor, échale un vistazo si quieres leer un poco más de información al respecto.

3. RBAC and Authorization in Kubernetes

Short description:

La primera mejor práctica para asegurar Kubernetes es usar RBAC. RBAC te permite definir un control de acceso basado en roles que se asemeja estrechamente a los roles empresariales de tu organización. Proporciona un control flexible sobre el acceso y se puede modelar según la estructura de tu organización. La mayoría de las distribuciones de Kubernetes tienen RBAC habilitado de forma predeterminada. Puedes crear roles de clúster y asignaciones de roles para controlar el acceso a los recursos.

Entonces, primero, la primera mejor práctica sería usar RBAC. Kubernetes admite múltiples modelos de autorización para su servidor API. Existe el control de acceso basado en atributos, o ABAC, el control de acceso basado en roles, o RBAC, la autorización de nodos y el modo de webhook. De todos estos, RBAC es el más seguro y el más utilizado, y es ideal para empresas y organizaciones medianas y grandes.

Con RBAC puedes definir un control de acceso basado en roles que se asemeja estrechamente a los roles empresariales de tu organización. RBAC también funciona muy bien con la autenticación OIDC. Entonces, con RBAC, puedes tener un control mucho más flexible sobre quién tiene acceso a qué, y puedes modelarlo según cómo está estructurada tu organización, según tus departamentos y todas estas cosas. La mayoría de las distribuciones de Kubernetes tienen RBAC habilitado de forma predeterminada. Puedes verificar esto ejecutando el comando kubectl clusterinfo down, luego busca la bandera de modo de autorización en la salida, que mostrará algo como modo de autorización igual a RBAC. Si no es así, puedes habilitarlo usando la bandera de modo de autorización para el servidor API. Sería hyphen-authorization mode. Puedes hacer esto al crear un clúster o puedes hacerlo parchando un clúster. Por ejemplo, si estableces hyphen-authorization-mode igual a RBAC, command-node, habilitará tanto RBAC como la autorización de nodos en el clúster. También puedes tener múltiples autorizaciones en el mismo clúster. Una vez que se habilita RBAC, puedes crear roles de clúster y asignaciones de roles y asignaciones de roles de clúster para controlar el acceso a tus recursos. Aquí tienes un pequeño ejemplo de un rol y una asignación de roles que permite a los usuarios ver puertos y servicios. Te recomendaría que consultes la documentación de Kubernetes sobre RBAC y roles de clúster y asignaciones de roles para aprender más a fondo, ya que verás muchas más explicaciones, muchos más ejemplos sobre cómo puedes usar esto de manera flexible para gestionar requisitos de autorización complejos.

4. Securing with OIDC and Using Secrets

Short description:

La siguiente mejor práctica es usar OpenID Connect o OIDC para la autenticación en Kubernetes. OIDC es la solución más segura y escalable, proporcionando inicio de sesión único y fácil administración de usuarios. Elimina la necesidad de almacenar información sensible en las máquinas de los usuarios y permite características de seguridad adicionales como autenticación multifactor. Consulta la publicación del blog sobre cómo asegurar clústeres con OIDC para obtener más detalles. Otra mejor práctica es usar secrets para almacenar datos sensibles en Kubernetes.

La siguiente mejor práctica sería usar OpenID Connect o OIDC para asegurar tu clúster. Esto es para la parte de autenticación. RBAC fue para la parte de autorización y OIDC sería para la parte de autenticación. Kubernetes admite múltiples mecanismos de autenticación. Algunos de los más comunes son certificados de cliente, tokens de autenticación básicos que incluyen tokens de cuenta de servicio, tokens de portador, etc. OpenID Connect o OIDC y también autenticación basada en proxy. Estos son todos los mecanismos de autenticación que son compatibles con Kubernetes de forma predeterminada.

De todos estos mecanismos de autenticación, OIDC es la solución más segura y escalable. Es ideal para clústeres a los que acceden equipos grandes, ya que proporciona una solución de inicio de sesión único para todos los usuarios y facilita la incorporación y desincorporación de usuarios, porque una vez que aseguras tu clúster usando OIDC, no tendrías que ingresar a los clústeres de Kubernetes para realizar ninguna administración de usuarios. Puedes hacer todo desde tu proveedor de OpenID Connect. Puedes hacer la incorporación de usuarios, desincorporación, todo desde allí. No tienes que asegurarte de no tener que preocuparte por tener que borrar nombres de usuario, contraseñas o tokens y certificados de las máquinas de los usuarios, etc. Todo será atendido por el proveedor de OIDC, el mecanismo de OIDC. Por lo tanto, también es mucho más seguro que otros mecanismos, ya que no tienes que almacenar ninguna información sensible en la computadora de un usuario, como secretos de cliente o contraseñas, con los mecanismos tradicionales que tendrías que hacer. También puedes usar características como autenticación multifactor, tokens, llaves Yubi, etc., según lo admita tu proveedor de OIDC, por supuesto, pero todos estos mecanismos estarían disponibles para acceder a tu clúster de Kubernetes. Eso significa que puedes agregar capas adicionales de seguridad que no son posibles con ningún otro mecanismo de autenticación admitido por Kubernetes. También puedes consultar esta publicación de blog que escribí sobre cómo asegurar tus clústeres con OIDC para obtener más detalles y ver cómo puedes hacer esto para tu clúster. El blog muestra cómo configurar esto usando Okta, pero los pasos son similares para cualquier proveedor de OIDC. Por lo tanto, puedes cambiar fácilmente de Okta a Key Clock o cualquier proveedor de OIDC que prefieras. Así que consulta este blog para ver cómo puedes hacer esto.

Así es como funciona OIDC con Kubernetes. Cuando ejecutas un comando con kubectl, utiliza kubelogin y abre un navegador para autenticarte con el proveedor de OIDC. Luego utiliza la respuesta de autenticación obtenida del proveedor de OIDC para obtener tokens del servidor de autenticación y pasa los tokens al servidor de API de Kubernetes, que se utilizarán para autenticar al usuario. Por lo tanto, la siguiente mejor práctica sería usar secrets. Por supuesto, esta debería ser una opción obvia. Kubernetes tiene un recurso de secret que se puede utilizar para almacenar datos sensibles. Esta es una excelente manera de almacenar contraseñas, claves y otros datos sensibles. Los secrets se pueden usar para almacenar datos de cadena, configuración de Docker, certificados, tokens, archivos, etc. Los secrets se pueden montar como volúmenes de datos o exponer como variables de entorno para ser utilizados en los contenedores. Los secrets pueden ser texto plano o codificados.

5. Securing Kubernetes Best Practices

Short description:

No utilices texto sin formato para secretos sensibles. Implementa RBAC para secretos. Mantén Kubernetes actualizado. Restringe el acceso de administrador. Controla el tráfico entre pods y clústeres. Aísla las cargas de trabajo por espacio de nombres.

Así que por favor, no seas esa persona que utiliza texto sin formato para secretos sensibles. Los secretos son flexibles y nativos de Kubernetes. Por lo tanto, no hay razón para no utilizarlos. Además, asegúrate de implementar RBAC adecuado para los secretos también, para que no todos en tu organización tengan acceso a los secretos. Porque no creo que tengas que exponer secretos a todos los que tienen acceso al clúster.

Lo siguiente sería mantener Kubernetes actualizado. Al igual que cualquier otro software, Kubernetes también tiene errores y problemas y CVEs. Y de vez en cuando, puede haber un error de alta gravedad que requiera un CVE. Como, por ejemplo, problemas relacionados con la seguridad de la memoria. Por lo tanto, es una excelente idea mantener actualizada la versión de Kubernetes tanto para el servidor como para el cliente CLI. Puedes consultar el sitio web de información de seguridad y divulgación de Kubernetes para ver si hay errores de seguridad conocidos para tu versión de Kubernetes. Si estás utilizando un clúster administrado, debería ser bastante fácil de actualizar. Y para instalaciones locales, hay herramientas como Kops, Kubadmin, y demás. Estas herramientas facilitan la actualización de tus clústeres locales.

Lo siguiente sería restringir el acceso de administrador. Kubelet es el agente primario del nodo que se ejecuta en cada nodo. Y por defecto, los puntos finales HTTP de Kubelet no son seguros. Esto podría permitir un acceso no deseado y, por lo tanto, debería restringirse. Además, cuando alguien tiene acceso a un clúster de Kubernetes, puede acceder al servidor de API de Kubernetes y también puede hacer SSH en los nodos del clúster. Esto tampoco es muy seguro. Para limitar el acceso a los nodos, el acceso al clúster debe limitarse tanto como sea posible. Desactiva el acceso SSH para usuarios no administradores. Asegura tu servidor de API utilizando OIDC y RBAC, como vimos anteriormente, para que solo los usuarios autenticados con roles suficientes puedan acceder a la API.

Lo siguiente sería controlar el tráfico entre pods y clústeres. Por lo general, los pods dentro del mismo clúster podrán comunicarse entre sí. Y si tienes varios clústeres en la misma red, también puede haber tráfico entre estos clústeres. Por lo tanto, no dejes todo esto abierto, ya que aumentaría la superficie de ataque. Y podría llevar a un clúster comprometido cuando otro en la red se vea afectado. Utiliza políticas de red de Kubernetes para controlar el tráfico entre pods y clústeres y permite solo el tráfico mínimo necesario, para que incluso si se compromete un clúster o un contenedor, no termines comprometiendo todo el clúster o tu red. Lo siguiente sería, esto también es un poco similar, así que lo siguiente sería aislar las cargas de trabajo por espacio de nombres.

6. Securing Workloads and Containers

Short description:

Aislar las cargas de trabajo en diferentes espacios de nombres. Establecer límites de recursos a nivel de espacio de nombres. Monitorear y auditar tus clústeres. Seguir las mejores prácticas de infraestructura. Asegurar los contenedores ejecutándolos como usuarios no root.

Así que no ejecutes todas tus cargas de trabajo en un solo espacio de nombres. Aislar las cargas de trabajo en diferentes espacios de nombres según las necesidades comerciales es más seguro y también es más fácil de administrar con RBAC. De esta manera, puedes ajustar aún más RBAC para permitir que los usuarios accedan solo a lo que necesitan ver. También puedes usar políticas de red de Kubernetes para aislar el tráfico entre espacios de nombres si corresponde y si es necesario. Aislar tus cargas de trabajo con diferentes espacios de nombres siempre es una buena idea.

Al asegurar las API y el propio clúster, también es esencial establecer límites de recursos en cuanto a cuánta CPU, memoria y espacio de disco persistente se utiliza en los espacios de nombres y recursos. Esto protege tu clúster de ataques de denegación de servicio. Cuando un contenedor en particular utiliza todos los recursos, podría afectar y comprometer todo tu clúster. Por lo tanto, para evitar eso, utiliza cuotas de recursos y rangos de límites para establecer límites a nivel de espacio de nombres. Y también puedes usar solicitudes y límites a nivel de contenedor para establecer algunos límites también.

Finalmente, también es extremadamente importante monitorear y auditar tus clústeres. Habilita el registro de auditoría para el clúster y utiliza herramientas de monitoreo para vigilar el tráfico de red hacia, desde y dentro del clúster. El monitoreo se puede realizar utilizando herramientas de código abierto como Prometheus, Grafana o con herramientas propietarias. Es muy importante que monitorees este tráfico para poder prevenir violaciones antes de que ocurran. Puedes configurar alarmas y otras cosas si la herramienta lo admite para prevenir de manera proactiva cualquier violación de seguridad. Además, ten en cuenta estas mejores prácticas de infraestructura al asegurar un clúster de Kubernetes. Asegúrate de que toda la comunicación se realice a través de TLS. Protege etcd con firewall y cifrado TLS y restringe el acceso a él utilizando credenciales sólidas. Configura políticas de IAM, políticas de acceso de IAM en un entorno compatible como, ya sabes, AWS, GKE o Azure. Asegura el plano de control de Kubernetes, no lo dejes abierto. Rota tus credenciales de infraestructura con frecuencia. Y si estás utilizando una cloud o PaaS, restringe el acceso a la API de metadatos de la cloud porque PaaS como AWS, Azure, GCP proporcionan estas API de metadatos que podrían tener información que no deseas que sea pública. Así que asegurar los contenedores es tan importante como asegurar el clúster. Hasta ahora, vimos qué se puede hacer a nivel de clúster para asegurar la configuración de tu Kubernetes, pero también es muy importante que sigamos las mejores prácticas a nivel de contenedor. Entonces, veamos cuáles son. Así que no ejecutes tus contenedores como usuario root, ya que esto daría al contenedor acceso ilimitado al host. En caso de que un contenedor comprometido, esto daría al atacante acceso de root y ampliaría la superficie de ataque. Siempre ejecuta los contenedores utilizando un usuario no root para limitar el acceso y utiliza el usuario con los privilegios mínimos tanto como sea posible. Quiero decir, utiliza estos privilegios tanto como sea posible. Para los contenedores de Node.js específicamente, las imágenes base oficiales tienen un usuario con los privilegios mínimos llamado node.

7. Securing Container Images

Short description:

Utilizar un usuario no root. Utilizar imágenes base oficiales mínimas y actualizadas. Eliminar dependencias, paquetes y herramientas de depuración no deseadas. Utilizar imágenes verificadas oficialmente y registros confiables. Verificar el editor de la imagen.

Entonces, podemos usar eso en lugar de root para mayor seguridad. A continuación, sería utilizar imágenes base oficiales mínimas y actualizadas. Por lo tanto, eliminar todas las dependencias, paquetes y herramientas de depuración no deseadas de la imagen, ya que la hará más segura, reducirá la superficie de ataque y también hará que la imagen sea más liviana. Y asegúrate de utilizar imágenes verificadas oficialmente para software popular y preferir versiones LTS cuando sea posible ya que tendrán parches y actualizaciones de seguridad más prolongados. Y finalmente, utilizar un registro confiable para imágenes no oficiales o para imágenes no oficiales, incluso considerar construir las imágenes desde el código fuente propio y alojarlas en tus registros privados. Y si estás utilizando registros de terceros, siempre verifica el editor de la imagen y asegúrate de que sea de un editor reputado. No confíes en todos los registros o editores que encuentres.

8. Securing Containers and Images

Short description:

Evitar cargar módulos de kernel no deseados en los contenedores. Habilitar el escaneo de imágenes de contenedor en tu fase de CACD. Utilizar Docker Bench for Security para auditar tus imágenes personalizadas.

A continuación, sería evitar cargar módulos de kernel no deseados en los contenedores, especialmente durante el desarrollo. Podría terminar usando más de los kernels de Linux subyacentes con fines de depuración o pruebas. Pero para producción, asegúrate de no cargar ningún módulo de kernel no deseado. Esto se puede restringir utilizando reglas en ETCModProb o desinstalando los módulos no deseados del propio nodo. Esto reduce las superficies de ataque y también reduce el uso de recursos de ese contenedor en particular. A continuación, habilita el escaneo de imágenes de contenedor en tu fase de CACD. Esto te ayudará a detectar vulnerabilidades conocidas antes de que se conviertan en un vector de ataque. Puedes utilizar herramientas de código abierto como Clio o Anchor para esto, o herramientas comerciales como Deluxe o Acid. Estas son bastante fáciles de configurar y admiten la mayoría de las soluciones de CACD de forma predeterminada. Otra buena práctica para los contenedores sería utilizar Docker Bench for Security para auditar tus imágenes de contenedor personalizadas y seguir las mejores prácticas de seguridad. Por lo tanto, si estás construyendo imágenes de contenedor para tu aplicación, es una buena idea ejecutarlas a través de Docker Bench for Security para asegurarte de que estás siguiendo todas las mejores prácticas de seguridad y descubrir prácticas adicionales de seguridad que puedas implementar para tu contenedor en particular. Es una excelente herramienta para garantizar que las imágenes personalizadas que construyes para producción sigan todas las mejores prácticas posibles.

9. Securing Node.js Containers in Kubernetes

Short description:

Utiliza Pod Security Admission para limitar el acceso del contenedor al host. Instala solo dependencias de producción. Configura Node en modo de producción. Finaliza las aplicaciones de forma segura utilizando un sistema de inicio como dump init. Utiliza un archivo Docker Ignore para ignorar archivos sensibles. Ponte en contacto conmigo a través de Twitter para obtener más contenido.

Otra buena práctica para los contenedores sería utilizar Pod Security Admission. Esta es la sucesora de Pod Security Policies. A partir de la versión 1.21 de Kubernetes, las Pod Security Policies se duplican y la sucesora es Pod Security Admission, por lo que puedes utilizar este módulo para limitar el acceso del contenedor al host. Esto ayudará a reducir la superficie de ataque y también ayudará a prevenir la escalada de privilegios en caso de que un contenedor sea comprometido.

Y ya que estamos hablando de asegurar clústeres de Kubernetes en un ecosistema de JavaScript, hay algunas cosas específicas de Node.js que debes tener en cuenta al asegurar tus contenedores de Node.js que se ejecutan en Kubernetes. Solo instala dependencias de producción. En tus imágenes, cuando estés instalando una dependencia de producción, asegúrate de pasar la bandera de producción para no terminar instalando dependencias de desarrollo u otras dependencias que no sean de producción ya que esto reduciría la superficie de ataque. Optimiza para producción configurando Node en modo de producción. Las aplicaciones de Node.js tienen algunas optimizaciones cuando se ejecutan en modo de producción y son mucho más seguras. Finaliza las aplicaciones de forma segura utilizando un sistema de inicio como dump init. En su mayoría, solo ejecutamos Node server.js o Node nombreArchivo.js, pero eso no es ideal. En caso de que la aplicación se bloquee, las cosas no se limpian, la aplicación no se finaliza correctamente, por lo que utiliza un sistema como dump init para que todas las señales de tu host se transmitan correctamente a la aplicación misma. Y finalmente, utiliza un archivo Docker Ignore para ignorar archivos sensibles como .n, .npmrc, etc., porque estos archivos contendrán información sensible como contraseñas o tokens, y no hay razón para exponer eso al contenedor, lo que también podría terminar en dominios públicos si son contenedores públicos.

Eso es todo, amigos. Espero que la charla haya valido la pena y gracias por asistir. Puedes ponerte en contacto conmigo a través de Twitter y visita mi sitio web para obtener más contenido. Gracias.

10. Métodos de autenticación en Kubernetes

Short description:

Los tokens son el mecanismo de autenticación más popular para los clústeres de Kubernetes, con un 63% de usuarios que los utilizan. OIDC también está ganando popularidad, ya que proporciona una opción más segura. La autenticación básica, utilizando nombre de usuario y contraseña, ya no se utiliza ampliamente. Los tokens son suficientes para equipos más pequeños, pero para organizaciones más grandes y aquellas que implementan RBAC, se recomienda OIDC.

Entonces, la pregunta fue, ¿qué tipo de autenticación utilizas para tus clústeres de Kubernetes? Bueno, tenemos un gran ganador, y creo que esto no es una sorpresa con un 63% de tokens. Sí, definitivamente. ¿Esperabas una victoria tan abrumadora? Sí, esto es algo que esperaba. Porque eso es lo que la mayoría de las personas haría de forma predeterminada. Estoy bastante sorprendido por la cantidad que tiene OIDC. ¿Sabemos cuántos votos hay en total? No puedo ver eso, pero no, solo vemos porcentajes, sí. De acuerdo. Porque no esperaba OIDC. No, está bien. Sería la forma más segura, por supuesto. Así que está bien. Está creciendo. Pero, sí, es... ¿Perdón? Está creciendo, sí. De 16 a 19. Sí. Así que, sí, definitivamente no es una sorpresa que la gente use tokens como el mecanismo de autenticación predeterminado, porque en la mayoría de las configuraciones, también es el predeterminado, así que tiene sentido. Así que no creo que mucha gente cambie esto a menos que tenga requisitos específicos y dependiendo de su equipo y demás, pero sí, eso es interesante, definitivamente.

Oh, está creciendo. Creciendo de nuevo. Oh, súper rápido. E incluso 0% para autenticación básica. Así que supongo que eso sería solo nombre de usuario y contraseña. Sí, sí, definitivamente. Esa es una buena tendencia, sin duda. Pero, sí. Quiero decir, los tokens no están tan mal. Pero, sí, para organizaciones más grandes, para equipos más pequeños, creo que los tokens están perfectamente bien. No necesitas OADC para todos. Pero si estás en un equipo más grande donde hay mucha rotación, y especialmente si estás tratando de hacer R-back, lo cual debe reflejar la composición de tu organización, y demás, entonces creo que OADC es la mejor elección.

11. OADC como mecanismo de autenticación seguro y flexible

Short description:

OADC es el mecanismo de autenticación más seguro y flexible para Kubernetes. Facilita el proceso de incorporación al permitir agregar y eliminar usuarios fácilmente sin afectar la configuración de Kubernetes. OADC y RBAC juntos proporcionan un control de acceso y autorización granular, lo que lo hace seguro y flexible para organizaciones más grandes. Gracias.

De lo contrario, es demasiado complicado administrar tokens todo el tiempo y cosas así. Sí. Creo que deberíamos seguir hablando durante unos cinco o diez minutos, y luego OADC será el ganador, ya que está creciendo y creciendo. Probablemente. Sí. Justo ahí.

Pasemos a las preguntas reales de la audiencia. La primera, ¿qué opinas de que OADC es el mecanismo de autenticación más seguro y flexible para Kubernetes? ¿Cómo facilita el proceso de incorporación? Sí, eso es algo de lo que estaba hablando. Creo que el aspecto más agradable de OADC, aparte de la seguridad y todo eso, es la flexibilidad, porque una vez que hayas configurado tu clúster para la autenticación de OADC, y una vez que hayas establecido eso, agregar nuevos usuarios y eliminarlos se vuelve muy fácil, porque no vas a guardar nada en la computadora de un usuario, porque con la autenticación basada en certificados, aún necesitas tener esos tokens y esos certificados en tu computadora portátil. Tienes que hacer esa autenticación, tienes que mantenerla. Y si quieres eliminar a alguien del acceso al clúster, tendrías que asegurarte de que lo hayan eliminado, o tendrías que cambiar tus credenciales y cosas así. Así que eso se vuelve muy molesto. Solía trabajar en una empresa donde hacíamos mucho DevOps, no éramos un equipo enorme. Éramos como 6-7 personas, pero aún así era molesto cada vez que había un nuevo miembro en el equipo o cuando alguien se iba, tenías que asegurarte de que todo eso se borrara y cosas así. Entonces, OADC hace que eso sea extremadamente flexible porque no tienes que tocar la configuración de tu Kubernetes en absoluto. Puedes hacer todo desde la administración de usuarios de OADC, puedes agregar nuevos usuarios, puedes eliminarlos. Simplemente se traduce en tu acceso. Entonces, si alguien es eliminado, ya no tendrán acceso, porque puedes hacerlo desde tu proveedor de autenticación o desde la propia aplicación de OADC. Entonces, eso lo hace extremadamente flexible, especialmente para organizaciones más grandes, donde habrá cambios en el equipo o si vas a tener rotación. Y también facilita RBAC. Porque con OADC y RBAC juntos se vuelve tan flexible que puedes gestionar el acceso y la autorización especialmente a un nivel muy granular. Puedes reflejar eso en función de cómo esté configurada tu empresa. Entonces, lo hace muy seguro y extremadamente flexible. Sí, eso es todo. Gracias.

Pregunta de CC Miller. Oh, espera, lo siento, eso no fue una pregunta. Eso fue una nota sobre la encuesta. Pero él no ha hecho una pregunta. Si estás trabajando con alguien que dice, ¿por qué molestarse, tenemos seguridad en la aplicación?

12. Importancia de asegurar el clúster de Kubernetes

Short description:

Asegurar tu clúster de Kubernetes es más importante que la seguridad de tu aplicación porque es la llave del reino. Puedes acceder a todo. Puedes acceder a la base de datos desde allí dependiendo de tu configuración. Puedes hacer mucho si tienes acceso a tu clúster de Kubernetes.

¿Cuál es tu respuesta a eso? Lo siento, ¿puedes repetir la pregunta de nuevo? Si estás trabajando con alguien que dice, ¿por qué molestarse, tenemos seguridad en la aplicación, entonces, ¿cuál es tu respuesta a eso? Eso es algo completamente diferente. La seguridad en la aplicación es la autenticación o lo que sea para tus aplicaciones, pero si tu clúster no está seguro, si cualquiera puede acceder a tu clúster, entonces estás en una situación muy mala porque no importa si tu aplicación tiene seguridad o no. Si puedo acceder a tu clúster, si puedo hacer SSH en tu clúster, puedo hacer cualquier cosa. No importa si tu aplicación está segura o no. Primero debes asegurar tu clúster. Un clúster de Kubernetes es equivalente a tu infraestructura. No tendrías tu infraestructura sin seguridad porque si tu aplicación está segura. Diría que asegurar tu clúster de Kubernetes es más importante que la seguridad de tu aplicación porque es la llave del reino. Puedes acceder a todo. Puedes acceder a la base de datos desde allí dependiendo de tu configuración. Puedes hacer mucho si tienes acceso a tu clúster de Kubernetes. Espero que para CC Miller no tengas realmente a alguien en el equipo que no le importe la seguridad. Sí. Estaría muy feliz si alguien dice eso. Oremos para que no sea un escenario real.

13. Mecanismos de seguridad de Kubernetes basados en la nube

Short description:

Para clústeres de Kubernetes basados en la nube como AWS, AKS o GKE, puedes usar OADC para la seguridad. Proveedores como Google ofrecen su propio OADC o puedes usar proveedores de terceros. También hay opciones adicionales de autenticación, como el mecanismo de autenticación personalizado de Google. Se recomienda OADC por su flexibilidad, pero los equipos más pequeños pueden usar el mecanismo de autenticación predeterminado proporcionado por el proveedor de la nube. Evita usar autenticación básica.

La siguiente pregunta es de Ravi. ¿Qué hay de los mecanismos de seguridad para clústeres de Kubernetes basados en la nube? Para los basados en la nube, por ejemplo, si estás hablando de AWS o AKS o GKE, básicamente puedes usar OADC con cualquiera de ellos. Incluso todos ellos facilitan la configuración de los proveedores de OADC. Algunos de ellos proporcionan los suyos propios. Por ejemplo, con Google, incluso puedes usar Google OADC o puedes usar un proveedor de terceros como Octa o incluso Key Clause o cualquier otro. Lo que prefieras. Proporcionan mecanismos para integrar y facilitar. Algunos de ellos también proporcionan formas adicionales de autenticación porque Kubernetes también te permite, ahí es donde entra la otra cosa. Puedes agregar otras formas de autenticación como en GCP, por ejemplo en GCP, agregan su propio mecanismo de autenticación cuando configuras tus clústeres. De forma predeterminada, es una especie de mecanismo de token, pero lo hacen de una manera muy... No diré que es transparente, pero es fácil de configurar. No tienes que configurar todo manualmente. Puedes iniciar sesión a través de tu consola de Google, pero se traduce en una especie de autenticación de token, pero es una autenticación personalizada. Si observas cómo funciona, es personalizado. No es la autenticación de token predeterminada, sino una autenticación personalizada que han creado. Con todos estos proveedores, también puedes usar OADC. Aún así, diría que OADC es el mejor mecanismo de autenticación incluso con proveedores de la nube, si deseas flexibilidad, pero si eres un equipo pequeño, de una o dos personas, entonces probablemente no importa. Puedes usar el mecanismo de autenticación predeterminado proporcionado por el proveedor de la nube. Por favor, no uses autenticación básica. Cualquier cosa que no sea autenticación básica está bien, para equipos más pequeños. Todos estos mecanismos deberían funcionar de la misma manera en los proveedores de la nube.

14. Gestión del tamaño del equipo y la rotación

Short description:

El punto de inflexión en el tamaño del equipo depende de factores como la estabilidad del equipo, la frecuencia de los cambios y el tamaño de la empresa. Para equipos estables sin cambios o cambios mínimos, el tamaño del equipo puede no ser un problema significativo. Sin embargo, para equipos con cambios constantes o empresas más grandes, la gestión del tamaño del equipo se vuelve más importante. En startups o equipos pequeños, la gestión manual de la rotación del equipo aún puede ser factible. La decisión depende en última instancia del equilibrio entre el esfuerzo manual y el establecimiento de procesos automatizados.

¿Cuál dirías que es el punto de inflexión en el tamaño del equipo, o depende de cuántos cambios haya en tu equipo? Sí, realmente depende. Si tienes un equipo estable de 10 personas que no va a cambiar durante un tiempo, entonces probablemente no sea un gran problema, Pero si va a haber cambios constantes, entonces creo que es una buena idea y también depende del tamaño de tu empresa. Si estás en empresas, entonces tiene mucho sentido seguir este camino, porque se adapta realmente a la forma en que operan las empresas. Pero si estás en una startup o en equipos pequeños, entonces probablemente no sea un problema tan grande porque aún puedes gestionar la rotación manualmente, porque espero que no suceda todos los días o algo así. Pero estuve en un equipo pequeño donde fue un poco molesto para nosotros, pero no fue un factor decisivo, pero aún así fue molesto. Así que realmente depende. Siempre depende. Supongo que depende de cuánto tiempo dediques a hacer cosas manualmente en comparación con configurarlo, ¿verdad? Sí, exactamente. Porque es como hacer clic e instalar, y ya está hecho.

QnA

RBAC y otros modos de autenticación

Short description:

RBAC se puede utilizar con otros modos de autenticación como la autenticación de nodo o webhook, proporcionando más flexibilidad y seguridad. CC Miller comentó sobre su pregunta anterior, destacando la importancia de tener miembros del equipo que prioricen la seguridad. Lidiar con diferentes filosofías de seguridad es parte de trabajar juntos. Jessica tenía una pregunta sobre las limitaciones de una implementación de código abierto de Sansibar, pero el ponente no está familiarizado con Sansibar y no pudo proporcionar una respuesta.

Siguiente pregunta, ¿se puede utilizar RBAC junto con otros modos de autenticación? Sí, definitivamente. RBAC se puede utilizar con otros modos. Por ejemplo, es muy común ver RBAC siendo utilizado con la autenticación de nodo. Entonces ABAC no se duplica exactamente, pero es como si no se estuviera eliminando gradualmente, pero el equipo de Kubernetes prefiere RBAC, y no están destinando recursos para desarrollar aún más ABAC. Así que está en un modo pseudo duplicado, diría yo. Pero los otros mecanismos como la autenticación de nodo o webhook, se pueden utilizar con RBAC, y a veces las combinaciones pueden hacer que tu autorización sea aún más flexible o más segura según tus necesidades. Pero sí, se pueden utilizar juntos. Muy bien. Gracias. Entonces CC Miller comentó sobre su pregunta anterior. Lo hice hace mucho tiempo, y como era de esperar, ya no es miembro del equipo. Así que eso probablemente se refiere a nuestro comentario de que esperamos que no tengas un miembro del equipo que no se preocupe por la seguridad. Sí, bueno, felicitaciones a CC Miller. Me alegra escuchar eso. Sí, puedo imaginar que es una lucha si tienes filosofías tan diferentes sobre la seguridad para trabajar con alguien en un equipo. También es una historia interesante ver cómo resultó eso o, bueno, tal vez no resultó. Pero sí, eso también es parte de trabajar juntos, ¿verdad? Lidiar con personas que tienen diferentes filosofías. Lo cual es interesante, seamos honestos. Por el momento no hay ninguna pregunta, pero tenemos a Jessica escribiendo algo. Ya no. Ella se decidió. No quería hacer una pregunta. De acuerdo. Pero eso es un buen puente hacia la siguiente parte porque Dipu va a ir a su sala de ponentes en Spatial Chat ahora. Así que si quieres... Oh, llegó la pregunta de Jessica. ¿Hay alguna limitación al optar por una implementación de código abierto de Sansibar? ¿Perdón? ¿De qué? De Sansibar. ¿Qué? ¿Qué es Sansibar? No lo sé. Sé que es como una isla, creo, pero no creo que esté hablando de una isla. Realmente no entiendo la pregunta.

Conclusion and Q&A

Short description:

Jessica responderá la pregunta sobre Sansibar en el chat espacial. Gracias, Deepu, por unirte a nosotros y a todos los que participaron y hicieron preguntas. Espero que hayas encontrado útil la charla.

Bueno, Jessica, entonces te invito a responder eso para que aún podamos repasar esta pregunta. Ella está escribiendo. Así que démosle un minuto para escribir. Busca en Google Sansibar. Oh sí. Y ella quiere discutirlo en el chat espacial. Así que hagámoslo porque no nos queda mucho tiempo.

Entonces, Deepu, muchas gracias por unirte a nosotros. Ha sido muy divertido tenerte aquí. Sí, gracias por tenerme. Y gracias a todos los que se unieron, y gracias por todas las preguntas. Espero que la charla haya sido útil y hayas podido sacar algo de esto. Así que, gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Elevando Monorepos con los Espacios de Trabajo de npm
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Elevando Monorepos con los Espacios de Trabajo de npm
Top Content
NPM workspaces help manage multiple nested packages within a single top-level package, improving since the release of NPM CLI 7.0. You can easily add dependencies to workspaces and handle duplications. Running scripts and orchestration in a monorepo is made easier with NPM workspaces. The npm pkg command is useful for setting and retrieving keys and values from package.json files. NPM workspaces offer benefits compared to Lerna and future plans include better workspace linking and adding missing features.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced 2023React Advanced 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Automatizando Todo el Código y las Pruebas con GitHub Actions
React Advanced 2021React Advanced 2021
19 min
Automatizando Todo el Código y las Pruebas con GitHub Actions
Top Content
We will learn how to automate code and testing with GitHub Actions, including linting, formatting, testing, and deployments. Automating deployments with scripts and Git hooks can help avoid mistakes. Popular CI-CD frameworks like Jenkins offer powerful orchestration but can be challenging to work with. GitHub Actions are flexible and approachable, allowing for environment setup, testing, deployment, and custom actions. A custom AppleTools Eyes GitHub action simplifies visual testing. Other examples include automating content reminders for sharing old content and tutorials.
Ajustando DevOps para las Personas sobre la Perfección
DevOps.js Conf 2022DevOps.js Conf 2022
33 min
Ajustando DevOps para las Personas sobre la Perfección
Top Content
DevOps is a journey that varies for each company, and remote work makes transformation challenging. Pull requests can be frustrating and slow, but success stories like Mateo Colia's company show the benefits of deploying every day. Challenges with tools and vulnerabilities require careful consideration and prioritization. Investing in documentation and people is important for efficient workflows and team growth. Trust is more important than excessive control when deploying to production.
El Nuevo Router de Aplicaciones Next.js
React Summit 2023React Summit 2023
27 min
El Nuevo Router de Aplicaciones Next.js
Top Content
Today's Talk is about the Next.js App Router, which has evolved over the years and is now a core feature of Next.js. The Talk covers topics such as adding components, fetching remote data, and exploring layouts. It also discusses submitting form data, simplifying code, and reusing components. The App Router allows for coexistence with the existing pages router and enables data fetching at the layout level using React Server Components.

Workshops on related topic

AI para Desarrolladores de React
React Advanced 2024React Advanced 2024
142 min
AI para Desarrolladores de React
Top Content
Featured Workshop
Eve Porcello
Eve Porcello
El conocimiento de las herramientas de AI es fundamental para preparar el futuro de las carreras de los desarrolladores de React, y la suite de herramientas de AI de Vercel es una vía de acceso accesible. En este curso, examinaremos más de cerca el Vercel AI SDK y cómo esto puede ayudar a los desarrolladores de React a construir interfaces de transmisión con JavaScript y Next.js. También incorporaremos APIs de terceros adicionales para construir y desplegar una aplicación de visualización de música.
Temas:- Creación de un Proyecto de React con Next.js- Elección de un LLM- Personalización de Interfaces de Transmisión- Construcción de Rutas- Creación y Generación de Componentes - Uso de Hooks (useChat, useCompletion, useActions, etc)
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
Top Content
Featured WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
React Summit 2025React Summit 2025
91 min
El Viaje Desde el Frontend con React al Desarrollo Fullstack Con Next.js
Featured Workshop
Eric Burel
Eric Burel
Únete a nosotros en el viaje desde el desarrollo frontend con React hasta el desarrollo fullstack con Next.js. Durante esta masterclass, seguiremos el tutorial oficial de Next.js Learn con Eric Burel, entrenador profesional y autor de NextPatterns.dev. Juntos, configuraremos un sitio web con Next.js y exploraremos sus características del lado del servidor para construir aplicaciones de alto rendimiento.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
Workshop
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
Top Content
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.