Evaristo R

Técnico Administrador de Sistemas

Piloto de RPAS certificado por AESA/EASA - A1/A3 - A2 - STS

Profesor e-Learning

Evaristo R

Técnico Administrador de Sistemas

Piloto de RPAS certificado por AESA/EASA - A1/A3 - A2 - STS

Profesor e-Learning

Blog Post

Lambda MFA Checker – AWS – Parte 1

24 abril, 2019 AWS
Lambda MFA Checker – AWS – Parte 1

El uso de la autenticación multi-factor (MFA) se hace imprescindible en AWS, pues los daños/costes de un acceso no autorizado a nuestra consola de AWS podrían ser catastróficos, sobre todo si el usuario afectado tuviera permisos de administración.
Por tanto, la activación del MFA es el primer paso que todo usuario debería de seguir nada más tuviera acceso a la consola de AWS; pero no siempre se sigue esta buena práctica, siendo una problema de seguridad, más aún si hablamos de una organización grande, en la que se complica el seguimiento de: «qué usuarios tienen MFA activado y cuales no».
Como solución a este caso, en este post, detallaré la configuración en AWS, para poner en marcha una Lambda que:
  • Liste los usuarios de IAM.
  • Haga un array de los usuarios que no tienen MFA, calculando además el tiempo de antigüedad de cada uno.
  • Envíe una notificación mediante SNS del todal de usuarios que no tienen MFA.
  • Envíe otra notificación mediante SNS de los usuarios que no tienen MFA y que además superen N días de antigüedad. (Para tomar las acciones que se estimen necesarias con dichos usuarios)

Creación de un Rol

Políticas

Añadimos las siguientes políticas
  • IAMReadOnlyAccess (Para poder listar los usuarios de IAM)
  • CloudWatchLogsFullAccess (Para poder escribir los logs)
  • AmazonSNSFullAccess (Para poder hacer uso de SNS)

Tema SNS

Le damos a «Crear un Tema», elegimos un nombre y completamos la operación dándole a «Crear un tema».

Veremos el ARN, más tarde tendremos que acudir a él.

Ahora crearemos una suscripción.

Deberemos de confirmar la suscripción mediante el e-mail que nos llegará.

Una vez hecho esto podríamos enviar un mensaje de prueba, para comprobar la correcta recepción de éste.

Lambda

Ahora crearemos la función Lambda

A la que le asignaremos el Rol que creamos en pasos anteriores

Y aquí es donde copiaremos nuestro script, borrando el código que ya hay:

Script V1 (en el siguiente post V2)

Sin olvidarnos de sustituir donde pone:
<<TU ARN TOPIC SNS AQUÍ>>’
sustituimos por el ARN del tema que creamos anteriormente en SNS.

Como en este caso concreto de ejemplo, tengo dos usuarios de prueba recién creados, el tiempo de ejecución del script no resultó ser un problema; pero en caso de tener gran cantidad de usuarios de IAM,  deberíamos de ampliar el tiempo de espera, si nos encontrásemos con errores de «Tiempo de ejecución máximo excedido»

Si le damos a «Guardar» y luego a «Probar» nos aparecerá «Configurar un evento de prueba»

Yo lo dejé por defecto, y le dí a «Crear»

Ahora sí, le damos a «Probar» y si hicimos todo bien, veremos como recibimos en el correo electrónico con el que nos suscribimos al tema SNS, el esperado mensaje:
Nos ha llegado solo el mensaje del total de usuarios que no tienen activado MFA.
Ahora configuraremos la lambda para que el Número máximo de días sea 10 días, en vez de 120 días
Volvemos a darle a «Probar», y ahora sí, recibimos el mensaje informándonos de los usuarios que han superado el límite de días y siguen con el MFA deshabilitado.



y hasta aquí este post; hemos entrado en calor! Espero que haya resultado de interés; en el próximo post, haremos que la Lambda actúe ante una acción desencadenante, y además mejoraremos el código. Ir a Parte 2

Saludos!!!

PD: en esta ocasión he utilizado https://www.draw.io/ para diseñar el diagrama. Buenas sensaciones, como Lucidchart e incluso mejores.

Taggs:
2 Comments
  • Klaussius 8:31 pm 10 junio, 2019 Responder

    Fantástico trabajo, Evaristo 🙂
    ¡Has demostrado que eres un profesional enorme y espero que tengas la oportunidad de dar grandes pasos muy pronto!

    • evaristo 9:44 am 11 junio, 2019 Responder

      Muchísimas gracias por darme la oportunidad y poder comenzar esta nueva etapa!! 🙂

Write a comment

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. Si está interesado en leer el aviso de privacidad pinche aquí.

ACEPTAR
Aviso de cookies