Architecture Championship: Seguridad en la Era Digital: Aplicativos y protección de datos sensibles

Ingeniero Víctor and Bruno walk through securing an ERP system on AWS, covering identity management, encryption, monitoring, and incident response. A practical case study in cloud security architecture from CompuCloud's Architecture Championship series.
Architecture Championship sobre el tema de seguridad, la verdad es que es un tema que a todos es muy común hablar hoy de eso, ¿No? Pues básicamente por el momento en que vivimos, o sea, la ciberseguridad se ha convertido en uno de los temas más importantes que debemos abordar tanto personal como a manera corporativa. Y pues esto, o sea, hoy en día todos somos propensos a lo mejor algún ataque de parte de los delincuentes, ciberdelincuentes, etcétera, que buscan interrumpir nuestras operaciones, robar nuestra información confidencial, etcétera, e incluso pues extorsionarnos por esto. Es por eso que, que pues nosotros pues básicamente traemos un framework, que es lo que vamos a estar hablando ahorita a lo largo de todo este Architecture Championship, el cómo ir desarrollando una arquitectura robusta, obviamente aprovechando los servicios que AWS nos ofrece y que la verdad en comparación a lo mejor con otros servicios a lo mejor muy tradicionales o incluso que se venían manejando anteriormente, son bastante eficaces y muy rápidos de implementar. Entonces, ya entrando ahora sí en materia, el Framework que nosotros manejamos aquí internamente en Comput Cloud consta de cuatro pilares por así decirlo. El primero que básicamente es identificar, identificar la causa de raíz de algún problema o incluso alguna brecha de seguridad. Básicamente también vamos a estar apalancando algunos servicios que vamos a estar mostrando para tener una completa observabilidad dentro de nuestros recursos de AWS, cómo aprovechar al máximo estos servicios y pues obviamente ver la manera también de cómo se puede integrar en nuestra aplicación o negocio. El siguiente pilar es evitar, evitar lo mayor posible las vulnerabilidades, apalancándonos también de estos servicios, implementando una arquitectura robusta y pues gracias a esto vamos a tener un mayor nivel de seguridad en nuestra aplicación. Detectar también el siguiente punto es muy importante porque pues gracias a los servicios que vamos a estar mostrando, a las soluciones, nosotros nos vamos a estar apalancando de estos para poder detectar vulnerabilidades, ver a lo mejor también algo anómalo que pueda surgir dentro de nuestros recursos y pues finalmente también responder. Este es el punto final y el punto clave para mí, porque pues con base en esto nosotros podemos tener, podemos crear un plan de acción, con base en estos cuatro pilares, podemos tener un plan de acción para responder a estos ataques, es decir, si ya tenemos bien identificados los otros tres puntos de nuestro Framework, nos va a ser más fácil responder ante un evento o ante una eventualidad o anormalidad que pueda surgir dentro de nuestra nuestra consola o en este caso también de nuestra aplicación. Muy bien, entonces continuando con esto voy a presentar lo que es nuestro nuestro caso, realmente lo que traemos ahorita es un ejemplo de una empresa que cuenta con un servicio de un ERP en la nube, este cliente ya tiene su infraestructura administrada y montada en lo que es la nube, lo tiene en una aplicación, en una instancia EC, toda la aplicación, la parte del front y la parte del backend lo tiene en una RDS y básicamente todo está en un ambiente público, los recursos los administran a través de Internet, realmente no tienen un nivel de seguridad alto por el que puedan estar accediendo y que tengan los recursos privados y que no sean accesibles por cualquier persona y pues las peticiones también directamente las realizan a través de la IP pública del servidor, básicamente porque todo ahorita es público y cabe mencionar que la aplicación es funcional, o sea, todo esto funciona de manera normal, de manera bien, o sea para nuestra empresa funciona bastante bien, pero pues obviamente carece de los servicios mínimos y obviamente también de las mejores prácticas de seguridad que nos ofrece AWS. Es como vamos a ir desglosando aquí nuestra solución que nosotros damos hacia nuestros clientes. Cabe mencionar que somos expertos en la parte de seguridad, tenemos por ahí también una competencia aquí con Pucloud que somos proveedores de servicios administrados de seguridad, es MSSP de parte de AWS, entonces pues qué mejor con nosotros que les podamos ofrecer las soluciones de seguridad. Entonces este es el caso. Voy a ceder los micrófonos a Bruno, él les va a estar mencionando inicialmente lo que es esta arquitectura, entonces los dejo con el Inge Bruno, muchas gracias.
Muchas gracias Ingeniero Víctor. ¿Entonces comienzo yo presentando lo que viene siendo ya la arquitectura, ahora sí que sin seguridad como nos comentaba, como nos comentaba el ingeniero Víctor, en este caso lo que hacen ahora sí que los usuarios y los colaboradores de dicha empresa es que acceden a través de la, ahora sí que de la IP, como pueden ver esto la verdad es muy mala práctica ya que como tal pues estamos dando a conocer al mundo cuál es nuestra IP privada, bueno, cuál es nuestra IP pública de nuestro servidor, ahora sí que esto para cualquier tipo de atacante le puede ser así que muy fácil, ya que como tal ya saben nuestra IP podría ser fácilmente ataques de denegación de servicios, inclusive algún ataque para intentar acceder como si fuera un cliente para poder sacar información así que confidencial no? Aparte de esto como tal como se puede ver directamente se tienen las, ahora sí que las URLs sin ningún tipo de protección y pues digamos así, si alguien curioso por ejemplo digamos que un cliente intenta meterse a dos colaboradores y viceversa pues lo podría logar poniendo ciertas claves a la hora de estar en la URL. Como comentaba también el ingeniero Víctor, la instancia EC y la base de datos están en una subnet pública, esto la verdad es muy mala práctica ya que como tal al estar en una subnet pública cualquiera puede alcanzar esos recursos, por ejemplo inclusive yo desde mi computadora personal si pudiera yo por ejemplo hacerle ping a la misma IP que ya se tiene del cliente y ahora sí que es muchísimo más sencillo ya que ellos nos están revelando su propia IP y dónde está montado su aplicativo. Ahora sí el tema de también cuenta con un disco duro ahora sí que atachado a la instancia s, este disco duro también ahora sí que no está protegido por lo que viene siendo una KMS, que una KMS ahora sí que es lo que se encarga de encriptar este disco duro digámoslo así, que si alguien lograra acceder a nuestra consola de AWS podría jalar este disco duro a su propia consola de AWS e inclusive levantar una nueva instancia EC y atachar este disco duro que tenemos y así que sacar toda la información ya que no está encriptado para nada y ahora sí que eso también es una práctica muy mala de seguridad extra Esto se tiene que por ejemplo el ERP está consultando constantemente un bucket s para visualizar por ejemplo lo que viene siendo imágenes de los clientes, ahora sí que información varia y cabe mencionar que este rol de IAM ahora sí que tiene todos los permisos de bucket s, ahora sí que se puede eliminar, puede modificar, puede crear, así que puede ser cualquier cosa, también es muy mala práctica ya que por ejemplo si algún colaborador digámoslo así, se llegase a enojar o se llegase a no sé, a volver rebelde podría inclusive entrar y borrarnos todos los datos de este bucket s y dejarnos sin información. Aparte de esto se tiene que el usuario admin de la instancia EC está accediendo por la IP pública y no por ninguna IP privada, eso tiene es muy mala práctica ya que como tal estamos revelando esta información a todo el mundo ya que estamos accediendo a través del Internet. Ahora sí que procedemos un poquito más a cómo solucionar este tipo de problemas que se tiene en esta infraestructura con seguridad y observabilidad en la consola de AWS. Primero empezaremos con un servicio que nos estará ayudando a visualizar quiénes y qué personas acceden a qué recursos de la consola de AWS, en este caso estoy hablando primero de AWS Identity and Access Management, mejor conocido como IA. Este servicio de AWS es el que nos permite controlar de manera segura a los recursos de tu consola AWS y quienes pueden hacer que con dichos recursos. Una forma de hacer esto es creando usuarios y estos usuarios dándole permisos, aquí como pueden ver políticas muy específicas, por ejemplo podemos crear un grupo de usuarios que se llame usuarios de Developer que sólo tengan acceso a recursos que son usados para developer, podemos crear un grupo productivo que se llame productivo que sólo tenga acceso a recursos de productivo y ahora sí que esto es lo que nos ayuda IAM nos ayuda a darnos un acceso granular a solo ciertos recursos de la consola AWS y quienes puedan acceder a estos recursos. Continuando un poco con esto pasamos con AWS Secrets Manager, el servicio de AWS es el que nos ayuda a gestionar de manera segura y información confidencial como contraseñas, claves, API y otros secretos de nuestro aplicativo, como podría ser por ejemplo digámoslo así, nosotros ahora sí que tenemos el código de nuestra aplicación, digámoslo así, resguardado directamente dentro de la instancia s o dentro de nuestro propio servidor, si alguien lograra entrar a este servidor podría ver inclusive por ejemplo la contraseña de la RDS o de la base de datos, así sin ningún problema ya que la estamos poniendo nosotros explícitamente ahí con el servicio de AWS Secrets Manager, en lugar ellos de ver directamente por ejemplo la contraseña de la base de datos, estarán viendo un ARN de un secreto de AWS y ahora sí que este ARN pues no les va a dar ningún tipo de información ya que como tal no pueden acceder ahora sí que a este recurso. Dentro de las algunas características de este es el almacenamiento seguro, rotación automática, ahora sí que podemos hacer que este ARN esté cambiando cada cierto tiempo, lo recomendable es 90 días por mayor seguridad. ¿Acceso granular Como les comentaba podemos ponerle permisos de quienes pueden acceder a este recurso y cuando pueden acceder no? Auditoría y monitorización Pero algo muy padre de este recurso es que podemos generar, por ejemplo, un reporte de quienes accedieron a estos secretos y cuando accedieron, a través de qué recursos accedieron. Esto nos ayudará por ejemplo, a tener, digamos así, pues tener mayor observabilidad de quién lo están utilizando y quizás inclusive denegarles aún más para hacer la consola un poquito más segura. Pasamos con AWS GuardDuty, ahora sí que Warduty utiliza ML Machine Learning o Anomaly Detection para escanear malware e Inteligencia de amenazas integrada para identificar potenciales amenazas. Lo que se está encargando Warduty es que hagan de cuenta que es, digamos así, una cámara que está constantemente monitoreando quiénes y cómo están accediendo a nuestros recursos. Por ejemplo, digámoslo así, tenemos que los usuarios de DEP están accediendo a los recursos de desarrollo, se ponen a modificarlos, se pueden hacer pruebas en estos, pero de repente uno se da cuenta que tiene permiso para acceder a los recursos de productivo y pues ahora sí que War Duty, debido a que se encarga estar constantemente monitoreando esto, nos va a avisar de oye, este usuario de devolver está accediendo a estos recursos de productivo cuando no debería de estar haciendo esto y nos estará por ejemplo, mandando estos findings a través de una consola que es la verdad muy fácil de ver y muy fácil de investigar para poder solucionar este tipo de cosas. Como les comentaba, monitorea continua y automáticamente ahora sí que todos nuestros workloads dentro de los recursos de AWS cara potenciales amenazas, ahora sí que también inclusive logra estar monitoreando constantemente las IPs de quienes están haciendo estos recursos, Ahora sí que, digámoslo así como lo teníamos en el primer caso, que teníamos que se estaban accediendo al ERP a través de las ips públicas, digámoslo así, que de repente, pues uno que no es cliente accede con una IP que no reconocemos. En este caso, ahora sí que Guarduti nos va a avisar, oye, esta IP accedió a este recurso y no la habíamos, ahora sí que no se había manejado antes, así que checa qué es lo que está pasando, ¿No? Y pues ahora sí que algo padre también de este servicio es que es realmente sencillo de activar, ahora sí que nada más es un clic y se activa en automático y ya se encarga de estar monitoreando todo esto sin ningún tipo de configuración extra. ¿Continuamos con lo que les venía diciendo de KMS, ahora sí que AWS Key Management Services o KMS es un servicio de AWS que nos permite crear y controlar fácilmente claves de cifrado para proteger los datos y recursos dentro de la nube de AWS, ahora sí que KMS nos permite crear a nosotros claves de encriptación dentro de la misma consola de AWS para encriptar nuestros datos, nuestros datos de los recursos de AWS, por ejemplo lo que les comentaba de los volúmenes EC, podemos encriptar estos volúmenes EBS como puede ser ahí descifrar y descifrar datos y ahora sí que nadie puede acceder a estos datos a menos que sea a través de nuestra consola, les pongo el ejemplo, si alguien se llegara a llevar este volumen a otra consola de AWS pero ya está cifrado con KMS pues no puede hacer nada ya que como está encriptado pues no tiene acceso a nada, OK? ¿Nos permite firmar y verificar de quiénes están accediendo a estos recursos, nos permite generar y exportar claves de datos, ahora sí que lo padre también esto es que por ejemplo en vez de estar utilizando quizás claves para cada una de las regiones que tenemos datos en la consola DWS podemos generar una clave única que se estará exportando en todas las regiones de la misma consola DWS y nos ayuda a generar y verificar direcciones Mac, OK, Continuamos, continuamos con AWS Config, ahora sí que AWS Config nos ayuda a identificar recursos que se han estado cambiando, por ejemplo, les pongo un ejemplo, digámoslo así, que nosotros queremos que nuestra instancia EC o nuestro servidor no tenga acceso público a través del puerto 22 que es el puerto SSH, OK? Config nos va a estar monitoreando constantemente ahora sí que todos estos recursos para que no se les dé acceso por Puerto 22, digámoslo así, que alguien llega y crea una instancia EC y le da permisos al SSH para que pueda acceder por todo el mundo, awsconfig nos va a estar mandando una notificación de que oigan, este usuario creó esta instancia con este puerto abierto al mundo, ahora sí que hay que solucionarlo ya que no está bien como les comentaba registra configuraciones de lo que se está haciendo, captura cambios y utiliza reglas personalizadas o predefinidas para AWS, ahora sí que ya como tal config ya viene con reglas predefinidas que ya son creadas por AWS, quiere decir que ya son con las mejores prácticas, ahora sí que nada más desactivarlas y ya nos estará monitoreando constantemente todos los recursos dentro de la consola de AWS. Ahora pasamos con AWS Crowdfil, AWS Crowdfield, algo es parecido a Warduty pero un poco más especializado, ya que CloudTrail nos estará guardando todos los movimientos que se hagan dentro de la consola, por ejemplo ponemos que el usuario tal accedió a cierto recurso, nos va a marcar que el usuario este accedió este recurso a tal hora a través de cierta IP, a través de cierto buscador, ahora sí que vean que es como una cámara de seguridad que está constantemente vigilando nuestra consola de AWS, así que monitorea actividades en la cuenta AWS. Analiza eventos en consola o registros con Athena, ahora sí que podemos ponerle un filtrado con un servicio llamado Athena para que nos esté. Para verlo un poquito más fácilmente y no tener que estarlo buscando así granularmente. Almacena registros en cloudwatch Logro o en Buckets DS, ahora sí que esto de los Buckets nos podrá servir mucho ya que podríamos guardar estos registros de Cloudflare de una manera histórica para quizás en algún momento hacer una reductoria de seguridad de qué usuario accedió, adquiere recursos y qué fue lo que estuvo pasando en la consola de AWS. Pasamos a lo siguiente y pasamos con Amazon CloudWatch. Amazon CloudWatch es un servicio que nos ayuda a colectar métricas periódicamente, ahora sí que por ejemplo podemos estar coleccionando métricas, digámoslo así, de nuestras interfaces EC o de nuestras RDS, Nos ayuda a visualizar métricas, registros en dashboards en tiempo real, por ejemplo con cloudwatch podemos hacer lo que vienen siendo dashboards en los cuales estamos monitoreando las métricas de nuestros recursos, por ejemplo que el CPU se está utilizando a cierta cantidad, que la RAM se está utilizando a cierto punto, que el disco duro se está utilizando así y por ese tipo de cosas responder a eventos predefinidos. Podemos nosotros hacer por ejemplo una alarma que cuando pase algo que así que por ejemplo el CPU llegó al 90% de uso, nos notifica a nosotros o al equipo de developer que oye, algo está pasando, que la instancia llegó a cierto punto de uso, ahora sí que ya para que el equipo encargado pueda entrar a la instancia y pueda verificar qué es lo que está pasando, nos ayuda a analizar métricas para visualizar patrones y configurar alarmas. Como les comentaba, ahora sí que nos ayuda a configurar alarmas y visualizar estos patrones para saber qué es lo que está pasando. Ahora sí que les vengo a mostrar la misma arquitectura que ya se tenía nada más con un poquito más de seguridad de lo que ya se le estuvo mencionando, por ejemplo en este caso lo que se configuró vendrían siendo las alarmas que les comentaba de cloudwatch para lo que viene siendo la instancia EC y la base de datos ahora sí que nos estará avisando cuando algo malo esté pasando con estos recursos del aplicativo. Tan como les comentaba las llaves KMS ya se colocaron tanto en el volumen como en la base de datos para esto para tener aún más seguridad ya que pues ahora sí que sólo nosotros a través de nuestra consola vamos a poder acceder a estos recursos. Además de eso se colocó que los usuarios que accedan a la consola de AWS tengan solo ciertos permisos granulares y aparte estos permisos tengan algo que se llama MFA Token, que el MFA Token es ahora sí que acceder por dos pasos, ahora sí que nos pide un código extra además de la contraseña, ahora sí que esto nos da aún más seguridad ya que sólo estos usuarios van a acceder a esta consola. Y también se activó lo que viene siendo warduty para que esté analizando constantemente nuestros recursos dentro de la consola y nos esté mandando logs de qué es lo que está pasando dentro de la misma consola. Ahora en este caso le voy a ceder la palabra a mi ingeniero Víctor para que pueda continuar con seguridad y visibilidad a nivel de red. Súper.
Excelente, excelente información Bruno y pues muchas gracias por esta información y pues vamos a continuar realmente con el siguiente nivel de seguridad que es el que estamos viendo en pantalla actualmente. Vamos a ver la seguridad y obviamente la observabilidad también a nivel de red. Vamos a presentar lo que son los servicios que nos pueden estar ayudando también a darle una seguridad más robusta en la parte de nuestra aplicación y nuestra consola. Entonces voy a continuar con el servicio base, este yo siempre lo llamo el servicio por decirlo fundamental, realmente al momento de nosotros que queremos desplegar recursos en la consola de AWS nos apalancamos de ese servicio que es Amazon Virtual Private Cloud, que es básicamente nuestra porción de nube, así lo llamamos siempre es nuestra porción de nube en una región lógicamente aislada de todos los recursos de otras redes, de otros clientes, etcétera, otras cuentas. Entonces aquí nosotros vamos a definir lo que es nuestro CIDR, nuestro bloque de IPs que vamos a tener disponibles para nosotros desplegar nuestros recursos. Aquí nosotros vamos a elegir este CIDR completo y conforme a esto también lo vamos a ir segmentando en sus redes. Estas subredes nosotros las podemos segmentar a nuestro criterio de arquitectos de soluciones, etcétera, o arquitectos de redes y aquí podemos nosotros también crear subredes públicas y subredes privadas. Y el tercer componente que estamos viendo en pantalla que son las tablas de ruteo, esto básicamente nos ayuda a poder nosotros rutear o redireccionar también lo que es todo el tráfico a través de nuestras distintas IPs o segmentos que ya sea pueden venir desde dentro o desde fuera. Aquí nosotros vamos a permitir lo que es el tráfico si nosotros queremos que nuestra subred sea pública o nuestra subred sea privada. Y pues básicamente en el cuarto pilar, bueno en el cuarto punto que se ve ahí de las conexiones de red, nosotros vamos a utilizar un servicio para lo que es una subred pública, es un recurso, perdón, que se llama Internet Gateway, este pues básicamente nos permite, nos abre la puerta a Internet directamente a nuestra VPC y esto es recomendable para subredes públicas en donde nosotros necesitamos exponer nuestro servicio a Internet, que digo no es la finalidad de la solución sino todo lo contrario, o sea ver el tema de una subred privada y esta básicamente la podemos configurar con un recurso también que se llama NAT Gateway, que esta NAT básicamente es la puerta de salida de todos nuestros recursos hacia Internet y únicamente nos va a permitir tener acceso para administrar el servidor y para por así decirlo, parchear, actualizar nuestros servidores, etcétera, todo lo que tenga que ver con descarga de paquetes, repositorios, etcétera. Una NAT nos puede ayudar a hacer todo este todo este trabajo sin necesidad de exponer nuestros recursos al público. Esta nada se sitúa básicamente es la que se sitúa en lo que es una subred privada, entonces al momento de que nosotros despleguemos esta NAT en nuestras subredes, tenemos que situarla en una red pública y esta es la que va a contener la IP pública, en este caso una Elastic IP y con esta es donde vamos a exponer nuestros recursos, el recurso de observabilidad a nivel de red, son los flow logs también, que estos básicamente nos dan los registros de todo el tráfico que surge a través de nuestra red, de nuestros recursos, ya sea nuestras instancias EC, balanceador de aplicaciones, RDS, etc. Estas contienen una interfaz de red y todo lo que llega a estas interfaces de red, estos registros llamados flow logs, los está capturando, nosotros los podemos capturar directamente en un archivo que nos ofrece este servicio y los podemos mandar directamente a un Bucket DS o a un Lock Group. La verdad es que como solución siempre recomendamos mandarlos a un logro de cloudwatch porque la visualización es más transparente. Entonces nos da un registro de la hora en que fue ejecutada la solicitud, la IP destino, la IP fuente, el protocolo, el puerto por el que fue por el que fue solicitado la petición y hacia dónde, etcétera. Entonces nos da una visibilidad realmente muy, muy amplia y muy transparente. Y otro componente de lo que es también nuestra VPC son las Listas de control de acceso o las ACL que nos ofrece AWS para que nosotros podamos permitir o denegar el acceso hacia un segmento de red o hacia una IP en específico. Entonces este también nos ayuda realmente a que nosotros podamos denegar a lo mejor si detectamos en nuestros registros de flujo de red, los flow logs, alguna IP o algún segmento que realmente no conocemos, entonces este en automático también nos ayuda y lo podemos nosotros bloquear. Entonces también o directamente también es el servicio de webduty que mencionó Bruno hace un momento, este cuando nos arroja un finding, también nos arroja la IP del atacante, en este caso el que generó el finding, el hallazgo, nos da la IP, puede ser una IP local o una IP de otro país, etc. Entonces esta IP también nosotros la podemos bloquear directamente en nuestra lista de control de acceso y pues obviamente también nos da otro nivel de seguridad para que nosotros no estemos permitiendo acceso no deseado a lo que es nuestra red interna en AWS. Entonces esto es una de las tantas características que nos ofrece la VPC. Y pues para continuar también voy a hablar de lo que es una VPN, en este caso una VPN Site to site, que es el servicio de AWS para poder establecer una conexión segura y privada entre nuestra red local en sitio, nuestro corporativo, etcétera, hacia nuestra infraestructura AWS, o sea, hacia nuestra parte de la VPC, esa es donde vamos a tener visibilidad completa. Entonces nos provee, como dije, una conexión segura, esta conexión realmente nos la da a través de Internet, es una conexión dedicada pero todos los datos vienen encriptados, nos ofrecen todas las llaves criptográficas de última generación y pues nos da acceso, como lo dije, a todos los recursos en la nube. Si nosotros tenemos desplegados en nuestra VPC, EC, instancias, RDS, funciones Lambda, instancia de contenedores, etcétera, todo lo que esté dentro de esta VPC lo va a poder visualizar nuestra red local, porque esta VPN está asociada directamente a lo que es nuestra VPC. Es realmente escalable y altamente disponible. Les puedo decir también que es uno de los servicios de AWS que realmente nunca falla, tiene a mi parecer una disponibilidad del 99% y nos provee una redundancia cíclica, nos da dos túneles para configurar y se puede integrar con diferentes proveedores de redes, por ejemplo Cisco, Fortinet, Palo Alto, etcétera. Entonces se puede integrar con diferentes proveedores de redes, por ejemplo Cisco, Fortinet, Palo Alto, etcétera. Entonces tiene compatibilidad con estos proveedores también para que se pueda configurar y tengan una mayor, por así decirlo, compatibilidad. Entonces tiene compatibilidad con estos proveedores también para que se pueda configurar y tengan una mayor, por así decirlo, compatibilidad. Entonces nos provee una redundancia de dos túneles, porque en comparación cuando configuramos solamente un túnel en lo que es una VPN, nos provee una redundancia de dos túneles, porque en comparación cuando configuramos solamente un túnel en lo que es una VPN, este túnel si se llega a caer, pues obviamente perdemos la conexión momentánea hacia lo que es ambas redes con AWS nos da dos túneles, nos ofrece dos túneles porque en algún momento de que llegue a fallar al túnel, si se llega a caer, pues obviamente perdemos la conexión momentánea hacia lo que es ambas redes con AWS en un túnel podemos hacer un failover y podemos estar conectándonos a nuestro segundo túnel que lo tenemos obviamente como este, como recuperación inmediata. Entonces nos provee, nos da dos túneles, nos ofrece dos túneles porque en algún momento de que llegue a fallar algún túnel, podemos hacer un failover y podemos estar conectándonos a esos dos túneles para una alta disponibilidad. Y pues realmente la configuración es bastante flexible, o sea, no necesitamos meter mayor configuración del AWS, les puedo decir a lo mejor que nos toma unas dos horas en levantar una VPN en comparación que si lo hacíamos de manera tradicional. Y pues bueno, entonces continuando con. Con la parte de red, estamos viendo lo que es nuestra arquitectura como la. Este, Como nos la había dejado Bruno, estamos viendo que ahorita nuestras subredes, nuestras subredes públicas pues no tienen un mayor nivel de seguridad. También nuestros Security Groups están abiertos como tal ahorita al mundo y vemos también que la administración se está haciendo directamente a lo que es nuestro servidor. Entonces vamos a meter la parte de seguridad en red para que vean en AWS y ahora lo estamos viendo directamente con unas subredes privadas y también aquí por ejemplo en la parte de la aplicación web, en donde es donde está la instancia EC, aquí en donde estamos seleccionando, pues ahora lo tenemos en una subred privada, no tenemos la administración directa en lo que es hacia el puerto abierto al mundo, ahora lo tenemos segmentado por una conexión de VPN, si la estamos viendo aquí en pantalla, tenemos una conexión de VPN Site to Site que básicamente nos viene la conexión desde nuestro Data Center corporativo, aquí vemos todos los servidores y está configurado a través de un Customer Gateway. El Customer Gateway aquí en AWS se llama así, pero de su lado pues es la IP estática que ustedes tienen como salida su NAT y tenemos una conexión de VPN la cual se conecta a un Virtual Private Gateway Law AWS que también es una conexión que es la que encripta y permite lo que es la comunicación hacia nuestra VPC. Entonces ahorita ya no tenemos necesidad en esta arquitectura, ya no tenemos necesidad de tener unas redes públicas ni la administración directamente por un segmento público abierto al mundo y ya lo estamos haciendo realmente todo, toda la parte de la comunicación privada. Entonces aquí toda la red corporativa está conociendo toda mi VPC, todo mi segmento de VPC y viceversa, mi VPC también conoce todo el segmento de lo que es mi red corporativa. Entonces este es otro nivel de seguridad que nosotros ofrecemos como soluciones hacia nuestros clientes obviamente para tener lo que es una arquitectura bastante robusta en cuanto a seguridad. Muy bien, entonces voy a continuar con el siguiente punto que ahorita va a ser el siguiente nivel que va a ser a nivel aplicación. Vamos a comentar algunos de los servicios que nosotros podemos estar integrando a lo que es nuestra cómo consultamos nuestra aplicación, nuestro aplicativo ya tal cual como clientes finales. Entonces voy a iniciar con lo que es el servicio de Ruta 53, es el que están viendo en pantalla y este servicio básicamente es un servicio de Domain Name Servers, es un servicio DNS, nos proporciona nombres de dominio básicamente y también registro, tanto aquí nosotros podemos comprar nuestro dominio com, org, etc mx, aquí lo podemos comprar de la AWS e incluso también lo podemos estar administrando, nos ofrece también la posibilidad de lo que es rotar el tráfico ya sea desde nuestro dominio hacia una IP en específico o hacia un DNS, nosotros aquí podemos estar gestionándolo y es o incluso también si ustedes ya tienen un dominio comprado con algún otro proveedor también se puede traer la gestión para acá, entonces se puede migrar la gestión con Ruta 53, con una zona hosteada y tener la completa administración en AWS. Bueno también lo que son los dominios pues se renuevan, tienen una vigencia de un año, nosotros está en nuestra decisión si nosotros queremos renovarlos o no, e incluso pues también lo podemos hacer de manera automática, nos da un monitoreo también de la salud de los recursos, o sea nosotros también nos da health checks, comprobaciones, estado para nuestras URLs o paths que nosotros tengamos definido, entonces si por ejemplo yo tengo mi dominio example, com, home, etcétera, quiero ver que que esa URL o ese pad en específico esté saludable, entonces yo puedo poner una alarma, un monitoreo completo con comprobaciones de estado a esa URL y ro también nos puede ofrecer el momento en el que a lo mejor pueda ocurrir alguna caída, sabes que ya no lo detecto y entonces ya podemos ir indagando, a lo mejor sabes que hay algún problema del lado del servidor, lado del cliente, etcétera, entonces también podemos estar visualizando el estado de salud de esto y pues también tiene integración con otros servicios, ya sea lo podemos hacer directamente con EC, con un balanceador, con una distribución en CloudFront e incluso también con una API en API Gateway, entonces es bastante flexible en cuanto a integración obviamente con los servicios nativos de AWS. El siguiente recurso es una solución también que nosotros recomendamos hacia nuestros clientes y en este caso se asocia directamente a lo que es nuestro caso de uso que es un balanceador de aplicación, entonces este nos ayuda directamente a lo que es balancear la carga y distribuir el tráfico de red entre sus distintas interfaces de red un balanceado de aplicación se tiene que estar montado necesariamente en más de una subred, ya que esto nos da alta disponibilidad y en estas subredes es donde se visualizan lo que es nuestras interfaces de red y esta es la que nos da lo que es la IP, la IP pública por donde van a estar entrando nuestras peticiones, etcétera, y se puede integrar con diferentes recursos, ya sea EC, instancias también de contenedor, incluso también direcciones IP y funciones lambda. Las características que tiene pues es balanceo escalable y seguro, realmente soporta millones de solicitudes simultáneas a lo que son nuestro target, que pudiera ser mi instancia EC y sin necesidad de lo que es saturar el recurso. El enrutamiento se basa en reglas, nosotros ahí podemos definir, sabes que todos los de esta URL, por ejemplo, no sé, example com diagonal administrador, llévatelo a tal puerto y lo que sea lo de example puntocom diagonal, no sé, proveedores, etcétera, llévatelo a otro puerto, entonces nosotros podemos aquí definir reglas para no estar saturando por así decirlo, algún puerto en específico directamente de lo que es nuestro target, pudiera ser a lo mejor un EC, etc. Nos provee también otro recurso de seguridad que son el uso de certificados, el uso de certificados SSL, que ahorita voy a hablar un poquito más, que es directamente con otro servicio, pero va embebido directamente con este y también podemos monitorear y registrar lo que son todas las solicitudes que se están haciendo directamente a este endpoint del DNS de nuestro Application Load Balancer y podemos estar capturando códigos de estado, cien, 200, 300, 400, etcétera, para evaluar en donde existe alguna anomalía con algún servicio, ya sea del lado del cliente o del lado del servidor, entonces ahí podemos ir indagando también el diagrama que están viendo aquí en pantalla es un diagrama muy, muy, muy, muy sencillo de lo que es la lógica de cómo funciona un balanceador de aplicación. Aquí el Load Balancer es el que recibe la petición por lo que es un DNS, este DNS es estático, o sea nos provee el nombre del dominio y directamente la redirección se hace hacia una regla de escuchante. Esta regla de escuchante pues puede ser un puerto en específico, en este caso para una aplicación web puede ser un puerto 80 o un puerto 443, entonces todo lo que es el tráfico entra por estos puertos, por esta regla y ya nosotros la podemos redirigir directamente hacia nuestros targets. El ejemplo que mencionaba anteriormente es que si nosotros ponemos aquí una regla de lo que es un path de example com home, sabes que está llévatela al target X por así decirlo una instancia de webserver por un puerto, por el puerto 80 por así decirlo y aquí el target va a evaluar la comprobación de estado si es saludable lo que es standpoint en este caso la instancia EC si es saludable nos la va a evaluar y puede caer obviamente también un estado de no saludable, cuando cae un estado de no saludable es que puede haber algún problema a lo mejor con el puerto, el servidor, sabes que no sé está fallando lo que es el servidor web ya sea Apache, etcétera, entonces debe dar algún problema con el puerto, algún problema como firewall, a lo mejor está bloqueando las peticiones directamente del servidor, etcétera. Entonces, o incluso también el security group, o sea puede ser algo muy muy muy básico o también muy especializado directamente en lo que es el servidor web. Entonces esta es básicamente la regla, nosotros podemos configurar el número de targets que nosotros queramos si nuestra aplicación está residiendo en lo que es, si la misma aplicación está residiendo en una o más instancias podemos configurar la cantidad que queramos de targets y reglas. Muy bien, entonces voy a continuar con el siguiente servicio que es Amazon Certificate Manager y esta solución se recomienda cuando nosotros queremos queremos añadir otro nivel de seguridad en lo que es nuestra aplicación web, si queremos por así decirlo un certificado SCL o TLS, realmente el encargado de donde nosotros podemos solicitarlo es el servicio de Amazon Certificate Manager, nosotros aquí podemos reclamar lo que es el dominio completo y podemos nos proporcionan los certificados gratuitos, en este caso este servicio no tiene costo y básicamente se puede utilizar directamente en lo que es un balanceador de aplicación o un balanceador de red, en este caso el balance de aplicación es el elegido en nuestra solución y el servicio realmente, perdón, el recurso se puede configurar de una manera muy muy sencilla, no es de la manera tradicional como nosotros lo hacemos directamente a lo mejor con otros proveedores que nos dan una llave y nosotros tenemos que estarla montando en nuestro servidor web, ya sea nuestro IIS o nuestro Apache, nuestro Nginx, etcétera, tenemos que estarlo montando dentro del servidor. Con Certificate Manager es bastante bastante sencillo, de hecho nuestros clientes cuando nos dicen quiero un certificado, les comentamos, ah mira, sabes que con Certificate Manager lo puedes hacer, pero necesitamos un balanceador de aplicación, sabes qué, sin problemas y no hay necesidad de montar nada, o sea lo podemos configurar incluso en unos minutos y esa es la bondad que nos ofrece AWS, naturalmente únicamente funciona con lo que es el servicio de balanceador de aplicaciones y no se puede integrar directamente lo que es un servidor, o sea, yo compro mi servidor y lo quiero montar en un servidor en otro lado, eso sí es una restricción obviamente pues porque AWS tiene la integración directa entre sus servicios, entonces este también es otra solución de seguridad también para que nosotros hagamos nuestras solicitudes obviamente más seguras y en lo que es nuestro navegador nos lo ponga como un sitio seguro. Muy bien, la siguiente solución que nosotros traemos es un servicio que es de Web Application Firewall, un WAV, AWS también tiene desarrollado su propio servicio de Web Application Firewall y pues este también nos protege frente, pues como dice, hay una variedad de amenazas comunes que abordan a través de Internet, ataques de inyección, SQL, XSS, entre otros, entonces nos provee reglas personalizadas, de hecho AWS ya trae unas reglas predefinidas porque pues obviamente se está actualizando completamente, o sea AWS actualiza día a día las nuevas vulnerabilidades que existen a través de Internet, entonces gracias a esto hace reglas personalizadas o también nosotros podemos crear nuestras propias reglas, podemos a lo mejor, sabes que, permíteme solamente este pad, permíteme solamente este segmento de IPs, esta IP en específico, etcétera y nosotros podemos crear básicamente una política haciéndolo directamente en lo que es un JSON y nos va a proteger para todo esto. También nos provee un dashboard en donde nosotros podemos monitorear el cómo ha estado bloqueando estos distintos ataques, pero a lo mejor pudieran ser intentos o conexiones que puedan llegar a nuestra aplicación web y pues este Web Application Firewall nos va a estar bloqueando. La integración que tiene con los servicios es nativamente servicios web, en este caso pueden ser distribuciones de CloudFront, pueden ser tal cual protege el DNS de nuestro Application Load Balancer, protege también las APIs de API Gateway y también tiene integración con AppSign, entonces también es otra solución que nosotros traemos y que ahorita también la vamos a mostrar en la arquitectura para ver más o menos cómo se conecta, OK, el siguiente servicio es una solución también que nosotros recomendamos para nuestros clientes que es el servicio de AWS Shield que básicamente nos ofrece protección contra ataques DDOS y pues obviamente estos ataques comprometen lo que es la disponibilidad de nuestra aplicación y pues las características es la protección directa contra esto, incluso los llega a mitigar, tiene una protección estándar avanzada, también nosotros podemos monitorear nuestros registros, sabes que cómo se está saturando o a lo mejor se está saturando este servicio, ya sea un balanceador de aplicación, una distribución de CloudFrame, está teniendo muchas peticiones, tiene algo anormal, el servicio lo va a estar protegiendo completamente para que nosotros no nos preocupemos obviamente en ver o a lo mejor también saber, conocer dónde está este en automático lo está detectando, entonces este también es muy por encimita. El siguiente servicio es una solución que nos provee inspector, es una evaluación de seguridad, este básicamente nos ayuda a detectar y nos provee también apoyo en las remediaciones de vulnerabilidades que pueden salir en nuestras aplicaciones y recursos de AWS, o sea, este va directamente en lo que es, se configura un agente directamente desde consola y se configura un agente directamente a lo que son nuestros servidores web, perdón, nuestras instancias EC, tanto Windows, Linux, etcétera y nos provee un reporte, este reporte nos viene detallado en que sabes que no pasaste esta comprobación, entonces necesitas ver, a lo mejor te hace falta aplicar un parche, te hace falta un puerto, te hace falta una actualización, etcétera, entonces nos provee este reporte y este análisis muy detallado e incluso lo podemos estar realizando periódicamente, ya sea nosotros lo podemos configurar, no sé, cada mes, cada semana, etcétera, eventualmente nosotros lo podemos programar y pues obviamente también nos da las evaluaciones para estar en cumplimiento nuestra aplicación o nuestro servidor donde tenemos montada nuestra aplicación de acuerdo a lo que son las normas que los establece en este caso la CIS que es el Centro de Internet de Seguridad, entonces también nos da muchas comprobaciones de estos corporaciones que nos ofrece la seguridad y pues la integración tal cual la tiene con los servicios AWS también muy nativamente y lo que tenemos que hacer como bien dije es instalar un agente y nos provee un reporte detallado y aquí nosotros es como podemos también generar lo que es un plan de acción, sabes que estar realizar estos ejercicios en cumplimiento para que vayamos directo con el framework de seguridad estratégica que nosotros mencion al inicio. Entonces voy a continuar con mi presentación, ahorita lo que estamos viendo es nuestra arquitectura sobre cómo la tuvimos ya con seguridad a nivel red que fue implementar sus redes privadas, implementar también una VPN, ahorita vamos a ver cómo va a estar funcionando con estos servicios que acabo de mencionar que son más a nivel aplicación. Entonces vamos a construirlo y si estamos viendo ya a nivel de lo que es mi aplicación ya no estamos haciendo las peticiones directamente a lo que es la IP del servidor como lo estábamos haciendo normalmente si ustedes estaban viendo nuestro PAD acá nuestra DNS, nombre dominio o el PAD que nosotros estábamos viendo era el de el de la IP y diagonal el puerto, esto la verdad nos dejaba muy muy vulnerables y ahorita ya con el servicio de ruta 53 hemos agregado un nombre de dominio en este caso y aquí van a estar entrando todas las peticiones. Aquí directamente las peticiones se van con un certificado SCL que es el que estábamos nosotros mencionando, los tenemos configurado directamente en lo que es nuestro nuestro balanceador de aplicación y naturalmente la petición también entra de este redirige desde el nombre dominio se redirige al DNS de nuestra aplicación, de nuestro balanceador de aplicación y a través de este hace la redirección hacia las dos interfaces de red que como les mencionaba para la alta disponibilidad se tiene que tener dos interfaces de red desplegadas en diferentes subnets, diferentes zonas de disponibilidad y estas a través también tienen lo que es un Security Group, lo alzador de aplicación nos provee también de poder configurar un Security Group para que nosotros estemos permitiendo todo el tráfico, en este caso va a ser el puerto 80 y el puerto 443 si lo podemos estar nosot abriendo completamente al mundo o incluso lo podemos estar abriendo a segmentos permitidos que nosotros hayamos detectado. Entonces a través de este entra la petición por el DNS del balance de replicación y este hace la redirección a través del Security group hacia nuestro Security group de lo que es nuestra aplicación web que tenemos montada en instancia s pero si se están dando cuenta aquí antes de que llegue a la instancia vemos que está pasando también por un Web Application Firewall que es básicamente posterior a que entra la solicitud, este lo evalúa directamente lo que es mi regla de nuestro Web Application Firewall y si por ejemplo es una IP que nosotros hayamos permitido la va a dejar pasar. Si nosotros, perdón, el Web Application Firewall evalúa una IP que no está dentro de nuestra lista blanca, deniega el acceso y pues como tal no permite lo que es esta solicitud y entonces esto pues básicamente nos va a estar librando de lo que es de lo que es algún intento o alguna conexión no deseada que nosotros estemos pues denegando hacia nuestra aplicación. Y el otro punto que también aquí tenemos es que agregamos el agente de inspector, el agente de inspector es el que nos va a estar generando evaluaciones directamente a lo que es nuestra instancia EC y nos va a estar generando nuestro reporte, ¿Vale? Entonces digo, esta es otra manera de una solución al siguiente nivel que en este lado fue de la de la aplicación ya directamente y es cómo podemos mantener nuestro aplicativo y más más seguro apalancándonos de los servicios de AWS. Entonces hasta aquí es mi aporte, los dejo igual con el con el Inge Bruno, muchas gracias por su atención.
Perfecto, muchas gracias, deje empiezo con pantalla para que podamos continuar. OK, ahora vamos con lo que viene siendo seguridad y observabilidad a nivel de base de datos. Ahora sí que es muy importante ahora sí que tener bien visualizado qué es lo que está pasando dentro de nuestra base de datos. Primero les voy a pasar a explicar un poquito de lo que viene siendo AWCR o Relational Database Services, Es un servicio web que facilita la configuración, la operación y la escalabilidad de una base de datos relacional en VWS. Proporciona una capacidad rentable y de tamaño ajustable para una base de datos relacionada al estándar y se ocupa de las tareas de administración de base de datos comunes. Ahora sí que por ejemplo si se ocupa hacer digamos así, una actualización menor, ahora sí que la base de datos lo va a hacer automáticamente sin generarnos algún tiempo de downtime o algún inconveniente. Actualmente se admiten los siguientes db MYADB, Microsoft SQL Server, MySQL, Oracle y PostgreSQL. Paso con lo que viene siendo AWS ARC Performance Insights, esta es una herramienta que proporciona una visión detallada del rendimiento de nuestra instancia de base de datos administrada en AWS R. Está diseñada para ayudarte a identificar y solucionar problemas de rendimiento de manera eficiente, lo que contribuye a mejorar la disponibilidad y la eficiencia de tus aplicativos. Por ejemplo, hagan de cuenta que como pueden ver aquí en RDS Performance Insights lo que está haciendo es que está visualizando constantemente qué es lo que está pasando dentro de nuestra base de datos. Por ejemplo, como pueden ver en esta parte nos está analizando las queries que están pasando, que están, que se están ejecutando actualmente. Esto nos puede ayudar muchísimo, ya que nos puede ayudar a identificar qué query es la que más está ejecutando o inclusive por ejemplo alguna query que esté causando nos un cuello de botella. Identificando esta query, pues obviamente o bien la podemos matar para que no nos esté generando este cuello de botella o bien podemos mejor pasar a optimizar la query para que pues no nos esté generando este dicho cuello de botella. Algunas características de este son que monitoriza en tiempo real, nos ayuda a visualizar de forma intuitiva, como pueden ver, ahora sí que la visualización de este RDS Performance Insights la verdad es muy bonito y es muy fácil de ver qué es lo que está pasando, ya que por ejemplo, si quisiéramos visualizar las querys que se está ejecutando dentro de nuestra propia base de datos, si tendríamos que entrar a la base de datos como administrador y ejecutar ciertos comandos para poder ver qué query son los que se están ejecutando y de hecho incluso si podemos ver dichas queries, pero para ver por ejemplo cuánto uso están haciendo, cuándo están tardando, tendremos que ejecutar otro tipo de comandos y pues ahora sí que eso requiere un poquito más de tiempo, un poquito más de expertise y aparte pues obviamente como estás haciendo dentro de la base de datos, pues se genera un log y se genera un uso de recursos dentro de esta misma base de datos. Como les comentaba, nos ayuda a identificar cuellos de botella dentro de las queries, nos da un análisis detallado de consultas de las queries, como lo pueden ver aquí. Y así que lo padre de esto es que lo podemos integrar con CloudWatch. Como les mencionaba, CloudWatch es lo que nos está ayudando constantemente a verificar qué es lo que está pasando dentro de nuestros recursos de AWS y podemos conectar lo que viene siendo Aries Performance Insights con cloudwatch para por ejemplo crear una alarma personalizada que cuando alguna query esté pasando por ejemplo, de cierto punto nos lo indique, por ejemplo, esta query que es la que está ejecutando actualmente está jalando el 90% de nuestros recursos que nos indique a través de una alarma que hay una query que está haciendo esto para ya nosotros proceder a matar dicha query o bien optimizarla. Como les comentaba además de esto que les vengo ahora sí que además de lo que viene siendo las queries también nos permite ver los usuarios que están haciendo uso de esta base de datos, digo no es un ahora sí que una forma tan granular de verlo como por ejemplo los usuarios que se quedan dentro de la base de datos como los clientes sino más bien los usuarios administradores que manejan la base de datos para poder ver qué es lo que están haciendo dentro de dicha base de datos. También por ejemplo nos deja ver lo que vienen siendo los Weights, estos Weights lo que son es que nos está mostrando por ejemplo cuáles son las queries que se están tardando más o que generan más tiempo de espera para poder obviamente limpiar esos cuellos de botella. OK, ahora sí que les voy a pasar a mostrar lo que viene siendo la infraestructura, bueno la arquitectura como se tenía anteriormente que como pueden ver pues ahora sí que es una cosa completamente distinta a cómo se tiene actualmente. Aquí pues se puede ver que pues ahora sí que no es nada segura ya que la IP pública está completamente expuesta, lo mismo con la instancia C y con la RDS y como les mostraba ahora sí que el ingeniero Bitcoin ahora sí que está ya la infraestructura ya completamente ahora sí que trabajada por lo que viene siendo acá por Compu Cloud en donde ya es completamente segura y así que ya no vas a tener ningún tipo de problema e inclusive como pueden ver así que la parte más importante o bueno lo que les vengo a compartir que viene siendo las de las RDS ahora sí que ya se tiene lo que viene siendo una Writer y una Reader, Estas instancias ahora sí que vienen siendo dos separadas pero que trabajan ahora sí con los mismos datos, una se encargará de estar recibiendo los datos que van a ser de solo lectura y otra se estará encargando de recibir datos que van a ser de solo escritura. Esto obviamente nos va a ayudar a optimizar el uso de la base de datos ya que no se va a estar utilizando solo una base de datos para hacer todas estas operaciones sino que se estarán utilizando dos y cada una de estas base de datos cuenta con su Performance Insights para poder analizar de una mejor manera qué es lo que está pasando dentro de dichas bases de datos. Y ahora sí que sería todo de mi parte.
More from Paulina

Todo sobre la Nueva Región de AWS en México | Beneficios, Infraestructura y Migración

DEMO: De VMware a AWS. Administración de ambientes dentro de la consola de AWS.








