Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Enviar alertas desde AWS Network Firewall a un canal de Slack - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Enviar alertas desde AWS Network Firewall a un canal de Slack

Creado por Venki Srivatsav (AWS) y Aromal Raj Jayarajan (AWS)

Resumen

Este patrón describe cómo implementar un firewall mediante el Firewall de red de Amazon Web Services (AWS) con el modelo de implementación distribuida y cómo propagar las alertas generadas por AWS Network Firewall a un canal de Slack configurable. 

Los estándares de conformidad, como el Estándar de seguridad de datos del sector de pagos con tarjeta (PCI DSS), requieren que instale y mantenga un firewall para proteger los datos de los clientes. En la nube de AWS, una nube privada virtual (VPC) se considera igual que una red física en el contexto de estos requisitos de conformidad. Puede usar Network Firewall para monitorear el tráfico de red entre VPCs y proteger las cargas de trabajo que se ejecutan según VPCs un estándar de cumplimiento. Network Firewall bloquea el acceso o genera alertas cuando detecta un acceso no autorizado desde otra VPCs persona de la misma cuenta. Sin embargo, Network Firewall admite un número limitado de destinos para enviar las alertas. Estos destinos incluyen depósitos de Amazon Simple Storage Service (Amazon S3), grupos de registros de CloudWatch Amazon y transmisiones de entrega de Amazon Data Firehose. Cualquier otra acción relacionada con estas notificaciones requiere un análisis fuera de línea mediante Amazon Athena o Amazon Kinesis. 

Este patrón proporciona un método para propagar las alertas generadas por Network Firewall a un canal de Slack configurable para tomar medidas adicionales casi en tiempo real. También puede ampliar la funcionalidad a otros mecanismos de alerta PagerDuty, como Jira y el correo electrónico. (Esas personalizaciones quedan fuera del alcance de este patrón). 

Requisitos previos y limitaciones

Requisitos previos 

  • Canal de Slack (consulte Primeros pasos en el centro de ayuda de Slack)

  • Privilegios necesarios para enviar un mensaje al canal

  • La URL del punto de conexión de Slack con un token de API (seleccione su aplicación y elija un webhook entrante para ver su URL; para obtener más información, consulte Cómo crear un webhook entrante en la documentación de la API de Slack) 

  • Una instancia de prueba de Amazon Elastic Compute Cloud (Amazon EC2) en las subredes de carga de trabajo

  • Reglas de prueba en Network Firewall

  • Tráfico real o simulado para activar las reglas de prueba

  • Un bucket de S3 para almacenar los archivos fuente que se van a implementar

Limitaciones

  • Actualmente, esta solución solo admite un rango de enrutamiento entre dominios sin clase (CIDR) como filtro para el origen y el destino. IPs

Arquitectura

Pila de tecnología de destino

  • Una VPC

  • Cuatro subredes (dos para el firewall y dos para las cargas de trabajo) 

  • Puerta de enlace de Internet

  • Cuatro tablas de enrutamiento con reglas 

  • El bucket de S3 se utiliza como destino de alertas y se configura con una política de bucket y una configuración de eventos para ejecutar una función de Lambda

  • Función de Lambda con un rol de ejecución, para enviar notificaciones de Slack

  • El secreto de AWS Secrets Manager para almacenar la URL de Slack

  • Firewall de red con configuración de alertas

  • Canal de Slack

Todos los componentes, excepto el canal de Slack, se aprovisionan mediante las CloudFormation plantillas y la función Lambda que se proporcionan con este patrón (consulta la sección Código).

Arquitectura de destino

