Blog de Amazon Web Services (AWS)

Soy nuevo en AWS. Quiero proteger mi cuenta ¿Dónde empiezo?

Por Heriberto Lechuga, Arquitecto de Soluciones en Amazon Web Services (AWS).

 

Si recién abriste una cuenta en AWS, has estado probando los servicios o si ya tienes un producto o una solución construida y te interesa conocer como aplicar las mejores prácticas de seguridad en AWS, este blog es para ti.
Los servicios de AWS están diseñados para ser seguros, aquí te ayudaremos a protegerte mejor siguiendo los principios de diseño de seguridad y a través del uso de los robustos servicios de seguridad.

La seguridad en tu cuenta o mejorar tu postura de seguridad es un camino continuo; tienes que revisar constantemente donde estás y hacia donde quieres ir porque las amenazas de seguridad cambian, la tecnología evoluciona de forma continua y tu aplicación seguramente también está en una constante mejora.

El Well Architected Framework es el marco de referencia que nos ayuda a identificar si tu solución está bien arquitectada en diferentes aspectos como la excelencia operativa, la fiabilidad, la eficiencia de rendimiento, la optimización de costos y la seguridad. Te recomiendo consultar este enlace para conocer más sobre el Well Architected Framework.

El pilar de seguridad del Well Architected Framework nos indica lo siguientes principios de diseño:

  • Implementa una base de identidad sólida
  • Habilita la trazabilidad
  • Aplica la seguridad a todos los niveles
  • Automatiza prácticas de seguridad
  • Protege los datos en tránsito y en reposo
  • Aleja a las personas de los datos
  • Prepárate para eventos de seguridad

Una base de identidad sólida significa identificar y autorizar correctamente a cada usuario que tiene acceso a tu cuenta y asignar los permisos correctos que debe tener para hacer su trabajo. Significa que cada usuario tenga su propio acceso, que no lo compartan y que cada uno sea responsable de sus credenciales.

Olvídate de usar permisos amplios o permisos administrativos para todos, asigna los permisos mínimos necesarios y guarda las credenciales del usuario root. Las tareas administrativas regulares pueden ser realizadas por usuarios creados en AWS Identity and Access Management (IAM), no necesitas usar la cuenta root.

IAM proporciona un control detallado de acceso en AWS. Con IAM puedes especificar quién puede acceder, a qué servicio y recurso y bajo qué condiciones. Con las políticas de IAM, administra los permisos para tu personal y tus sistemas para garantizar permisos con privilegios mínimos.

Habilitar la trazabilidad quiere decir que identifiques las actividades de cada usuario por medio de registros. De forma de que puedas auditar a tus usuarios y verificar si están usando los recursos asignados de forma correcta; que puedas identificar fácilmente si hay algún manejo indebido donde puedas saber quien fue, que hizo y cuando lo hizo. Así podrás revertir los cambios no autorizados. Usa el servicio AWS CloudTrail para monitorear y registrar la actividad de la cuenta en tu infraestructura de AWS, lo que te brinda control sobre las acciones de almacenamiento, análisis y corrección.

Aplicar la seguridad en todos los niveles depende del tipo de carga de trabajo y de la arquitectura. Sin embargo, algunas recomendaciones son establecer seguridad perimetral, es decir, seguridad en los accesos a tu arquitectura, proteger el acceso a los servidores, a las bases de datos, a los datos almacenados, generar respaldos y asegurarlos y seguridad en el acceso a las instancias que uses.

Amazon Virtual Private Cloud (Amazon VPC) te brinda control total sobre tu entorno de red virtual, incluida la ubicación de recursos, la conectividad y la seguridad. En la VPC tienes control de acceso de capa 3 por medio de Network ACL, este es un servicio stateless. Con Security Groups puedes controlar el acceso a cada recurso como instancia, base de datos o de tarjeta de red virtual, es decir seguridad a nivel de capa 4.

Con AWS Shield tienes protección contra Denegación de Servicio. AWS Web Application Firewall (WAF) es un web application firewall que protege tus aplicaciones y tus APIs contra vulnerabilidades web comunes y bots que pueden afectar la disponibilidad, comprometer la seguridad o consumir recursos excesivos.

Automatiza prácticas de seguridad. La automatización permite procesos consistentes y repetibles, evitando errores humanos. Esta es la mejor forma poner en producción aplicaciones y su seguridad. Este principio propone que crees mecanismos automatizados de seguridad para escalar más rápido siendo costo-efectivos y de forma segura. En tus arquitecturas incluye la implementación de controles definidos basados en código y administrados con versiones. El servicio AWS CloudFormation te permite modelar, aprovisionar y administrar tus recursos en AWS como código, incluyendo los controles de seguridad que definas.

