Consideraciones cuando utilizas MFA Delete usando AWS CLI

iaasgeek

Guillermo Ruiz

Posted on September 20, 2023

Consideraciones cuando utilizas MFA Delete usando AWS CLI

En el blog Garantizando la Integridad de los Registros en AWS vimos que para configurar la Eliminación con Autenticación de Múltiples Factores (MFA) había que tener varias puntos en cuenta. En esta entrada hablaremos de cada uno de ellos utilizando el ejemplo del rol de un Analista de seguridad encargado de auditar logs en buckets de S3:

1. Configuración inicial de MFA : Antes de poder activar la eliminación MFA para un bucket de S3, el usuario de AWS que realiza la configuración debe tener un dispositivo MFA asociado a su cuenta de usuario IAM y debe estar activado.

aws iam create-virtual-mfa-device --virtual-mfa-device-name "MFAForSecurityAnalyst"
Enter fullscreen mode Exit fullscreen mode

Asociar el dispositivo MFA al usuario:

aws iam enable-mfa-device --user-name SecurityAnalyst --serial-number arn:aws:iam::123456789012:mfa/MFAForSecurityAnalyst --authentication-code1 <code1> --authentication-code2 <code2>
Enter fullscreen mode Exit fullscreen mode

2. Versionado : MFA Delete está íntimamente ligado al versionado de S3. No puedes habilitar MFA Delete sin antes habilitar el versionado en el bucket. Además, una vez que el MFA Delete está habilitado, no puedes suspender el versionado; solo puedes detenerlo.

aws s3api put-bucket-versioning --bucket my-log-bucket --versioning-configuration Status=Enabled
Enter fullscreen mode Exit fullscreen mode

3. Costes : Al habilitar el versionado, se guardan todas las versiones de un objeto (incluidas todas las versiones de escritura y eliminación). Esto puede aumentar tus costes de almacenamiento en S3. Es recomendable revisar periódicamente los costes:

aws s3 ls s3://my-log-bucket --recursive --summarize
Enter fullscreen mode Exit fullscreen mode

4. Eliminación de objetos : Una vez que MFA Delete está habilitado, para eliminar un objeto o una versión del objeto, necesitas proporcionar la autenticación MFA. Es crucial entender esto para evitar confusiones o inconvenientes al intentar eliminar datos.

aws s3api delete-object --bucket my-log-bucket --key path/to/log.log --mfa "arn:aws:iam::123456789012:mfa/MFAForSecurityAnalyst <MFACode>"
Enter fullscreen mode Exit fullscreen mode

5. Cambios en la configuración : Después de que MFA Delete esté activo, cualquier cambio en la configuración del versionado del bucket (por ejemplo, intentar suspender el versionado o desactivar MFA Delete) requiere autenticación MFA. Si queremos desactivar MFA Delete (debes autenticarte con MFA):

aws s3api put-bucket-versioning --bucket my-log-bucket --versioning-configuration Status=Enabled,MFADelete=Disabled --mfa "arn:aws:iam::123456789012:mfa/MFAForSecurityAnalyst <MFACode>"
Enter fullscreen mode Exit fullscreen mode

6. Autenticación MFA y AWS CLI : No todos los interfaces de AWS admiten MFA. Si bien AWS CLI y el SDK de AWS lo soportan, la consola de administración de AWS no admite directamente MFA Delete (aunque sí puedes usar MFA para iniciar sesión).

7. Recuperación : Si pierdes acceso a tu dispositivo MFA y no tienes configuradas políticas de recuperación, puedes encontrarte en una situación en la que no puedas eliminar o modificar objetos en tu bucket.

8. Políticas de bucket y IAM : Si tienes políticas de IAM o políticas de bucket que denieguen acciones basadas en el estado de MFA del solicitante, asegúrate de que estas políticas estén correctamente configuradas para evitar bloqueos no deseados o acceso no autorizado.

9. Tiempo de expiración : El código MFA tiene un tiempo de validez corto. Si estás utilizando AWS CLI o algún SDK, asegúrate de ingresar el código MFA rápidamente después de obtenerlo de tu dispositivo.

10. Retrasos en la propagación : Puede haber un ligero retraso entre el momento en que activas MFA Delete y el momento en que la función esté completamente activa.

Conclusiones

Configurar la Eliminación con Autenticación de Múltiples Factores (MFA) en tu bucket de S3 es una medida potente para aumentar la seguridad, pero viene con sus particularidades. Primero, es esencial que ya tengas MFA configurado en tu cuenta IAM. Además, necesitas tener activado el versionado en tu bucket, y una vez que actives MFA Delete, no puedes simplemente pausarlo. Si bien esto puede incrementar tus costes de almacenamiento debido a las múltiples versiones de los objetos, dispones de una capa de seguridad adicional, pues necesitarás autenticarte para eliminar algo.

Y aunque puedes usar MFA Delete con AWS CLI y SDK, recuerda que la consola de AWS no lo soporta directamente. Hay que tener cuidado con las políticas de IAM y del bucket para garantizar quién y sobre qué se puede operar.

Por último, ten en cuenta que podría haber un pequeño retraso desde que activas MFA Delete hasta que esté completamente operativo.

Como veis, es un proceso que requiere tener en cuenta muchos factores, pero con una planificación cuidadosa, tendréis un refuerzo seguro.

💖 💪 🙅 🚩
iaasgeek
Guillermo Ruiz

Posted on September 20, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related