Este patrón configura un firewall de red descentralizado con integración con Slack. Esta arquitectura consta de una VPC con dos zonas de disponibilidad. La VPC incluye dos subredes protegidas y dos subredes de firewall con puntos de conexión del firewall de red. Todo el tráfico que entra y sale de las subredes protegidas se puede supervisar mediante la creación de políticas y reglas de firewall. El firewall de la red está configurado para colocar todas las alertas en un bucket de S3. Este bucket de S3 está configurado para llamar a una función de Lambda cuando recibe un evento put. La función Lambda obtiene la URL de Slack configurada de Secrets Manager y envía el mensaje de notificación al espacio de trabajo de Slack.

Arquitectura de destino para un firewall de red descentralizado con integración con Slack.

Para obtener más información sobre esta arquitectura, consulte la entrada del blog de AWS sobre modelos de implementación para AWS Network Firewall.

Herramientas

Servicios de AWS

  • AWS Network Firewall es un servicio de detección y prevención de intrusiones y firewall de red gestionado y con estado para la VPCs nube de AWS. Puede utilizar el firewall de red para filtrar el tráfico en el perímetro de su VPC y proteger sus cargas de trabajo en AWS.

  • AWS Secrets Manager es un servicio de almacenamiento y recuperación de credenciales. Con Secrets Manager puede reemplazar las credenciales codificadas en el código, incluidas las contraseñas, con una llamada a la API de Secrets Manager para recuperar el secreto mediante programación. Este patrón usa Secrets Manager para almacenar la URL de Slack.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos. Puede utilizar Amazon S3 para almacenar y recuperar cualquier cantidad de datos en cualquier momento y desde cualquier parte de la web. Este patrón utiliza Amazon S3 para almacenar las CloudFormation plantillas y el script de Python para la función Lambda. También utiliza un bucket de S3 como el destino de alerta del firewall de red.

  • AWS le CloudFormation ayuda a modelar y configurar sus recursos de AWS, a aprovisionarlos de forma rápida y coherente y a gestionarlos durante todo su ciclo de vida. Facilita poder usar una plantilla para describir los recursos y sus dependencias, y lanzarlos y configurarlos juntos como una pila, en lugar de administrarlos de forma individual. Este patrón utiliza AWS CloudFormation para implementar automáticamente una arquitectura distribuida para Firewall Manager.

Código

El código de este patrón está disponible en el GitHub repositorio Network Firewall Slack Integration. En la carpeta src  del repositorio, encontrará:

  • Conjunto de CloudFormation archivos en formato YAML. Estas plantillas se utilizan para aprovisionar los componentes de este patrón.

  • Un archivo fuente de Python (slack-lambda.py) para crear la función de Lambda.

  • Un paquete de implementación de archivos .zip (slack-lambda.py.zip) para cargar el código de la función de Lambda.

Para usar el código de muestra, siga las instrucciones de la siguiente sección.

Epics

TareaDescripciónHabilidades requeridas

Cree un bucket de S3.

  1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Elija o cree un bucket de S3 para alojar el código. Un nombre de bucket de S3 es globalmente único y todas las cuentas de AWS comparten el espacio de nombres. El nombre de bucket de S3 no puede incluir barras a la izquierda. Se recomienda utilizar un prefijo para organizar el código de este patrón.

Para más información, consulte Crear un bucket en la documentación de Amazon S3. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Cargue las CloudFormation plantillas y el código Lambda.

  1. Descargue los siguientes archivos del GitHub repositorio para este patrón:

    • base.yml

    • igw-ingress-route.yml

    • slack-lambda.py

    • slackLambda.yml

    • decentralized-deployment.yml

    • protected-subnet-route.yml

    • slack-lambda.py.zip

  2. Cargue los archivos en el bucket de S3 que ha creado. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Configuración del bucket de S3

TareaDescripciónHabilidades requeridas

Cree un bucket de S3.

  1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Elija o cree un bucket de S3 para alojar el código. Un nombre de bucket de S3 es globalmente único y todas las cuentas de AWS comparten el espacio de nombres. El nombre de bucket de S3 no puede incluir barras a la izquierda. Se recomienda utilizar un prefijo para organizar el código de este patrón.

