Protección de una aplicación web en AWS

Protección de una aplicación web que se ejecuta en AWS

Visión de conjunto

Protección — El siguiente trabajo se inspiró en los talleres de seguridad de AWS. El proyecto se bifurcó y amplió para incluir la implementación en un entorno real, mayores controles de seguridad y capacidades de auditoría.

Para ver el original, vaya a https://catalog.us-east-1.prod.workshops.aws/


Seguridad de la infraestructura

Protección
Configuración de redes y seguridad

La primera etapa del proyecto es configurar la infraestructura central y probar el acceso.

En resumen, se creará lo siguiente:

  1. VPC con gateway de Internet, tablas de enrutamiento, rutas, asociaciones de subredes, subredes públicas
  2. Instancias EC2 con grupo de seguridad, volúmenes montados en EBS, par de claves para acceso ssh y aplicación web en ejecución
  3. Balanceador de carga de aplicaciones con agentes de escucha (http, https), grupo objetivo, certificado emitido por ACM, grupo de seguridad
  4. Zona alojada de Route53 con resolución de DNS de registro A para ALB que cubre el dominio (kingan916.com) y todos los subdominios

El núcleo funcional de este proyecto girará en torno a un servidor web React que servirá contenido estático. El servidor se implementa mejor como un servicio systemd. Systemd es un administrador de sistemas que se puede usar para implementar y administrar procesos de usuario. El servidor se implementa en el puerto 3000 mediante el usuario ec2. Inicialmente, se implementó en el puerto 80, pero eso requiere que el servidor se ejecute con privilegios de raíz. Esto es menos que ideal ya que toda la máquina está expuesta al acceso de root si se descubre alguna vulnerabilidad. Lo mejor es seguir la regla de privilegios mínimos para ejecutar el servicio en el puerto 3000.

Se implementará en la VPC predeterminada en una subred pública.

Un equilibrador de carga elástico se ubicará entre el cliente que realiza la solicitud y el servidor. El equilibrador de carga se configurará para redirigir las solicitudes http a https, así como para reenviar la solicitud al servidor React.

El primer paso es implementar las instancias EC2 en un grupo objetivo. Esto permitirá una escalabilidad más sencilla de la plataforma y aumentará la confiabilidad, ya que una solicitud puede dirigirse al grupo objetivo y no a un nodo individual.

Las instancias EC2 se configurarán para consumir solo del ELB mediante la configuración del grupo de seguridad asociado. El grupo de seguridad aceptará la conexión solo desde el ELB, eliminando así el acceso directo a las instancias.

El siguiente paso es configurar una zona alojada dentro de Route53. Será necesario registrar un nombre de dominio y el registro A correspondiente para enrutar el tráfico al oyente del balanceador de carga.

También será necesario emitir un certificado público de AWS Certificate Manager. El certificado público se asociará al nombre de dominio registrado y garantizará que el tráfico pueda atravesar la Internet pública utilizando el protocolo https. Esto asegura contra los ataques de intermediarios y los datos pueden llegar a la plataforma sin ser expuestos o manipulados. Una vez que una solicitud ha llegado a la red de AWS, no será necesario cifrar más conexiones, por lo que la conexión desde el balanceador de carga al servidor web de React podrá enviarse como una solicitud http estándar.

Gestión de acceso e identidad

Una vez que estemos satisfechos con la seguridad central, podemos pasar a la autenticación de los usuarios.

Protección
Verificación de usuario

Protección
Iniciar sesión de usuario

Registro y monitoreo

Configuración de la supervisión

Cree una alarma de CloudWatch para supervisar el recuento de hosts en buen estado.

Configure el tema de SNS para recibir alertas de CloudWatch.

Configure ChatBot y use OAuth 2.0 para integrar el canal Slack

Monitoreo de CloudWatch

Auditoría

Ejecutar configuración de AWS


Servicios

, Service
"Security, Identity, & Compliance", Cognito
"Security, Identity, & Compliance", IAM
"Security, Identity, & Compliance", Certificate Manager
Networking & Content Delivery, VPC
Networking & Content Delivery, API Gateway
Networking & Content Delivery, Route53
Networking & Content Delivery, Elastic Load Balancing
Compute, EC2
Compute, Lambda
Database, DynamoDB
Front-end Web & Mobile, Amplify
Management & Governance, CloudWatch
Management & Governance, Cloud Formation
Management & Governance, AWS Chatbot
Management & Governance, SNS
External, Slack

Recent Post