El término IAM es uno de los comunes que escucha en entornos nativos de la nube. Sin embargo, ¿qué hace un sistema así? Y si lo sabe, ¿cuánto tiempo le llevó comprender el propósito completo? Explicaré los conceptos principales detrás de esta enorme familia de software, pensando en el ingeniero ocupado.
Los fundamentos descritos aquí son independientes del proveedor. Aunque la mayor parte de mi experiencia se deriva de la implementación de AWS.
IAM significa Gestión de Acceso a la Identidad. Es un sistema complejo de entidades (humanos, aplicaciones, etc.) que solicitan acceso a un sistema, por un lado. Y también, existe un complejo conjunto jerárquico de reglas, para otorgar o denegar el acceso solicitado. Antes de continuar, a continuación se encuentran los principales términos que encontrará.
Su uso principal se encuentra en los ámbitos de la autenticación, la autorización, el acceso granular y la gobernanza. Veamos cuáles son esas cosas:
¿Sois una empresa de 1-3 personas? Entonces, configurar una solución IAM completa es excesivo y una carga para mantener. Pero si es más que eso o está planeando escalar, entonces debería comenzar a considerarlo.
Creo que puede ver los beneficios de una solución IAM. Veamos cuáles son algunos de los problemas comunes que enfrentan las organizaciones en su ausencia.
¿Has oído hablar de casos en los que un empleado tuvo más acceso del que debería? Y además, ¿nadie lo sabía? Esto se puede evitar con una solución de IAM configurada correctamente.
Con una solución IAM configurada correctamente, esto es cuestión de unos pocos clics. Es decir, configure los usuarios, agréguelos a los grupos de IAM que usan sus equipos. Y eso es todo.
Pero sin eso? Debe realizar todas las configuraciones de permisos desde cero. Es posible que tenga un usuario de referencia para "copiar". Pero, ¿necesitamos todos los permisos que tiene este usuario de referencia? ¿Queremos tener un manejo especial para los usuarios que tienen menos de 6 meses en la empresa? ¿El usuario de referencia tiene permisos de superusuario que no deberían asignarse accidentalmente al nuevo empleado?
Aquí tiene problemas de naturaleza similar al "caso de nuevo empleado". Pero también debe cambiar la contraseña de todas las cuentas que potencialmente usaron. Esto puede volverse feo muy rápido, sin mencionar los efectos secundarios que tiene en otros miembros del equipo.
Por ejemplo, uno tendrá que actualizar todas las ocurrencias de contraseñas en cada baja. En cada script y aplicación. ¿Qué pasa si tienes un cambio de equipo 2-3 veces al mes? ¿Qué tan productivo será esto?
Por comodidad, me refiero a tareas como restablecer una contraseña o volver a habilitar una cuenta que estaba bloqueada. Las soluciones de IAM de primer nivel tienen una manera de resolver estos problemas rápidamente y sin muchas molestias.
A continuación se presentan algunas de las mejores prácticas que he derivado. Está lejos de ser una lista completa, es solo mi experiencia personal. Sin embargo, los he visto en más de un equipo, por lo que probablemente sean lo suficientemente buenos.
En un escenario del mundo real, no desea que todos los usuarios tengan acceso ilimitado a la cuenta. Idealmente, nadie debería tener (aparte del propietario de la cuenta). Si Jack está trabajando en la supervisión de registros, debería tener acceso de lectura a esa herramienta. No deberían poder reiniciar un servicio. O el equipo de contabilidad solo debe ver la información de facturación.
Saber cómo se establecen las reglas de escalabilidad de las máquinas virtuales no ayudará a nadie.
Prefiera un solo grupo a varios usuarios cuando tenga la opción. Los grupos hacen que la administración sea exponencialmente más fácil.
Cuando tenga la opción, prefiera asignar un rol a un usuario, en lugar de crear un nuevo usuario. Por ejemplo, no cree un usuario administrador y comparta la contraseña entre 10 personas. Crea un rol de administrador y asígnalo a quien lo necesite por un tiempo limitado.
Es fácil cometer errores o realizar acciones maliciosas. Como mínimo, una empresa debe auditar que solo las personas adecuadas tengan acceso y esto sea al nivel mínimo.
También puede enviar un correo electrónico a un determinado equipo cuando ocurre una acción sospechosa. Por ejemplo, asignar una función de administrador a una nueva contratación.
Si la solución de IAM lo permite, agregue límites a su ecosistema. Copiando de la documentación de Amazon (lo sé, lo prometí independiente del proveedor :))
Un límite de permisos es una característica avanzada para usar una política administrada para establecer los permisos máximos que una política basada en identidad puede otorgar a una entidad de IAM. El límite de permisos de una entidad le permite realizar solo las acciones permitidas tanto por sus políticas basadas en identidad como por sus límites de permisos.
En términos simples, puede definir los permisos "máximos" que se pueden asignar a cualquier persona. Por ejemplo, un usuario podrá, como máximo, ver los registros de la herramienta correspondiente y reiniciar un servicio. Si alguien intenta obtener un rol para crear una nueva máquina virtual, no se le permitirá.
Gracias por leer hasta aquí. Espero que haya disfrutado la introducción a las tecnologías IAM. Cualquier pregunta, por favor comuníquese.
También publicado aquí: https://perigk.github.io/post/iam-intro-wish-i-had/