IAM - Qué es y para qué sirve?

Identity and Access Managemente, es una herramienta que AWS pone a nuestra disposición para garantizar la seguridad de nuestra infraestructura y su contenido.

AWS IAM como bien dice su nombre, se trata de una herramienta para gestionar el acceso de los usuarios a los recursos de Amazon Web Services. Para entender el gran potencial que tiene esta herramienta deberemos conocer varios conceptos como son los usuarios, grupos, roles y políticas.

Los usuarios IAM

Son objetos de la cuenta que permiten a un usuario individual acceder al entorno AWS con un conjunto de credenciales.

Los permisos se pueden aplicar individualmente a un usuario, pero no es recomendable. Lo más idóneo es vincular cada usuario a un grupo IAM y, a este grupo sí, se le asignan los permisos para acceder a los recursos y objetos de AWS.

Los grupos IAM

Son objetos que permiten gestionar de manera eficiente los permisos y el acceso a sus recursos en AWS.

Es muy recomendable el uso de grupos IAM para gestionar los permisos y necesario en el caso de que haya un número considerable de usuarios con acceso a recursos AWS. Cada grupo abarca a distintos usuarios con los mismos permisos, en el caso de que no se asignen explícitamente permisos directamente a los usuarios. El usar grupos de IAM te permite tenerlo bien organizado y ahorrar tiempo, dado que en el caso de que tengas que añadir un nuevo usuario, la asignación de permisos para éste será cuestión de segundos, ya que solo deberás vincularlo al grupo apropiado.

Una buena práctica es crear un grupo para cada departamento (Admins, Developers, etc) dado que todos los integrantes de cada grupo deberán ejercer tareas similares dentro del entorno AWS.

Los roles de IAM

Tienen similitud a los grupos IAM aunque en lugar de proporcionar permisos a usuarios, los roles sirven para conceder permisos a las instancias en cuanto estas son creadas. De esta forma, las aplicaciones que corren en una instancia podrán utilizar estas credenciales para firmar las peticiones, por ejemplo, una aplicación que necesita tener acceso a un bucket de S3.

Medidas de seguridad para IAM

Autenticación Multifactor

AWS IAM te permite utilizar autenticación multifactor (MFA) para añadir una capa adicional de protección. Es recomendable para usuario IAM con muchos privilegios.

De esta forma, el usuario, aparte de introducir su usuario y contraseña, deberá realizar una segunda autenticación. Puede ser generada por un software o por un hardware, que puedes conseguir a través de AWS.

Políticas AWS

Son un documento donde se enumeran las acciones que un usuario, grupo o rol puede realizar sobre los recursos de AWS.

  • Son archivos en formato JSON
  • Por defecto, el permiso esta denegado (Deny by default)

11 Prácticas Recomendadas para IAM

  1. Crear usuarios individuales para cada persona que tenga acceso a recursos de AWS.
  2. Gestionar los permisos a través de los grupos.
  3. Conceder los permisos mínimos a cada grupo.
  4. Activar AWS CloudTrail para extraer los logs de todas las llamadas a la API que se han realizado.
  5. Configurar una política de contraseñas sólidas.
  6. Habilitar MFA (Autenticación multifactor) para los usuarios que tengan altos privilegios.
  7. Usar los roles IAM para las instancias de EC2.
  8. Usar roles IAM para el acceso compartido.
  9. Rotar las credenciales de seguridad con cierta regularidad.
  10. Utilizar condiciones en las políticas para restringir el acceso.
  11. No utiliza el usuario raíz. (ROOT)