Para más información, consulte Crear un bucket en la documentación de Amazon S3. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Cargue las CloudFormation plantillas y el código Lambda.

  1. Descargue los siguientes archivos del GitHub repositorio para este patrón:

    • base.yml

    • igw-ingress-route.yml

    • slack-lambda.py

    • slackLambda.yml

    • decentralized-deployment.yml

    • protected-subnet-route.yml

    • slack-lambda.py.zip

  2. Cargue los archivos en el bucket de S3 que ha creado. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube
TareaDescripciónHabilidades requeridas

Lanza la CloudFormation plantilla.

Abra la CloudFormation consola de AWS en la misma región de AWS que su bucket de S3 e implemente la plantillabase.yml. Esta plantilla crea los recursos de AWS y las funciones de Lambda necesarios para que las alertas se transmitan al canal de Slack.

Para obtener más información sobre la implementación de CloudFormation plantillas, consulte Crear una pila en la CloudFormation consola de AWS en la CloudFormation documentación.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Complete los parámetros de la plantilla.

Especifique el nombre de la pila y configure los valores de los parámetros. Para obtener una lista de los parámetros, sus descripciones y valores predeterminados, consulte CloudFormation los parámetros en la sección de información adicional.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Cree la pila.

  1. Revise los detalles de la pila y actualice los valores en función de los requisitos de su entorno.

  2. Elija Crear pila para implementar la plantilla.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Implemente la CloudFormation plantilla

TareaDescripciónHabilidades requeridas

Lanza la CloudFormation plantilla.

Abra la CloudFormation consola de AWS en la misma región de AWS que su bucket de S3 e implemente la plantillabase.yml. Esta plantilla crea los recursos de AWS y las funciones de Lambda necesarios para que las alertas se transmitan al canal de Slack.

Para obtener más información sobre la implementación de CloudFormation plantillas, consulte Crear una pila en la CloudFormation consola de AWS en la CloudFormation documentación.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Complete los parámetros de la plantilla.

Especifique el nombre de la pila y configure los valores de los parámetros. Para obtener una lista de los parámetros, sus descripciones y valores predeterminados, consulte CloudFormation los parámetros en la sección de información adicional.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Cree la pila.

  1. Revise los detalles de la pila y actualice los valores en función de los requisitos de su entorno.

  2. Elija Crear pila para implementar la plantilla.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube
TareaDescripciónHabilidades requeridas

Probar la implementación.

Utilice la CloudFormation consola de AWS o la interfaz de línea de comandos de AWS (AWS CLI) para comprobar que se han creado los recursos que figuran en la sección Pila de tecnologías de destino.  

Si la CloudFormation plantilla no se implementa correctamente, compruebe los valores que proporcionó para los pAvailabilityZone2  parámetros pAvailabilityZone1  y. Deberían ser adecuados para la región de AWS en la que vaya a implementar la solución. Para obtener una lista de las zonas de disponibilidad de cada región, consulta Regiones y zonas en la EC2 documentación de Amazon. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Pruebe la funcionalidad.

1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

2. Cree una EC2 instancia en una de las subredes protegidas. Elija una AMI (HVM) de Amazon Linux 2 para usarla como servidor HTTPS. Para obtener instrucciones, consulta Cómo lanzar una instancia en la EC2 documentación de Amazon.

nota

Amazon Linux 2 está a punto de finalizar el soporte. Para obtener más información, consulte Amazon Linux 2 FAQs.

3. Utilice los siguientes datos de usuario para instalar un servidor web en la EC2 instancia:

#!/bin/bash yum install httpd -y systemctl start httpd systemctl stop firewalld cd /var/www/html echo "Hello!! this is a NFW alert test page, 200 OK" > index.html

4. Cree las siguientes reglas de firewall de red:

Regla sin estado:

Source: 0.0.0.0/0 Destination 10.0.3.65/32 (private IP of the EC2 instance) Action: Forward

