Aspectos básicos de la seguridad en la nube de AWS y mejores prácticas
Amazon Web Services (AWS) ha sido durante mucho tiempo la plataforma de nube pública más popular. Pero también se ha expandido significativamente en la última década al desplegar una variedad de nuevos servicios (como los servicios gestionados de containers y Kubernetes), que han añadido complejidad a la seguridad de la nube de AWS.
Al mismo tiempo, con la adopción generalizada de arquitecturas de nube híbrida y multicloud, es posible que las empresas que utilizan AWS tengan que hacer frente a nuevos retos de seguridad en la nube que no existían cuando lo ejecutaban todo en un entorno de nube única de AWS.
Como consecuencia de ello, las prácticas de seguridad de AWS que funcionaban en el pasado ya no son necesariamente suficientes por sí solas para abordar todos los requisitos de seguridad de AWS. A la vista de este reto, en este artículo repasamos los aspectos básicos de la seguridad actual de AWS y sugerimos las mejores prácticas para asegurar las workloads que se ejecutan en AWS, incluyendo las aplicaciones basadas en containers y Kubernetes.
Modelo de responsabilidad compartida de AWS
El primer paso para planificar la seguridad de AWS es entender su modelo de responsabilidad compartida. Al igual que otras nubes públicas importantes, AWS utiliza un concepto de seguridad compartida para distinguir entre los riesgos de seguridad que AWS gestiona y los que espera que gestionen los clientes.
La definición oficial de AWS de su modelo de responsabilidad compartida es menos detallada que la de otras nubes públicas importantes. Se reduce al concepto de que “AWS es responsable de proteger la infraestructura que ejecuta todos los servicios provistos en la nube de AWS”, mientras que los clientes son responsables de proteger todo lo demás.
Sin embargo, en la práctica, la responsabilidad compartida de AWS es prácticamente idéntica a los modelos adoptados por otras nubes públicas, a pesar de que AWS no especifica los detalles tan minuciosamente. Básicamente, lo único que tienen que recordar los clientes es que AWS protege toda la infraestructura de la nube a la que los clientes no tienen acceso ni pueden configurar directamente, y los clientes protegen todo lo demás. Esto también se aplica a los servicios gestionados de AWS, como Elastic Kubernetes Service (EKS), en el que AWS protege la infraestructura del clúster, pero los clientes tienen que proteger el entorno de Kubernetes y cualquier aplicación que implementen en él.
Cómo proteger los entornos de AWS
Una vez entendido el modelo de responsabilidad compartida de AWS, los siguientes pasos en la planificación de la seguridad de AWS son identificar e implementar herramientas y prácticas que aseguren todos los aspectos de su entorno de AWS de los que usted es responsable.
Mejores prácticas básicas de seguridad de AWS
En líneas generales, las mejores prácticas fundamentales básicas de seguridad en la nube de AWS no son diferentes de las prácticas de seguridad que aplicaría en cualquier otro tipo de entorno de nube. Algunas de estas prácticas son:
- Utilice IAM en la nube: Utilizando el marco AWS Identity and Access Management (IAM), los clientes deben configurar controles de acceso granulares que restrinjan los privilegios de acceso para cada usuario y servicio que se ejecute en un entorno de AWS al mínimo necesario. Los clientes también pueden utilizar herramientas de auditoría de IAM para detectar errores de configuración en las políticas de IAM que generen una postura de seguridad en la nube vulnerable.
- Utilice VPC en la nube: Los clientes pueden configurar entornos aislados para sus workloads utilizando Amazon Virtual Private Cloud (VPC). Mediante la creación de una VPC, los clientes pueden aislar las workloads entre sí a nivel de red (y, dependiendo de cómo se configure la VPC, de la Internet pública). Aunque no es necesario usar una VPC si se utiliza AWS, las VPC son una herramienta útil para reducir los riesgos de seguridad.
- Gestione inteligentemente las cuentas en la nube: La cantidad de recursos en la nube que puede implementar con una sola cuenta de AWS es ilimitada. Sin embargo, se recomienda crear cuentas separadas para usuarios o unidades de negocio diferentes con el fin de aislar workloads no relacionadas a nivel de cuenta. El inconveniente de utilizar varias cuentas es que son más difíciles de gestionar, pero servicios como AWS Landing Zone pueden ayudar a sortear esta dificultad.
- Cifre los datos en la nube: Aparte de proteger los datos en la nube almacenados en servicios como AWS S3 mediante controles de acceso, también se aconseja que los clientes habiliten el cifrado por defecto del lado del servidor. Asimismo, deberían aplicar el cifrado del lado del cliente para proteger los datos en tránsito en la nube.
- Sepa dónde están sus datos sensibles: En los entornos de nube a gran escala, es fácil perder la pista de dónde están almacenados los datos sensibles (como los que contienen información de identificación personal). El etiquetado de recursos de AWS permite solventar este riesgo ayudando a los equipos a etiquetar workloads sensibles. Amazon también proporciona un servicio automatizado, llamado Macie, que puede identificar la información sensible almacenada en la nube de AWS.
Consideraciones especiales de seguridad para AWS
Aparte de las prácticas de seguridad en la nube recomendadas anteriormente, hay algunos consejos de seguridad específicos que conviene que los equipos apliquen cuando utilicen AWS:
- Proteja workloads heredadas en la nube: Dado que AWS es la principal nube pública más antigua, algunas empresas llevan utilizándola desde hace más de una década. Po lo tanto, es posible que estén ejecutando algunas workloads “heredadas” en la nube (como containers desplegados en ECS, el servicio interno de orquestación de containers que AWS lanzó antes de añadir las opciones de containers gestionados basados en Kubernetes) que ya no se ajusten a las prácticas de seguridad modernas de AWS. Si su equipo ha estado trabajando en AWS durante varios años, merece la pena evaluar los distintos tipos de servicios de AWS que utiliza y valorar si las configuraciones que aplicó al configurar originalmente esos recursos siguen cumpliendo las mejores prácticas de seguridad en la nube actuales.
- Utilice las herramientas de seguridad de AWS: AWS ofrece un mayor número de herramientas de seguridad nativas que la mayoría de las principales nubes públicas. Además de las herramientas estándar de monitorización de la seguridad, como GuardDuty, AWS proporciona su propia solución CSPM, así como Trusted Advisor, una herramienta que recomienda las mejores prácticas para al configurar las workloads. Así pues, AWS cuenta con un conjunto especialmente amplio y complejo de herramientas de seguridad nativas que los equipos deberían considerar como parte de su estrategia de seguridad de AWS. Por otra parte, también es importante conocer las limitaciones de estas herramientas, especialmente el hecho de que muchas de ellas solo son compatibles con los entornos de AWS (lo que significa que no funcionan bien en arquitecturas multicloud o de nube híbrida). Además, se trata en su mayoría de soluciones de seguridad genéricas que generalmente no están diseñadas para abordar los requisitos de seguridad particulares de entornos muy específicos, como Kubernetes.
- Seguridad de la nube híbrida de AWS: AWS proporciona un marco de nube híbrida, llamado Outposts, que permite a los clientes ejecutar servicios de AWS en servidores locales o en un centro de colocación privado. A pesar de que los servidores son suministrados por AWS, los clientes son responsables de la mayoría de los requisitos de seguridad de la infraestructura que, de otro modo, corresponderían a AWS al ser una infraestructura de su propiedad. Lo importante es que, si usted utiliza Outposts para crear una nube híbrida, conviene que se informe sobre la arquitectura de seguridad única que AWS utiliza para Outposts.
Cómo proteger los containers en AWS
Al igual que otras nubes públicas importantes, AWS ofrece varias formas de ejecutar aplicaciones en containers. Los principales servicios de containers de AWS son:
- Elastic Container Service (ECS), un servicio gestionado de containers que se basa en un orquestador desarrollado por Amazon.
- Elastic Kubernetes Service (EKS), un servicio gestionado de containers basado en Kubernetes.
- Fargate, un servicio que simplifica el despliegue de containers con ECS o EKS, pero con la desventaja de que los usuarios tienen menos control sobre la infraestructura y la configuración.
- Lambda, un servicio de funciones serverless que puede ejecutar aplicaciones empaquetadas como imágenes de containers.
También puede desplegar containers directamente en máquinas virtuales AWS EC2 si está dispuesto a configurar y gestionar usted mismo tanto la infraestructura como as capas de ejecución y orquestación de containers.
El enfoque para proteger sus containers variará dependiendo del servicio o servicios que utilice para desplegar containers en AWS. Pero independientemente del servicio que utilice, se recomienda aplicar algunas de las prácticas básicas de seguridad de containers en AWS:
- Escanee las imágenes de containers para identificar vulnerabilidades. AWS no escanea las imágenes por usted.
- En la medida de lo posible, escanee todas las configuraciones asociadas a su entorno, como los archivos de despliegue y RBAC de Kubernetes y las políticas de AWS IAM, para detectar problemas relacionados con la postura de seguridad en la nube.
- Utilice las herramientas disponibles en los marcos de orquestación de containers para ayudar a proteger su entorno y detectar brechas. En los entornos de AWS basados en Kubernetes, esto significa utilizar herramientas como los registros de auditoría de Kubernetes, RBAC y los contextos de seguridad.
Asimismo, es importante conocer cómo se aplica el modelo de responsabilidad compartida de AWS al servicio de containers que utilice. Este es un tema bastante ambiguo y complejo, sobre todo teniendo en cuenta que AWS ofrece múltiples formas de utilizar servicios como EKS (que puede gestionar a través de Fargate o directamente a través de EKS) y que cada enfoque tiene diferentes implicaciones para las responsabilidades de seguridad que recaen en el cliente. La documentación de AWS explica muy bien estos detalles, así que asegúrese de leer las políticas de seguridad de AWS específicas para el servicio de containers que escoja.
Conclusión
Mientras AWS se mantenga como la plataforma de computación en la nube dominante en cuanto a cuota de mercado, la seguridad de las workloads de AWS seguirá siendo una de las principales preocupaciones para las organizaciones de todo el mundo. Y a medida que AWS continúe desplegando nuevos tipos de servicios y facilite su integración con arquitecturas híbridas y multicloud, la seguridad de AWS será cada vez más compleja.
La buena noticia es que, siempre y cuando se documente sobre los retos de seguridad que se aplican a los servicios en la nube de AWS y a las configuraciones específicas que adopte, gestionar la seguridad de AWS no una tarea complicada. La información y las herramientas que necesita ya existen; solo hace falta que encuentre los recursos adecuados.