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 2

2 mayo, 2019 AWS
Lambda MFA Checker – AWS – Parte 2

Mejora de la funcionalidad de MFA_Check

Este post es la continuación de la parte 1. He mejorado la funcionalidad del anterior script además de refactorizar el código. No soy ningún experto en Python, pero he intentado que esté más ordenado que antes, teniendo una sección de configuración, además de un switch para activar el modo DEBUG.

¿Qué ha cambiado?

  • La función Lambda envía automáticamente el email con las instrucciones MFA a los usuarios que no tienen MFA activado. Al administrador le llega un e-mail con la lista de usuarios que no tienen MFA activado, precisando también, cuáles de éstos supera además «n» de días de antigüedad.
    • Para ello ya no usaremos Amazon Simple Notification Service (SNS) sino Amazon Simple Email Service (SES)
  • Ahora filtraremos a los usuarios cuyo nombre de usuario sea una dirección de correo electrónico de nuestra organización. (Está pensado para detectar solo a los usuarios cuyo nombre es: «user@example.com» descartando a los usuarios programáticos como: «test»
  • Tenemos un switch que activa el modo DEBUG. Cuando éste está activado, nos llegarán todos los emails que tengan que enviarse a una dirección que definamos para el modo DEBUG.
Pero primero, vamos a ver como automatizar la ejecución de la Lambda que ya tenemos del anterior post. Nos interesa que se ejecute cada mes, por ejemplo, así que vamos a crear una regla en CloudWatch.

CloudWatch

Creamos una regla:

Utilizaremos expresiones Cron, en este caso le indicamos que se ejecute el primer día de cada mes a las 08:00.

  

Solo nos falta asociar esta regla con nuestra Lambda:



Todo listo, le ponemos un nombre y una descripción y ya tenemos la regla configurada.


Lambda

Si accedemos a la Lambda que creamos en el post anterior, veremos una novedad:


Observamos a la izquierda «CloudWatch Events», que es la regla que acabamos de crear. (También podríamos haber comenzado desde este panel, hubiese sido lo mismo solo que invirtiendo el orden, primero añadiendo el destino y luego la regla.)

Bien, como comentamos anteriormente, ya no vamos a usar SNS sino SES en su lugar. Necesitamos tocar un poco los permisos del rol con el que se ejecuta nuestra Lambda.

IAM

Crearemos una política para poder enviar e-mails mediante SES



Personalizamos la política JSON



Una vez creada la política vamos a:

Además eliminaremos la política del SNS, ya que ya no la necesitamos.

Y añadimos la nueva política creada anteriormente


Muy bien! A continuación vamos a configurar SES:

SES


Necesitamos verificar un e-mail:

Nos llegará un e-mail con un enlace al que deberemos de hacer click.

Entonces veremos lo siguiente:

Y si actualizamos, podremos ver como cambia el estado a «verified»

Si vamos a nuestra Lambda de nuevo, veremos el cambio:

Pues ya solo queda actualizar el código, con la nueva versión:

Script V2

Script V2

Atención, porque deberemos de configurarlo a nuestro gusto en la siguiente sección (eliminando los «<<>>»:

Una vez hecho esto, podremos darle a «Probar» y nos llegará el siguiente e-mail si todos los usuarios tienen habilitado MFA:

Y en el caso de que tengamos usuarios con el MFA no habilitado, nos llegará por un lado, el e-mail al administrador:

Esta captura es con los usuarios recién creados:

Y esta pasado un día, (Habiendo configurado como tope máximo 0 días en vez de 120 para esta prueba):

Y como además tenemos activado el modo DEBUG, nos llegarán tres e-mails, uno por cada usuario al que le debería de llegar:

Siendo estas, las instrucciones para el usuario, donde se le detallaría el procedimiento para habilitar MFA en su cuenta de AWS.

En el momento en el que desactiváramos el modo DEBUG los mensajes se enviarían a su destinatario correspondiente.

Recordar, si nos diera error por exceder el tiempo de procesamiento máximo , aumentaremos el tiempo de espera. En mi caso tarda 4 segundos, y si hay muchos usuarios 20 segundos.

Y esto es todo! Aquí concluye esta segunda parte. Si te perdiste la parte 1, puedes verla aquí.
Ha sido una buena toma de contacto con IAM,SNS, SES, CloudWatch y por supuesto con AWS Lambda, y espero que te haya resultado interesante.

Nos veremos en próximos post!

Taggs:
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