Regla con estado:

Protocol: HTTP Source ip/port: Any / Any Destination ip/port: Any /Any

5. Obtenga la IP pública del servidor web que creó en el paso 3.

6. Acceda a la IP pública en un navegador. Debería ver el siguiente mensaje en el navegador:

Hello!! this is a NFW alert test page, 200 OK

También recibirá una notificación en el canal de Slack. Es posible que la notificación se retrase en función del tamaño del mensaje. Para realizar pruebas, considere la posibilidad de proporcionar un filtro CIDR que no sea demasiado estrecho (por ejemplo, un valor CIDR con /32 se consideraría demasiado estrecho y /8 sería demasiado ancho). Para obtener más información, consulte la sección Comportamiento del filtro en Información adicional.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Verificación de la solución

TareaDescripciónHabilidades requeridas

Probar la implementación.

Utilice la CloudFormation consola de AWS o la interfaz de línea de comandos de AWS (AWS CLI) para comprobar que se han creado los recursos que figuran en la sección Pila de tecnologías de destino.  

Si la CloudFormation plantilla no se implementa correctamente, compruebe los valores que proporcionó para los pAvailabilityZone2  parámetros pAvailabilityZone1  y. Deberían ser adecuados para la región de AWS en la que vaya a implementar la solución. Para obtener una lista de las zonas de disponibilidad de cada región, consulta Regiones y zonas en la EC2 documentación de Amazon. 

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Pruebe la funcionalidad.

1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

2. Cree una EC2 instancia en una de las subredes protegidas. Elija una AMI (HVM) de Amazon Linux 2 para usarla como servidor HTTPS. Para obtener instrucciones, consulta Cómo lanzar una instancia en la EC2 documentación de Amazon.

nota

Amazon Linux 2 está a punto de finalizar el soporte. Para obtener más información, consulte Amazon Linux 2 FAQs.

3. Utilice los siguientes datos de usuario para instalar un servidor web en la EC2 instancia:

#!/bin/bash yum install httpd -y systemctl start httpd systemctl stop firewalld cd /var/www/html echo "Hello!! this is a NFW alert test page, 200 OK" > index.html

4. Cree las siguientes reglas de firewall de red:

Regla sin estado:

Source: 0.0.0.0/0 Destination 10.0.3.65/32 (private IP of the EC2 instance) Action: Forward

Regla con estado:

Protocol: HTTP Source ip/port: Any / Any Destination ip/port: Any /Any

5. Obtenga la IP pública del servidor web que creó en el paso 3.

6. Acceda a la IP pública en un navegador. Debería ver el siguiente mensaje en el navegador:

Hello!! this is a NFW alert test page, 200 OK

También recibirá una notificación en el canal de Slack. Es posible que la notificación se retrase en función del tamaño del mensaje. Para realizar pruebas, considere la posibilidad de proporcionar un filtro CIDR que no sea demasiado estrecho (por ejemplo, un valor CIDR con /32 se consideraría demasiado estrecho y /8 sería demasiado ancho). Para obtener más información, consulte la sección Comportamiento del filtro en Información adicional.

Desarrollador de aplicaciones, propietario de la aplicación, administrador de la nube

Recursos relacionados

Información adicional

CloudFormation parameters

Parámetro

Descripción

Valor predeterminado o de muestra

pVpcName

Nombre del VPC que se va a crear.

Inspección

pVpcCidr

El rango CIDR que debe crear la VPC.

10.0.0.0/16

pVpcInstanceTenancy

Cómo se distribuyen las EC2 instancias en el hardware físico. Las opciones son default  (arrendamiento compartido) o dedicated  (arrendamiento único).

predeterminado

pAvailabilityZone1

La primera zona de disponibilidad de la infraestructura. 

us-east-2a 

pAvailabilityZone2

La segunda zona de disponibilidad de la infraestructura.

us-east-2b

