Seguridad en AWS: Prácticas Esenciales y Gestión de Accesos
Imagina que eres responsable de proteger la infraestructura de una empresa tecnológica. AWS ofrece herramientas y prácticas que te permiten gestionar la seguridad de manera eficiente.
Sin embargo, para evitar errores y accesos no autorizados, es fundamental entender conceptos clave como el principio de mínimo privilegio, la gestión de usuarios root e IAM, y la habilitación de MFA.
Principio de Mínimo Privilegio (PoLP)
El principio de mínimo privilegio (PoLP) establece que cada usuario o sistema debe tener solo los permisos necesarios para realizar su tarea. Esto reduce riesgos, como errores humanos o accesos indebidos.
Ejemplo práctico:
Un desarrollador frontend no necesita acceso a la base de datos de producción. Limitar sus permisos protege los datos y minimiza riesgos.
Cómo aplicarlo en AWS:
Usa IAM (Identity and Access Management) para crear usuarios y roles con permisos específicos.
Define políticas personalizadas que limiten el acceso a recursos específicos.
Revisa y ajusta regularmente los permisos asignados.
Ahora reflexiona:
¿Realmente este usuario o sistema necesita acceso completo para realizar su tarea?
Usuario Root vs Usuario IAM
En AWS, existen dos tipos principales de usuarios: el usuario root y los usuarios IAM. Ambos tienen roles distintos y deben usarse de manera adecuada.
Usuario Root
El usuario root tiene acceso total a todos los servicios y recursos de la cuenta. Es extremadamente poderoso, pero su uso debe limitarse a tareas críticas.
Usos recomendados del usuario root:
Configuración inicial de la cuenta.
Configuración de métodos de pago.
Recuperación de la cuenta.
Usuarios IAM
IAM permite crear usuarios y roles con permisos específicos, asegurando que cada persona o sistema tenga acceso solo a lo que necesita.
Usos recomendados de usuarios IAM:
Administradores con permisos limitados.
Desarrolladores con acceso a servicios específicos.
Roles temporales para tareas específicas.
Buenas prácticas:
No uses el usuario root para tareas diarias.
Crea un usuario IAM con permisos administrativos para la gestión diaria.
Monitorea y ajusta los permisos de los usuarios IAM con herramientas como IAM Access Analyzer.
Ahora reflexiona:
¿Por qué es importante operar con usuarios IAM en lugar del usuario root?
Importancia de Habilitar MFA en Cuentas Root e IAM
La autenticación multifactor (MFA) añade una capa adicional de seguridad al requerir un segundo factor, como un código generado por una app o un dispositivo físico, además de la contraseña.
Por qué es importante:
Sin MFA, un atacante con tu contraseña tiene acceso completo.
Con MFA, necesitará también el segundo factor, lo que dificulta el acceso no autorizado.
Ejemplo práctico:
Julia, administradora de una cuenta AWS, habilita MFA en su cuenta root usando una app como Google Authenticator.
Cada vez que inicia sesión, necesita su contraseña y un código temporal, reduciendo significativamente el riesgo de acceso no autorizado.
Buenas prácticas:
Habilita MFA en la cuenta root inmediatamente después de crearla.
Configura MFA para todos los usuarios IAM, especialmente aquellos con permisos administrativos.
Usa dispositivos confiables, como apps de autenticación o tokens físicos.
Dato importante:
Desde mayo de 2024, AWS requiere MFA para el usuario root en cuentas de AWS Organizations.
Ahora reflexiona:
¿Qué método de MFA usarías y por qué?
Buenas Prácticas Iniciales de Seguridad en AWS
Desde el primer día, es fundamental establecer una base sólida de seguridad en tu cuenta de AWS. Aquí tienes algunas prácticas esenciales:
Establecimiento de la Seguridad de la Cuenta
Habilita MFA para la cuenta root y todos los usuarios IAM.
Crea usuarios IAM con permisos específicos en lugar de usar el usuario root.
Usa contraseñas fuertes y únicas para todas las cuentas.
Cifrado de Datos
Activa el cifrado por defecto en tus buckets de S3.
Usa AWS Key Management Service (KMS) para gestionar claves de cifrado.
Asegúrate de que los datos en tránsito estén cifrados mediante HTTPS o TLS.
Gestión de Vulnerabilidades
Usa Amazon Inspector para evaluar la seguridad de tus aplicaciones y buscar vulnerabilidades.
Integra AWS Security Hub para una visión centralizada de la seguridad de tu cuenta.
Auditoría y Registro
Habilita AWS CloudTrail para registrar todas las acciones realizadas en tu cuenta.
Revisa regularmente los logs para identificar actividades sospechosas o no autorizadas.
Ejemplo práctico:
Una startup lanza su primera aplicación en AWS. Configuran MFA para todos los usuarios, definen políticas IAM específicas, habilitan el cifrado en S3 y monitorean actividades con CloudTrail.
Esto les permite enfocarse en el crecimiento del negocio sin comprometer la seguridad.
Ahora reflexiona:
¿Qué prácticas de seguridad puedes implementar hoy para proteger tu cuenta de AWS?
La seguridad en AWS es una responsabilidad compartida. AWS protege la infraestructura subyacente, pero tú eres responsable de proteger tus datos y aplicaciones.
Al aplicar el principio de mínimo privilegio, usar usuarios IAM en lugar del root, habilitar MFA y seguir buenas prácticas iniciales, puedes construir una infraestructura segura y resiliente.
Estas prácticas no solo protegen tus recursos, sino que también te preparan para gestionar entornos en la nube de manera profesional y eficiente.
Buena práctica para gestionar roles, usuarios y permisos:
Crea un grupo que tendrá permisos asignados, como crear instancias de EC2. El grupo se llamará "Creadores de EC2" (por ejemplo).
Los usuarios que deban tener este permiso pueden ser añadidos a este grupo.
Es MALA práctica asignar permisos a usuarios. Es mejor meter usuarios a grupos.
Como dice el artículo, es buena práctica que NO usemos el usuario root para tareas diarias. Solamente para cuestiones críticas. Cada usuario cumplirá un rol diferente. Si root se encarga de todo rápidamente podremos tener problemas de gestión o seguridad.
Sobre el MFA, aquí está más información en la documentación oficial de AWS:
Clave para el examen es diferenciar entre cifrado en reposo y en transito, el reposo es aplicar cifrado para acceso al disco o fisico, en transito aplicar cifrado para proteger los datos cuando se estan moviendo entre computadora y bucket S3.
Cifrado reposo: usar S3, EBS, RDS, etc
Cifrado en transito: HTML, TLS, etc
Hola a tod@s, les comparto el mapa que armé a partir de la lectura 📚✨
Con la activación de CloudTrail se debe pagar algo cuando me llegue la factura?, o este no tiene ninguno costo?
Ten en cuenta que CloudTrail tiene un costo así que valida tu presupuesto y necesidades.
Si hacemos el cifrado de los objetos en S3, entonces cada que los tengamos que acceder tendre que hacer el proceso de cifrado inverso?
Que pasa si quiero compartir ejemplo facturas de mis clientes cada quien en su propio bucket, esos tambien deberian estar cifrados?
Y de ser asi como el cliente quitaria el cifrado para ver el archivo?
IAM (Identity and Access Management) y Amazon Cognito son dos servicios de AWS que gestionan la seguridad, pero tienen enfoques distintos.
IAM: Permite gestionar permisos y acceso a recursos en AWS. Es ideal para controlar el acceso de usuarios y servicios dentro de tu cuenta de AWS, aplicando el principio de mínimo privilegio.
Cognito: Facilita la autenticación y autorización de usuarios en aplicaciones móviles y web. Permite gestionar usuarios, iniciar sesión con identidad social (como Google o Facebook) y proporciona funciones como sincronización de datos.
La elección entre ambos depende de si necesitas gestionar usuarios internos (IAM) o usuarios de aplicaciones externas (Cognito).
Sí, el MFA (autenticación multifactor) se puede vincular con un token. Los tokens pueden ser físicos (como un dispositivo hardware) o virtuales (como aplicaciones de autenticación). Al usar un token, se añade una capa extra de seguridad, ya que además de la contraseña, se necesita el código generado por el token para acceder a la cuenta. Esto es altamente recomendado para cuentas de usuario root y usuarios IAM en AWS, ya que mejora significativamente la protección contra accesos no autorizados.
Sí, es posible usar roles compartidos en AWS mediante el uso de roles de IAM (Identity and Access Management). Puedes crear un rol que otorgue permisos específicos y permitir que varios usuarios lo asuman según sea necesario. Esto es especialmente útil para tareas temporales o colaborativas, ya que permite que diferentes miembros del equipo tengan acceso a los recursos sin otorgar permisos perpetuos. Asegúrate de aplicar el principio de mínimo privilegio y revisar regularmente estos accesos.
Habilitar MFA (autenticación multifactor) en la cuenta root es una excelente práctica de seguridad. Esto añade una capa adicional de protección, ya que impide que un atacante acceda a la cuenta solo con la contraseña. Se recomienda habilitar MFA inmediatamente después de crear la cuenta root y también para todos los usuarios IAM, especialmente aquellos con permisos elevados. Esto ayuda a reducir significativamente los riesgos de acceso no autorizado en AWS.
Sí, se recomienda crear un nuevo usuario IAM en lugar de usar el usuario root, incluso si tu cuenta es de capa gratuita. El usuario root tiene acceso completo y debe ser utilizado únicamente para tareas críticas. Al crear usuarios IAM con permisos específicos, puedes aplicar el principio de mínimo privilegio, lo que reduce el riesgo de accesos no autorizados o errores. Esto es esencial para mantener la seguridad de tu cuenta en AWS.
Aún con IAM y MFA activados, pueden ocurrir fallos de seguridad. Las configuraciones incorrectas de permisos en IAM, como asignar privilegios excesivos o no aplicar el principio de mínimo privilegio, pueden permitir accesos no autorizados. Además, la seguridad depende de la gestión continua de usuarios y políticas. Por ejemplo, si un usuario IAM tiene acceso a recursos críticos que no necesita, se aumenta el riesgo. La combinación de buenas prácticas en IAM, MFA y auditorías regulares son esenciales para una seguridad robusta en AWS.
Duda para activar limites de consumo de recursos como se realiza ? para no limitar el presupuesto
En el contexto de seguridad en AWS, un multiusos factor (MFA) es una medida de seguridad que requiere dos o más formas de verificación para acceder a una cuenta. Esto significa que, además de ingresar una contraseña, el usuario debe proporcionar un segundo factor, como un código temporal generado por una aplicación de autenticación o un dispositivo físico. Implementar MFA fortalece la protección de cuentas, dificultando el acceso no autorizado, incluso si la contraseña se ve comprometida.