Protege los datos en tránsito y reposo. Los datos son tu activo más importante y por lo tanto debes protegerlos donde estén almacenados, cuando los usas y cuando viajan. Los datos almacenados como archivos o como objetos deben ser encriptados, para eso puedes encriptar del lado de servidor con llaves administradas por AWS o administradas por ti. Los datos al ser usados en una instancia deben ser encriptados en los discos duros virtuales de Elastic Block Storage (EBS). También los datos pueden ser encriptados si usas Amazon Simple Storage Solution o S3. La encripción de datos en tránsito la puedes hacer cuando viajan los datos entre tu red y AWS o entre el usuario y AWS por medio SSL. Con AWS Certificate Manager puedes aprovisionar, administrar y desplegar conexiones publicas y privadas con certificados SSL y TLS para ser usados por los servicios AWS.

Aleja los datos de las personas. Comenté antes que los datos es tu activo más importante, la mejor práctica es que tus datos estén accesibles sólo para tus cargas de trabajo. Elimina los accesos directos a los usuarios de tu cuenta de forma que ningún usuario pueda consultar, copiar o borrar tus datos sin pasar por tus aplicaciones. Esta práctica, junto con la protección de datos en trásito y reposo, es importante porque protege contra malos manejos de tu información. Con esto te proteges contra escenarios provocados por mal manejo de credenciales de tu cuenta donde puede haber robo de información o destrucción de tu información y afectación hacia tus usuarios finales. Con la definición de roles, permisos y políticas en IAM puedes limitar el acceso de usuarios y de aplicaciones hacia tus datos. Si usas S3 también tienes forma de limitar el acceso a los usuarios con listas de control de acceso, políticas de buckets y autenticación para acceso temporal a los objetos en S3. Sin embargo, la mejor práctica es centralizar tus controles de acceso en IAM.

Prepárate para eventos de seguridad. Estar preparado significa crear manuales, procedimientos, procesos que indiquen que decisiones debo tomar, que acciones cada integrante del equipo debe realizar y que afectaciones pueden llegar a tener mis usuarios. Estar preparado es como contratar un seguro de auto o un seguro de gastos médicos. No queremos tener un accidente o una enfermedad, así como tampoco queremos tener un evento de seguridad. Si ese evento llega a suceder podrás reaccionar rápido y reducir el impacto al mínimo. Amazon Guard Duty es un servicio para la detección de amenazas y comportamiento inusual de usuarios, te entrega hallazgos con un nivel de riesgo para que puedas actuar y remediar el hallazgo.

Los principios de diseño se traducen en varias acciones y configuraciones, las cuales van a depender del nivel de seguridad que quieran poner en tu arquitectura. Estas son las primeras acciones que te ayudarán a mejorar tu postura de seguridad manteniéndote alineado a los principios de diseño explicados anteriormente.

  1. Establece un equipo de seguridad y asigna los contactos en tu cuenta.
  2. Créate una cuenta IAM y úsala para tus actividades administrativas. Elimina el acceso programático de la cuenta root y no la uses para tareas administrativas u operativas.
  3. Activa autenticación multifactor para los usuarios de la consola.
  4. Habilita CloudTrail para saber que hacen tus usuarios de consola.
  5. Usa Security Groups para limitar los accesos a tus recursos en la red privada virtual VPC.
  6. Si no necesitas dar acceso público a tus archivos en S3, bloquea el acceso público.
  7. Crea alarmas de facturación para la detección de anomalías.
  8. Encripta los archivos alojados en Amazon S3, los discos duros en EBS y las bases de datos.
  9. Usa el servicio gratuito Trusted Advisor para validar la configuración de seguridad de tu entorno.
  10. Usa Guard Duty y soluciona las amenazas de seguridad detectados en los logs de DNS, VPC Flow logs, eventos de CloudTrail o eventos en S3.

 

Conclusión

Mejorar la seguridad de tu cuenta es un tema amplio que depende de tu arquitectura y de los servicios que estés usando. Este blog es el punto de inicio usando los principios de diseño y las acciones antes señaladas. Evalúa constantemente tu seguridad, pues esta debe evolucionar conforme los riesgos, la tecnología cambian y también conforme tu arquitectura e uso de los servicios de AWS va cambiando.

 


Sobre el Autor

Heriberto Lechuga es un Arquitecto de Soluciones con más de 20 años de experiencia en Tecnologías de Información y Contact Centers. Actualmente ayuda a clientes sin fines de lucro y sociedades cooperativas en los ciclos iniciales de adopción de la nube y en acelerar su viaje en AWS usando la tecnología como una palanca para la innovación y el éxito en sus instituciones.