pNetworkFirewallSubnet1Cidr

El rango CIDR de la primera subred del firewall (mínimo /28).

10.0.1.0/24

pNetworkFirewallSubnet2Cidr

El rango CIDR de la segunda subred del firewall (mínimo /28).

10.0.2.0/24

pProtectedSubnet1Cidr

El rango CIDR de la primera subred protegida (carga de trabajo).

10.0.3.0/24

pProtectedSubnet2Cidr

El rango CIDR de la segunda subred protegida (carga de trabajo).

10.0.4.0/24

pS3BucketName

El nombre del bucket de S3 existente en el que cargó el código fuente de Lambda.

us-w2- yourname-lambda-functions

pS3KeyPrefix

El prefijo del bucket de S3 en el que cargó el código fuente de Lambda.

aod-test 

pAWSSecretName4Slack

El nombre del secreto que contiene la URL de Slack.

SlackEnpoint-Cfn

pSlackChannelName

El nombre del canal de Slack que creó.

somename-notifications

pSlackUserName

Nombre de usuario de Slack.

Usuario de Slack

pSecretKey

Puede ser cualquier clave. Se recomienda usar la configuración predeterminada.

webhookUrl

pWebHookUrl

El valor de la URL de Slack.

https://hooks.slack.com/services/¿T?? ¿9T? /A031885 JRM7 /9D4Y?????

pAlertS3Bucket

El nombre del bucket de S3 que se utilizará como el destino de la alerta del firewall de red. Este bucket se creará automáticamente.

us-w2- yourname-security-aod-alerts

pSecretTagName

El nombre de la etiqueta del secreto.

AppName

pSecretTagValue

El valor de la etiqueta para el nombre de etiqueta indicado.

LambdaSlackIntegration

pdestCidr

El filtro para el rango CIDR de destino. Para obtener más información, consulte la siguiente sección, Filtro comportamiento.

10.0.0.0/16

pdestCondition

Un indicador que indica si se debe excluir o incluir la coincidencia de destino. Para obtener más información, consulte la siguiente sección. Los valores válidos son include  y exclude.

incluir

psrcCidr

El filtro del rango de CIDR de origen al que se debe alertar. Para obtener más información, consulte la siguiente sección. 

118.2.0.0/16

psrcCondition

El indicador para excluir o incluir la coincidencia de origen. Para obtener más información, consulte la siguiente sección.

incluir

Comportamiento del filtro

Si no ha configurado ningún filtro en AWS Lambda, todas las alertas generadas se envían a su canal de Slack. El origen y el destino IPs de las alertas generadas coinciden con los rangos de CIDR que configuró al implementar la plantilla. CloudFormation Si hay una coincidencia, se aplica la condición. Si el origen o el destino se encuentran dentro del rango CIDR configurado y al menos uno de ellos está configurado con la condición include, se genera una alerta. Las siguientes tablas proporcionan ejemplos de valores, condiciones y resultados del CIDR.

CIDR configurado

IP de alerta

Configured

Alerta

Origen

10.0.0.0/16

10.0.0.25

incluir

Destino

100.0.0.0/16

202.0.0.13

incluir

CIDR configurado

IP de alerta

Configured

Alerta

Origen

10.0.0.0/16

10,00,25

excluya

No

Destino

100.0.0.0/16

202.0.0.13

incluir

CIDR configurado

IP de alerta

Configured

Alerta

Origen

10.0.0.0/16

10,00,25

incluir

Destino

100.0.0.0/16

100,0.0,13

incluir

CIDR configurado

IP de alerta

Configured

Alerta

Origen

10.0.0.0/16

90,0,25

incluir

Destino

Nulo

202,0,0,13

incluir

CIDR configurado

IP de alerta

Configured

Alerta

Origen

10.0.0.0/16

90,0,25

incluir

No

Destino

100.0.0.0/16

202.0.0.13

incluir

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.