En este artículo a modo de ebook trataremos el primer de los cuatro dominios del examen de la certificación informática AWS Solutions Architect. La guía gratuita creada por Info Certificaciones IT, sigue rigurosamente el syllabus (el temario que entra) de la certificación.
Se
divide en dos partes en cada tema.
- Una parte teórica que os explica los
conceptos que debéis conocer
- Una parte teórica con una casuística que os
permite comprender mejores usos en la vida real.
Esta
creada como resumen completo para poder repasar todos los conceptos aunque
partes que os vendrá bien complementar con la documentación oficial de AWS en caso de
duda.
Disponéis de mis test de práctica de Udemy para practicar lo aprendido.
AWS Solutions Architect. Dominio 1
Diseñar Arquitecturas Seguras
Diseñar un acceso seguro a los recursos de AWS
1.
Controles de acceso y administración en varias cuentas
Administrar el acceso y los
permisos en varias cuentas de AWS es fundamental para garantizar la seguridad y
el cumplimiento de tus recursos en la nube. Algunas técnicas y herramientas
importantes incluyen:
1.1. AWS Organizations
AWS Organizations te permite
administrar y consolidar varias cuentas de AWS en una estructura jerárquica.
Esto facilita la administración de políticas de acceso y seguridad en todas las
cuentas, así como la aplicación de políticas de cumplimiento y auditoría.
1.2. Políticas de control de acceso
Las políticas de control de acceso
en AWS son reglas que definen quién puede acceder a tus recursos y qué acciones
pueden realizar. Puedes aplicar estas políticas en usuarios, grupos o roles de
AWS Identity and Access Management (IAM).
1.3. Roles de IAM
Los roles de IAM permiten delegar
permisos a usuarios, servicios y aplicaciones en AWS sin tener que compartir
credenciales de acceso permanentes. Al utilizar roles de IAM, puedes aplicar el
principio de mínimo privilegio y limitar el acceso a los recursos necesarios.
2. Servicios de identidad y acceso federados de AWS
Los servicios de identidad y acceso
federados de AWS permiten la integración de sistemas de identidad externos y la
autenticación de usuarios a través de múltiples cuentas y aplicaciones.
2.1 AWS Identity and Access
Management (IAM)
IAM es el servicio principal de AWS
para la administración de identidades y accesos. Permite crear y administrar
usuarios, grupos, roles y políticas de acceso. IAM también admite la federación
de identidades, lo que te permite integrar tus sistemas de identidad existentes
y autenticar a los usuarios a través de proveedores de identidad externos.
2.2. AWS Single Sign-On (AWS SSO)
AWS SSO es un servicio que
simplifica la administración centralizada del acceso a varias cuentas y
aplicaciones de AWS. Con AWS SSO, puedes permitir que los usuarios inicien
sesión en múltiples cuentas y aplicaciones de AWS con una sola serie de
credenciales.
3 Infraestructura global de AWS
La infraestructura global de AWS
está compuesta por regiones y zonas de disponibilidad, que son fundamentales
para garantizar la seguridad, confiabilidad y rendimiento de tus aplicaciones
en la nube.
3.1 Regiones de AWS
Las regiones de AWS son áreas
geográficas en las que se agrupan múltiples zonas de disponibilidad. Al
seleccionar una región, debes tener en cuenta la latencia, las leyes y
regulaciones locales, y las necesidades de redundancia y respaldo de tus
aplicaciones.
3.2. Zonas de disponibilidad
Las zonas de disponibilidad son centros de datos separados dentro de una región de AWS. Las zonas de disponibilidad están diseñadas para ser redundantes y altamente disponibles, lo que permite a las aplicaciones en AWS funcionar de manera confiable y resistente a fallos.
Al implementar tus recursos en varias zonas de disponibilidad, puedes
garantizar una alta disponibilidad y tolerancia a fallos para tus aplicaciones
y datos.
4. Prácticas recomendadas de seguridad de AWS
Para garantizar la seguridad de tus
recursos en AWS, es importante seguir las prácticas recomendadas de seguridad.
Algunas de estas prácticas incluyen:
4.1. Principio de mínimo privilegio
El principio de mínimo privilegio
significa otorgar a los usuarios y aplicaciones únicamente los permisos necesarios
para realizar sus tareas. Al aplicar este principio, puedes reducir el riesgo
de acceso no autorizado y limitar el impacto potencial de un ataque.
4.2. Rotación de credenciales
La rotación de credenciales implica
cambiar periódicamente las claves de acceso y contraseñas para ayudar a
proteger tus cuentas y recursos en AWS. La rotación de credenciales puede ser
un proceso manual o automatizado utilizando herramientas como AWS Secrets
Manager.
4.3. Supervisión y registro
La supervisión y registro de
actividades en tus cuentas y recursos de AWS es esencial para detectar
actividades sospechosas o no autorizadas. Los servicios de AWS como Amazon
CloudWatch, AWS CloudTrail y Amazon GuardDuty pueden ayudarte a monitorear y
registrar eventos de seguridad.
4.4. Protección de datos
Protege tus datos en AWS mediante
técnicas como el cifrado en tránsito y en reposo, así como el control de acceso
y la segmentación de la red. Puedes utilizar servicios de AWS como AWS Key
Management Service (KMS) y AWS Certificate Manager para administrar tus claves
y certificados de cifrado.
5. Modelo de responsabilidad
compartida de AWS
El modelo de responsabilidad compartida de AWS establece que la seguridad en la nube es responsabilidad tanto del proveedor (AWS) como del cliente.
AWS es responsable de la
seguridad de la nube, mientras que el cliente es responsable de la seguridad en
la nube.
5.1. Responsabilidad de AWS
AWS es responsable de proteger la
infraestructura subyacente de la nube, incluidos los centros de datos, la red y
el hardware. AWS también se encarga de garantizar la seguridad y el
cumplimiento de sus servicios.
5.2. Responsabilidad del cliente
Los clientes son responsables de
proteger sus aplicaciones, datos y sistemas operativos dentro de la nube de
AWS. Esto incluye la configuración de políticas de acceso, la administración de
usuarios, la protección de datos y la aplicación de parches de seguridad.
Aplicación de las habilidades clave
del syllabus:
1. Aplicar las prácticas
recomendadas de seguridad a los usuarios de IAM y a los usuarios raíz
Comenzaremos aplicando las
prácticas recomendadas de seguridad a los usuarios de IAM y a los usuarios
raíz. Esto incluye el uso de la autenticación multifactor (MFA).
1.1. Autenticación multifactor
(MFA)
La MFA es una capa adicional de
protección para tus cuentas de AWS. Asegúrate de que todos los usuarios raíz y
de IAM tengan MFA habilitado. Para hacerlo, sigue estos pasos:
- Inicia
sesión en la consola de AWS.
- Ve a IAM.
- Selecciona
"Usuarios" en el menú de navegación izquierdo.
- Haz clic
en el nombre del usuario.
- Ve a la
pestaña "Seguridad" y selecciona "Administrar MFA".
- Sigue las
instrucciones para habilitar MFA.
2. Diseñar un modelo de
autorización flexible
A continuación, diseñaremos un
modelo de autorización flexible que incluya usuarios, grupos, roles y políticas
de IAM. Esto permitirá que la empresa gestione de manera eficiente y segura el
acceso a sus recursos en AWS.
2.1. Usuarios, grupos y políticas
de IAM
Crea usuarios de IAM para cada
empleado que necesite acceso a AWS. Agrúpalos en función de sus
responsabilidades laborales y asigna políticas de IAM a estos grupos en lugar
de a usuarios individuales.
Por ejemplo, podrías tener grupos
como "Desarrolladores", "Administradores" y "Analistas
de datos". A cada grupo, asigna las políticas de IAM correspondientes que
les permitan acceder solo a los recursos y servicios necesarios.
2.2. Roles de IAM
Los roles de IAM permiten que los servicios y aplicaciones en AWS asuman permisos sin compartir credenciales permanentes.
Por ejemplo, si tienes una aplicación que necesita acceder a un
bucket de Amazon S3, crea un rol de IAM con los permisos necesarios y asigna
ese rol a la instancia de Amazon EC2 en la que se ejecuta la aplicación.
3. Diseñar una estrategia de
control de acceso basada en roles
Ahora, implementaremos una
estrategia de control de acceso basada en roles. Esto incluye el uso de AWS
Security Token Service (AWS STS), cambio de roles y acceso entre cuentas.
3.1. AWS Security Token Service
(AWS STS)
AWS STS permite a los usuarios
obtener credenciales temporales para acceder a recursos de AWS. Estas
credenciales tienen una duración limitada y se pueden revocar en cualquier
momento. Utiliza AWS STS para otorgar acceso temporal a los usuarios en función
de roles específicos.
3.2. Cambio de roles
Permite a los usuarios cambiar
roles en la consola de AWS para asumir permisos adicionales según sea
necesario. Esto les permite realizar tareas específicas sin tener que modificar
sus políticas de IAM permanentemente.
Ejemplo práctico
Imagina que tienes una empresa con
tres departamentos: ventas, finanzas y marketing. Cada departamento tiene su
propia cuenta de AWS y necesitas asegurar el acceso a los recursos de AWS para
cada departamento.
- Primero,
utiliza AWS Organizations para administrar de forma centralizada las
cuentas de ventas, finanzas y marketing. Esto te permitirá aplicar
Políticas de Control de Servicios (SCP) a nivel de cuenta y asegurar que
cada departamento solo tenga acceso a los servicios y acciones necesarios.
- A
continuación, crea grupos de IAM específicos para cada departamento (por
ejemplo, GrupoVentas, GrupoFinanzas y GrupoMarketing) y asigna políticas
de IAM granulares a cada grupo para limitar el acceso a los recursos y
servicios de AWS según las necesidades de cada departamento.
- Implementa
AWS Single Sign-On (AWS SSO) para permitir que los empleados utilicen sus
credenciales existentes para acceder a las cuentas y aplicaciones de AWS.
Esto simplificará la gestión del acceso y mejorará la experiencia del usuario
al eliminar la necesidad de recordar múltiples credenciales.
- Asegúrate
de aplicar la autenticación multifactor (MFA) a los usuarios de IAM y a
los usuarios raíz en todas las cuentas para mejorar la seguridad y reducir
el riesgo de acceso no autorizado.
- Diseña
una estrategia de control de acceso basada en roles utilizando AWS
Security Token Service (AWS STS), cambio de roles y acceso entre cuentas.
Esto permitirá a los usuarios de un departamento acceder temporalmente a
los recursos de otro departamento si es necesario, sin tener que crear
usuarios adicionales en cada cuenta.
- Por
último, revisa y ajusta regularmente las políticas de recursos y de IAM
para asegurarte de que se aplican las prácticas recomendadas de seguridad
y se mantiene el principio de mínimo privilegio en todas las cuentas y
departamentos.
Diseñar cargas de trabajo y aplicaciones seguras
1. Configuración de aplicaciones y seguridad de credenciales
1.1. Introducción
La seguridad es un aspecto
fundamental en cualquier aplicación, y AWS ofrece un conjunto de herramientas y
servicios que nos permiten implementar aplicaciones seguras y proteger nuestros
datos. En esta sección, explicaremos cómo configurar aplicaciones y gestionar
la seguridad de las credenciales en AWS.
1.2. IAM: Gestión de credenciales
AWS Identity and Access Management
(IAM) nos permite gestionar de forma segura el acceso a nuestros servicios y
recursos en AWS. Con IAM, podemos crear y gestionar usuarios y grupos de AWS,
así como controlar el acceso de estos a nuestros recursos mediante la
asignación de políticas.
- Usuarios:
Representan a las personas o servicios que interactúan con nuestros
recursos de AWS. Cada usuario tiene credenciales únicas, como nombre de
usuario, contraseña y clave de acceso (clave de acceso y clave secreta de
acceso).
- Grupos: Son
conjuntos de usuarios de AWS que tienen permisos similares. Los grupos nos
permiten administrar de manera eficiente los permisos para múltiples
usuarios.
- Políticas: Son
documentos JSON que definen los permisos que se pueden asignar a usuarios,
grupos o roles. Las políticas pueden ser administradas (creadas por AWS) o
personalizadas (creadas por nosotros).
1.3. Autenticación y autorización
La autenticación es el
proceso de verificar la identidad de un usuario o servicio que intenta acceder
a nuestros recursos de AWS. La autorización es el proceso de determinar
qué acciones puede realizar un usuario o servicio autenticado en nuestros
recursos de AWS.
Para autenticar usuarios,
utilizamos las credenciales proporcionadas por IAM. Por ejemplo, cuando un
usuario intenta acceder a la consola de administración de AWS, debe
proporcionar su nombre de usuario y contraseña. Para los servicios, utilizamos
claves de acceso y secretos de acceso.
Una vez autenticado, el usuario o
servicio debe ser autorizado para realizar acciones específicas. Las políticas
de IAM definen los permisos que se les otorgan a los usuarios, grupos o roles.
Estos permisos determinan qué acciones están permitidas y sobre qué recursos.
2. Puntos de enlace de servicios de
AWS
2.1. Introducción
Los puntos de enlace de servicios
de AWS son conexiones privadas entre nuestros recursos de AWS y los servicios
de AWS. Estas conexiones nos permiten acceder a los servicios de AWS de forma
segura sin exponer nuestros datos al tráfico público de Internet. En esta
sección, aprenderemos cómo configurar y utilizar puntos de enlace de servicios
en AWS.
2.2. VPC Endpoints
Un VPC Endpoint es un componente de
red dentro de nuestra Virtual Private Cloud (VPC) que permite la comunicación
privada entre nuestros recursos en la VPC y los servicios de AWS, como Amazon
S3 o Amazon DynamoDB. Hay dos tipos de VPC Endpoints:
VPC Endpoints. Estos endpoints
proporcionan conectividad privada a los servicios de AWS utilizando Elastic
Network Interfaces (ENI) con direcciones IP privadas en nuestras subredes. Los
Interface VPC Endpoints son compatibles con servicios basados en AWS
PrivateLink.
- Gateway VPC Endpoints: Estos endpoints permiten el acceso a servicios de AWS que admiten endpoints de gateway, como Amazon S3 y Amazon DynamoDB, utilizando rutas de nuestras tablas de enrutamiento en la VPC. No se necesita una dirección IP pública para acceder a estos servicios.
2.3. Configuración de VPC Endpoints
Para configurar un VPC Endpoint,
debemos seguir estos pasos:
- Acceder a
la consola de administración de AWS y navegar hasta el servicio VPC.
- En el
panel de navegación izquierdo, hacer clic en "Endpoints".
- Hacer
clic en "Create Endpoint".
- Seleccionar
el tipo de endpoint (Interface o Gateway) y el servicio de AWS al que
queremos conectarnos.
- Seleccionar
la VPC y las subredes en las que queremos crear el endpoint.
- Configurar
las políticas de acceso y las configuraciones de seguridad adicionales.
- Hacer
clic en "Create Endpoint" para crear el VPC Endpoint.
3. Puertos de control, protocolos y
tráfico en la red en AWS x acceso seguro a las aplicaciones
3.1. Grupos de seguridad
Los grupos de seguridad actúan como
un firewall virtual para nuestros recursos de AWS, permitiéndonos controlar el
tráfico entrante y saliente. Podemos especificar reglas de tráfico basadas en
protocolos, puertos y direcciones IP de origen/destino.
- Reglas
entrantes: Controlan el tráfico que llega a nuestros
recursos de AWS. Por ejemplo, podemos permitir el acceso a un servidor web
en el puerto 80 desde cualquier dirección IP (0.0.0.0/0) o restringirlo a
una IP específica.
- Reglas
salientes: Controlan el tráfico que sale de nuestros
recursos de AWS. Por ejemplo, podemos permitir que nuestros recursos se
comuniquen con otros servicios de AWS o con recursos en Internet.
3.2. Configuración de grupos de
seguridad
Para configurar un grupo de
seguridad, debemos seguir estos pasos:
- Acceder a
la consola de administración de AWS y navegar hasta el servicio VPC.
- En el
panel de navegación izquierdo, hacer clic en "Security Groups".
- Hacer
clic en "Create security group".
- Proporcionar
un nombre y una descripción para el grupo de seguridad.
- Seleccionar
la VPC en la que queremos crear el grupo de seguridad.
- Configurar
las reglas de tráfico entrantes y salientes según nuestras necesidades.
- Hacer
clic en "Create security group" para crear el grupo de
seguridad.
4. Servicios de seguridad con casos
de uso adecuados
4.1. Amazon Cognito
Amazon Cognito es un servicio de
AWS que facilita la autenticación, autorización y administración de usuarios en
nuestras aplicaciones web y móviles. Cognito ofrece dos componentes
principales:
- User
Pools: Son directorios de usuarios que nos permiten administrar y
autenticar a nuestros usuarios. Podemos utilizar proveedores de identidad
externos como Google, Facebook o servicios SAML 2.0.
Identity Pools:
Nos permiten otorgar a VPC Endpoints. Estos endpoints proporcionan conectividad
privada a los servicios de AWS utilizando Elastic Network Interfaces (ENI) con
direcciones IP privadas en nuestras subredes. Los Interface VPC Endpoints son
compatibles con servicios basados en AWS PrivateLink.
- Gateway
VPC Endpoints: Estos endpoints permiten el acceso a
servicios de AWS que admiten endpoints de gateway, como Amazon S3 y Amazon
DynamoDB, utilizando rutas de nuestras tablas de enrutamiento en la VPC.
No se necesita una dirección IP pública para acceder a estos servicios.
2.3. Configuración de VPC Endpoints
Para configurar un VPC Endpoint,
debemos seguir estos pasos:
1. Acceder a la
consola de administración de AWS y navegar hasta el servicio VPC.
2. En el panel de
navegación izquierdo, hacer clic en "Endpoints".
3. Hacer clic en
"Create Endpoint".
4. Seleccionar el
tipo de endpoint (Interface o Gateway) y el servicio de AWS al que queremos
conectarnos.
5. Seleccionar la
VPC y las subredes en las que queremos crear el endpoint.
6. Configurar las
políticas de acceso y las configuraciones de seguridad adicionales.
7. Hacer clic en
"Create Endpoint" para crear el VPC Endpoint.
3. Puertos de control, protocolos y
tráfico en la red en AWS x acceso seguro a las aplicaciones
3.1. Grupos de seguridad
Los grupos de seguridad actúan como
un firewall virtual para nuestros recursos de AWS, permitiéndonos controlar el
tráfico entrante y saliente. Podemos especificar reglas de tráfico basadas en
protocolos, puertos y direcciones IP de origen/destino.
- Reglas entrantes:
Controlan el tráfico que llega a nuestros recursos de AWS. Por ejemplo,
podemos permitir el acceso a un servidor web en el puerto 80 desde
cualquier dirección IP (0.0.0.0/0) o restringirlo a una IP específica.
- Reglas
salientes: Controlan el tráfico que sale de nuestros
recursos de AWS. Por ejemplo, podemos permitir que nuestros recursos se
comuniquen con otros servicios de AWS o con recursos en Internet.
3.2. Configuración de grupos de
seguridad
Para configurar un grupo de
seguridad, debemos seguir estos pasos:
1. Acceder a la
consola de administración de AWS y navegar hasta el servicio VPC.
2. En el panel de
navegación izquierdo, hacer clic en "Security Groups".
3. Hacer clic en
"Create security group".
4. Proporcionar
un nombre y una descripción para el grupo de seguridad.
5. Seleccionar la
VPC en la que queremos crear el grupo de seguridad.
6. Configurar las
reglas de tráfico entrantes y salientes según nuestras necesidades.
7. Hacer clic en
"Create security group" para crear el grupo de seguridad.
4. Servicios de seguridad con casos
de uso adecuados
4.1. Amazon Cognito
Amazon Cognito es un servicio de
AWS que facilita la autenticación, autorización y administración de usuarios en
nuestras aplicaciones web y móviles. Cognito ofrece dos componentes
principales:
- User
Pools: Son directorios de usuarios que nos permiten administrar y
autenticar a nuestros usuarios. Podemos utilizar proveedores de identidad
externos como Google, Facebook o servicios SAML 2.0.
- Identity
Pools: Nos permiten otorgar a nuestros usuarios acceso temporal a los
recursos de AWS. Los Identity Pools nos ayudan a autorizar a nuestros
usuarios autenticados para acceder a los servicios de AWS como Amazon S3,
Amazon DynamoDB y AWS Lambda.
Caso de uso:
Si estás desarrollando una aplicación que requiere autenticación de usuarios y
acceso seguro a recursos de AWS, Amazon Cognito es la solución ideal.
4.2. Amazon GuardDuty
Amazon GuardDuty es un servicio de
detección de amenazas que monitorea continuamente nuestra cuenta de AWS y
nuestros recursos en busca de comportamientos sospechosos o no autorizados.
GuardDuty utiliza machine learning, análisis de anomalías y listas de
inteligencia de amenazas para identificar posibles amenazas, como intentos de
exfiltración de datos, intentos de inicio de sesión no autorizados y actividad
de comando y control de malware.
Caso de uso:
Si necesitas monitorear y proteger tu cuenta de AWS y tus recursos contra
posibles amenazas, Amazon GuardDuty es la solución adecuada.
4.3.
Amazon Macie
Amazon Macie es un servicio de
seguridad de datos que utiliza machine learning y análisis de patrones para
descubrir, clasificar y proteger automáticamente información confidencial en
AWS. Macie identifica y clasifica datos sensibles como números de tarjetas de
crédito, números de seguro social y direcciones de correo electrónico en
nuestros buckets de Amazon S3.
Caso de uso:
Si necesitas garantizar la protección de datos confidenciales almacenados en
AWS y cumplir con regulaciones y estándares de privacidad de datos, Amazon
Macie es la solución ideal.
5. Vectores de amenazas externas a
AWS
5.1. Denegación de servicio
distribuido (DDoS)
Los ataques de denegación de servicio distribuido (DDoS) son intentos maliciosos de inundar nuestros recursos con tráfico no deseado, lo que provoca la sobrecarga y el agotamiento de recursos, lo que lleva a una degradación o interrupción del servicio.
Para
proteger nuestras aplicaciones y recursos de AWS contra ataques DDoS, podemos
utilizar AWS Shield.
AWS Shield
es un servicio gestionado que protege nuestras aplicaciones de AWS contra
ataques DDoS. Hay dos niveles de AWS Shield:
- AWS
Shield Standard: Protección automática y gratuita contra
ataques DDoS comunes para todos los recursos de AWS.
- AWS
Shield Advanced: Protección adicional y personalizada
contra ataques DDoS más sofisticados, con acceso a soporte 24/7 y costos
de mitigación de ataques cubiertos.
5.2. Inyección SQL
La inyección SQL es un tipo de
ataque en el que un atacante inserta o "inyecta" código SQL malicioso
en una consulta a nuestra base de datos, lo que puede provocar la exposición,
modificación o eliminación no autorizada de datos. Para proteger nuestras aplicaciones
de AWS contra inyecciones SQL, podemos utilizar AWS Web Application Firewall
(WAF).
AWS WAF
es un firewall de aplicaciones web que nos permite crear reglas personalizadas
para proteger nuestras aplicaciones de amenazas web comunes, como inyecciones
SQL y ataques de scripts entre sitios (XSS). AWS WAF se integra fácilmente con
Amazon CloudFront, Application Load Balancer y Amazon API Gateway.
Índice Habilidades:
- Diseñar arquitecturas de VPC con
componentes de seguridad (por ejemplo, grupos de seguridad, tablas de
enrutamiento, ACL de red, gateways NAT).
- Determinar
las estrategias de segmentación de red (por ejemplo, el uso de subredes
públicas y subredes privadas).
- Integrar
a los servicios de AWS para proteger las aplicaciones (por ejemplo, AWS
Shield, AWS WAF, AWS SSO, AWS Secrets Manager).
- Proteger
las conexiones de red externas desde la nube de AWS y hacia ella (por
ejemplo, VPN, AWS Direct Connect).
2. Diseñar arquitecturas de VPC con
componentes de seguridad
Una VPC (Virtual Private Cloud) es
un entorno de red virtual aislado en AWS. Al diseñar una arquitectura de VPC,
es fundamental incluir componentes de seguridad, como grupos de seguridad,
tablas de enrutamiento, ACL de red y gateways NAT.
2.1. Grupos de seguridad
Los grupos de seguridad actúan como
firewalls virtuales para tus recursos de AWS, permitiéndote controlar el
tráfico entrante y saliente. Al diseñar tu VPC, asegúrate de asignar grupos de
seguridad apropiados a tus recursos para controlar el acceso.
2.2. Tablas de enrutamiento
Las tablas de enrutamiento
determinan cómo se dirige el tráfico entre las subredes y fuera de tu VPC. Es
importante diseñar tablas de enrutamiento que permitan el flujo de tráfico
necesario mientras bloquean el tráfico no deseado.
2.3. ACL de red
Las ACL de red (listas de control
de acceso) son otro nivel de seguridad que puedes aplicar en tus subredes. A
diferencia de los grupos de seguridad, las ACL de red operan a nivel de subred
y pueden permitir o denegar tráfico específico según las reglas que
establezcas.
2.4. Gateways NAT
Un gateway NAT (traducción de
direcciones de red) permite a las instancias en subredes privadas acceder a
Internet mientras mantienen sus direcciones IP privadas. Esto mejora la
seguridad al evitar que las instancias sean alcanzadas directamente desde
Internet.
3. Determinar las estrategias de
segmentación de red
La segmentación de red es una
práctica clave para mejorar la seguridad de tus aplicaciones en AWS. Al separar
tus recursos en diferentes subredes, puedes aislar y proteger mejor tus activos
críticos.
3.1. Subredes públicas
Las subredes públicas son aquellas
en las que las instancias tienen direcciones IP públicas y pueden comunicarse
directamente con Internet. Por lo general, colocarás recursos como
balanceadores de carga y servidores web en subredes públicas.
3.2. Subredes privadas
Las subredes privadas son aquellas
en las que las instancias tienen direcciones IP privadas y no pueden
comunicarse directamente con Internet. Por lo general, colocarás recursos
sensibles, como bases de datos y servidores de aplicaciones, en subredes privadas.
4. Integrar servicios de AWS para
proteger las aplicaciones
AWS ofrece una variedad de
servicios que puedes integrar para proteger tus aplicaciones, como AWS Shield,
AWS WAF, AWS SSO y AWS Secrets Manager.
4.1. AWS Shield
AWS Shield es un servicio gestionado
que protege nuestras aplicaciones de AWS contra ataques DDoS. Al integrar AWS
Shield en tus aplicaciones, puedes proteger tus recursos contra ataques DDoS
comunes y sofisticados.
4.2. AWS WAF
AWS Web Application Firewall (WAF)
es un firewall de aplicaciones web que nos permite crear reglas personalizadas
para proteger nuestras aplicaciones de amenazas web comunes, como inyecciones
SQL y ataques de scripts entre sitios (XSS). Al integrar AWS WAF con tus
aplicaciones, puedes mejorar significativamente la seguridad de tus
aplicaciones web.
4.3. AWS SSO
AWS Single Sign-On (SSO) es un
servicio que facilita la administración centralizada del acceso a varias
cuentas y aplicaciones de AWS. Al integrar AWS SSO en tus aplicaciones, puedes
simplificar la autenticación y autorización de usuarios, mejorando la seguridad
y la experiencia del usuario.
4.4. AWS Secrets Manager
AWS Secrets Manager es un servicio
que ayuda a proteger y administrar las credenciales, claves de API y otros
secretos utilizados en tus aplicaciones. Al integrar AWS Secrets Manager en tus
aplicaciones, puedes proteger tus secretos y garantizar que solo los usuarios y
servicios autorizados tengan acceso a ellos.
5. Proteger las conexiones de red
externas desde la nube de AWS y hacia ella
Las conexiones de red externas
pueden representar riesgos de seguridad si no se gestionan adecuadamente. AWS
ofrece soluciones como VPN y AWS Direct Connect para proteger estas conexiones.
5.1. VPN
Una conexión VPN (Virtual Private
Network) te permite establecer una conexión segura y cifrada entre tu red local
y tu VPC en AWS. Al utilizar VPN, puedes proteger tus datos en tránsito y
garantizar la privacidad y la integridad de tus comunicaciones.
5.2. AWS Direct Connect
AWS Direct Connect es un servicio
que proporciona una conexión de red dedicada entre tu red local y AWS, lo que
te permite eludir los riesgos asociados con el uso de Internet público. Al
utilizar AWS Direct Connect, puedes mejorar la seguridad y el rendimiento de
tus conexiones de red externas.
6. Caso práctico: Protección de una
aplicación web en AWS
Imagina que estás desarrollando una
aplicación web en AWS que necesita protección contra amenazas comunes y
conexiones seguras. Para diseñar y proteger esta aplicación, seguirías los
siguientes pasos:
6.1. Diseñar la arquitectura de VPC
Crea una VPC con subredes públicas
y privadas. Coloca tus servidores web en las subredes públicas y tus servidores
de aplicaciones y bases de datos en las subredes privadas.
6.2. Configurar componentes de
seguridad
Configura grupos de seguridad,
tablas de enrutamiento, ACL de red y gateways NAT para controlar y proteger el
tráfico entre tus recursos y el acceso a Internet.
6.3. Integrar servicios de AWS
Integra AWS Shield para proteger
tus servidores web contra ataques DDoS, AWS WAF para proteger tu aplicación web
contra inyecciones SQL y ataques XSS, AWS SSO para la autenticación y
autorización de usuarios, y AWS Secrets Manager para proteger tus credenciales
y secretos.
6.4. Proteger conexiones de red
externas
Establece una conexión VPN o
utiliza AWS Direct Connect para proteger las comunicaciones entre tu red local
y la VPC de AWS, garantizando la seguridad y privacidad de tus datos en
tránsito.
Caso práctico: Protección de un
sistema de comercio electrónico en AWS
Imagina que estás desarrollando una
plataforma de comercio electrónico en AWS que requiere protección contra
amenazas comunes y conexiones seguras. Para diseñar y proteger esta plataforma,
seguirías los siguientes pasos:
1. Diseñar la arquitectura de VPC
Crea una VPC que incluya subredes
públicas y privadas. Coloca los servidores web y balanceadores de carga en las
subredes públicas, y los servidores de aplicaciones y bases de datos en las
subredes privadas.
2. Configurar componentes de
seguridad
- Grupos de
seguridad: Crea grupos de seguridad para cada tipo de
recurso, permitiendo el tráfico necesario y bloqueando el resto. Por
ejemplo, un grupo de seguridad para servidores web permitiría tráfico
HTTP/HTTPS desde cualquier dirección IP, mientras que otro grupo de
seguridad para servidores de aplicaciones permitiría únicamente el tráfico
desde los servidores web.
- Tablas de
enrutamiento: Configura tablas de enrutamiento para
dirigir el tráfico correctamente entre las subredes y fuera de la VPC.
Asegúrate de que las tablas de enrutamiento de las subredes privadas no
permitan el tráfico directo a Internet.
- ACL de
red: Establece ACL de red en cada subred para proporcionar un nivel
adicional de seguridad. Por ejemplo, en las subredes privadas, bloquea el
tráfico entrante desde direcciones IP desconocidas.
- Gateways
NAT: Implementa gateways NAT en las subredes públicas para permitir que
las instancias en las subredes privadas accedan a Internet, manteniendo
sus direcciones IP privadas.
3. Integrar servicios de AWS
- AWS
Shield: Activa AWS Shield para proteger tus servidores web y balanceadores
de carga contra ataques DDoS.
- AWS WAF:
Implementa AWS Web Application Firewall (WAF) en tus balanceadores de
carga para proteger tu aplicación contra inyecciones SQL, ataques XSS y
otras amenazas comunes.
- AWS SSO:
Configura AWS Single Sign-On (SSO) para simplificar la autenticación y
autorización de usuarios en tu plataforma de comercio electrónico,
permitiendo a los empleados acceder a los recursos de AWS de manera segura
y eficiente.
- AWS
Secrets Manager: Utiliza AWS Secrets Manager para proteger
y administrar las credenciales, claves de API y otros secretos utilizados
en tu plataforma, asegurándote de que solo los servicios y usuarios
autorizados tengan acceso a ellos.
4. Proteger conexiones de red
externas
- VPN:
Establece una conexión VPN entre tu red local y la VPC de AWS para
proteger las comunicaciones de back-end, como la actualización de
inventario y la sincronización de bases de datos.
- AWS
Direct Connect: Considera utilizar AWS Direct Connect para
establecer una conexión de red dedicada entre tu red local y AWS,
mejorando la seguridad y el rendimiento de tus conexiones de red externas.
De estas forma habrás diseñado y protegido efectivamente tu plataforma de comercio electrónico en AWS utilizando las habilidades y componentes clave de seguridad mencionados en esta guía.
Además, habrás implementado una solución sólida y segura que resiste las
amenazas comunes y garantiza la protección