Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Envoyer des alertes depuis AWS Network Firewall vers un canal Slack - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoyer des alertes depuis AWS Network Firewall vers un canal Slack

Créée par Venki Srivatsav (AWS) et Aromal Raj Jayarajan (AWS)

Récapitulatif

Ce modèle décrit comment déployer un pare-feu en utilisant le pare-feu réseau Amazon Web Services (AWS) avec le modèle de déploiement distribué et comment propager les alertes générées par AWS Network Firewall vers un canal Slack configurable. 

Les normes de conformité telles que la norme de sécurité des données de l'industrie des cartes de paiement (PCI DSS) exigent que vous installiez et mainteniez un pare-feu pour protéger les données des clients. Dans le cloud AWS, un cloud privé virtuel (VPC) est considéré comme un réseau physique dans le contexte de ces exigences de conformité. Vous pouvez utiliser Network Firewall pour surveiller le trafic réseau entre VPCs et pour protéger vos charges de travail exécutées conformément à VPCs une norme de conformité. Network Firewall bloque l'accès ou génère des alertes lorsqu'il détecte un accès non autorisé provenant VPCs d'autres utilisateurs du même compte. Toutefois, Network Firewall prend en charge un nombre limité de destinations pour envoyer les alertes. Ces destinations incluent les buckets Amazon Simple Storage Service (Amazon S3), les groupes de log CloudWatch Amazon et les flux de livraison Amazon Data Firehose. Toute action ultérieure concernant ces notifications nécessite une analyse hors ligne à l'aide d'Amazon Athena ou d'Amazon Kinesis. 

Ce modèle fournit une méthode pour propager les alertes générées par Network Firewall vers un canal Slack configurable pour une action ultérieure en temps quasi réel. Vous pouvez également étendre cette fonctionnalité à d'autres mécanismes d'alerte tels que PagerDuty Jira et le courrier électronique. (Ces personnalisations n'entrent pas dans le cadre de ce modèle.) 

Conditions préalables et limitations

Prérequis

  • Chaîne Slack (voir Commencer dans le centre d'aide Slack)

  • Privilèges requis pour envoyer un message à la chaîne

  • L'URL du point de terminaison Slack avec un jeton d'API (sélectionnez votre application et choisissez un webhook entrant pour voir son URL ; pour plus d'informations, consultez la section Création d'un webhook entrant dans la documentation de l'API Slack) 

  • Une instance de test Amazon Elastic Compute Cloud (Amazon EC2) dans les sous-réseaux de charge de travail

  • Règles de test dans Network Firewall

  • Trafic réel ou simulé pour déclencher les règles de test

  • Un compartiment S3 pour contenir les fichiers source à déployer

Limites

  • Actuellement, cette solution ne prend en charge qu'une seule plage de routage interdomaines sans classe (CIDR) en tant que filtre pour la source et la destination. IPs

Architecture

Pile technologique cible

  • Un VPC

  • Quatre sous-réseaux (deux pour le pare-feu et deux pour les charges de travail) 

  • Passerelle Internet

  • Quatre tables de routage avec règles 

  • Compartiment S3 utilisé comme destination d'alerte, configuré avec une politique de compartiment et des paramètres d'événements pour exécuter une fonction Lambda

  • Fonction Lambda avec rôle d'exécution, pour envoyer des notifications Slack

  • Secret d'AWS Secrets Manager pour le stockage de l'URL Slack

  • Pare-feu réseau avec configuration d'alertes

  • Canal Slack

Tous les composants, à l'exception du canal Slack, sont fournis par les CloudFormation modèles et la fonction Lambda fournis avec ce modèle (voir la section Code).

Architecture cible

Ce modèle met en place un pare-feu réseau décentralisé avec intégration à Slack. Cette architecture consiste en un VPC avec deux zones de disponibilité. Le VPC comprend deux sous-réseaux protégés et deux sous-réseaux de pare-feu dotés de points de terminaison de pare-feu réseau. Tout le trafic entrant et sortant des sous-réseaux protégés peut être surveillé en créant des politiques et des règles de pare-feu. Le pare-feu réseau est configuré pour placer toutes les alertes dans un compartiment S3. Ce compartiment S3 est configuré pour appeler une fonction Lambda lorsqu'il reçoit un put événement. La fonction Lambda extrait l'URL Slack configurée depuis Secrets Manager et envoie le message de notification à l'espace de travail Slack.

Architecture cible pour un pare-feu réseau décentralisé avec intégration à Slack.

Pour plus d'informations sur cette architecture, consultez le billet de blog AWS Deployment models for AWS Network Firewall.

Outils

Services AWS

  • AWS Network Firewall est un pare-feu réseau dynamique et géré, ainsi qu'un service de détection et de prévention des intrusions VPCs destiné au cloud AWS. Vous pouvez utiliser Network Firewall pour filtrer le trafic sur le périmètre de votre VPC et protéger vos charges de travail sur AWS.

  • AWS Secrets Manager est un service de stockage et de récupération des informations d'identification. À l'aide de Secrets Manager, vous pouvez remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation. Ce modèle utilise Secrets Manager pour stocker l'URL de Slack.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets. Vous pouvez utiliser Amazon S3 pour stocker et récupérer n'importe quelle quantité de données, n'importe quand et depuis n'importe quel emplacement sur le Web. Ce modèle utilise Amazon S3 pour stocker les CloudFormation modèles et le script Python de la fonction Lambda. Il utilise également un compartiment S3 comme destination des alertes de pare-feu réseau.

  • AWS vous CloudFormation aide à modéliser et à configurer vos ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie. Vous pouvez utiliser un modèle pour décrire vos ressources et leurs dépendances, puis les lancer et les configurer ensemble sous forme de pile, au lieu de gérer les ressources individuellement. Ce modèle utilise AWS CloudFormation pour déployer automatiquement une architecture distribuée pour Firewall Manager.

Code

Le code de ce modèle est disponible sur GitHub le référentiel Network Firewall Slack Integration. Dans le src  dossier du dépôt, vous trouverez :

  • Ensemble de CloudFormation fichiers au format YAML. Vous utilisez ces modèles pour configurer les composants de ce modèle.

  • Un fichier source Python (slack-lambda.py) pour créer la fonction Lambda.

  • Un package de déploiement d'archive .zip (slack-lambda.py.zip) pour télécharger le code de votre fonction Lambda.

Pour utiliser ces fichiers, suivez les instructions de la section suivante.

Épopées

TâcheDescriptionCompétences requises

Créez un compartiment S3.

  1. Connectez-vous à la console de gestion AWS et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Choisissez ou créez un compartiment S3 pour héberger le code. Le nom d'un compartiment S3 est unique au monde et l'espace de noms est partagé par tous les comptes AWS. Le nom du compartiment S3 ne peut pas inclure de barres obliques en tête. Nous vous recommandons d'utiliser un préfixe pour organiser le code de ce modèle.

Pour plus d'informations, consultez la section Création d'un compartiment dans la documentation Amazon S3. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Téléchargez les CloudFormation modèles et le code Lambda.

  1. Téléchargez les fichiers suivants depuis le GitHub référentiel pour ce modèle :

    • base.yml

    • igw-ingress-route.yml

    • slack-lambda.py

    • slackLambda.yml

    • decentralized-deployment.yml

    • protected-subnet-route.yml

    • slack-lambda.py.zip

  2. Téléchargez les fichiers dans le compartiment S3 que vous avez créé. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Configuration du compartiment S3

TâcheDescriptionCompétences requises

Créez un compartiment S3.

  1. Connectez-vous à la console de gestion AWS et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Choisissez ou créez un compartiment S3 pour héberger le code. Le nom d'un compartiment S3 est unique au monde et l'espace de noms est partagé par tous les comptes AWS. Le nom du compartiment S3 ne peut pas inclure de barres obliques en tête. Nous vous recommandons d'utiliser un préfixe pour organiser le code de ce modèle.

Pour plus d'informations, consultez la section Création d'un compartiment dans la documentation Amazon S3. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Téléchargez les CloudFormation modèles et le code Lambda.

  1. Téléchargez les fichiers suivants depuis le GitHub référentiel pour ce modèle :

    • base.yml

    • igw-ingress-route.yml

    • slack-lambda.py

    • slackLambda.yml

    • decentralized-deployment.yml

    • protected-subnet-route.yml

    • slack-lambda.py.zip

  2. Téléchargez les fichiers dans le compartiment S3 que vous avez créé. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud
TâcheDescriptionCompétences requises

Lancez le CloudFormation modèle.

Ouvrez la CloudFormation console AWS dans la même région AWS que votre compartiment S3 et déployez le modèlebase.yml. Ce modèle crée les ressources AWS et les fonctions Lambda requises pour les alertes à transmettre au canal Slack.

Pour plus d'informations sur le déploiement CloudFormation de modèles, consultez la section Création d'une pile sur la CloudFormation console AWS dans la CloudFormation documentation.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Complétez les paramètres du modèle.

Spécifiez le nom de la pile et configurez les valeurs des paramètres. Pour obtenir la liste des paramètres, leurs descriptions et leurs valeurs par défaut, voir CloudFormation les paramètres dans la section Informations supplémentaires.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Créez la pile.

  1. Passez en revue les détails de la pile et mettez à jour les valeurs en fonction des exigences de votre environnement.

  2. Choisissez Create stack pour déployer le modèle.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Déployer le CloudFormation modèle

TâcheDescriptionCompétences requises

Lancez le CloudFormation modèle.

Ouvrez la CloudFormation console AWS dans la même région AWS que votre compartiment S3 et déployez le modèlebase.yml. Ce modèle crée les ressources AWS et les fonctions Lambda requises pour les alertes à transmettre au canal Slack.

Pour plus d'informations sur le déploiement CloudFormation de modèles, consultez la section Création d'une pile sur la CloudFormation console AWS dans la CloudFormation documentation.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Complétez les paramètres du modèle.

Spécifiez le nom de la pile et configurez les valeurs des paramètres. Pour obtenir la liste des paramètres, leurs descriptions et leurs valeurs par défaut, voir CloudFormation les paramètres dans la section Informations supplémentaires.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Créez la pile.

  1. Passez en revue les détails de la pile et mettez à jour les valeurs en fonction des exigences de votre environnement.

  2. Choisissez Create stack pour déployer le modèle.

Développeur d'applications, propriétaire de l'application, administrateur du cloud
TâcheDescriptionCompétences requises

Testez le déploiement.

Utilisez la CloudFormation console AWS ou l'interface de ligne de commande AWS (AWS CLI) pour vérifier que les ressources répertoriées dans la section Target technology stack ont été créées.  

Si le déploiement du CloudFormation modèle échoue, vérifiez les valeurs que vous avez fournies pour les pAvailabilityZone2  paramètres pAvailabilityZone1  et. Ils doivent être adaptés à la région AWS dans laquelle vous déployez la solution. Pour obtenir la liste des zones de disponibilité pour chaque région, consultez Régions et zones dans la EC2 documentation Amazon. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Fonctionnalité de test.

1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

2. Créez une EC2 instance dans l'un des sous-réseaux protégés. Choisissez une AMI Amazon Linux 2 (HVM) à utiliser comme serveur HTTPS. Pour obtenir des instructions, consultez la section Lancer une instance dans la EC2 documentation Amazon.

Note

Le support d'Amazon Linux 2 touche à sa fin. Pour plus d'informations, consultez Amazon Linux 2 FAQs.

3. Utilisez les données utilisateur suivantes pour installer un serveur Web sur l' EC2 instance :

#!/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. Créez les règles de pare-feu réseau suivantes :

Règle d'apatridie :

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

Règle dynamique :

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

5. Obtenez l'adresse IP publique du serveur Web que vous avez créé à l'étape 3.

6. Accédez à l'adresse IP publique dans un navigateur. Le message suivant devrait s'afficher dans le navigateur :

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

Vous recevrez également une notification sur le canal Slack. La notification peut être différée en fonction de la taille du message. À des fins de test, envisagez de fournir un filtre CIDR qui n'est pas trop étroit (par exemple, une valeur CIDR avec /32 serait considérée comme trop étroite et /8 serait trop large). Pour plus d'informations, consultez la section Comportement du filtre dans Informations supplémentaires.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Vérifiez la solution

TâcheDescriptionCompétences requises

Testez le déploiement.

Utilisez la CloudFormation console AWS ou l'interface de ligne de commande AWS (AWS CLI) pour vérifier que les ressources répertoriées dans la section Target technology stack ont été créées.  

Si le déploiement du CloudFormation modèle échoue, vérifiez les valeurs que vous avez fournies pour les pAvailabilityZone2  paramètres pAvailabilityZone1  et. Ils doivent être adaptés à la région AWS dans laquelle vous déployez la solution. Pour obtenir la liste des zones de disponibilité pour chaque région, consultez Régions et zones dans la EC2 documentation Amazon. 

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Fonctionnalité de test.

1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

2. Créez une EC2 instance dans l'un des sous-réseaux protégés. Choisissez une AMI Amazon Linux 2 (HVM) à utiliser comme serveur HTTPS. Pour obtenir des instructions, consultez la section Lancer une instance dans la EC2 documentation Amazon.

Note

Le support d'Amazon Linux 2 touche à sa fin. Pour plus d'informations, consultez Amazon Linux 2 FAQs.

3. Utilisez les données utilisateur suivantes pour installer un serveur Web sur l' EC2 instance :

#!/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. Créez les règles de pare-feu réseau suivantes :

Règle d'apatridie :

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

Règle dynamique :

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

5. Obtenez l'adresse IP publique du serveur Web que vous avez créé à l'étape 3.

6. Accédez à l'adresse IP publique dans un navigateur. Le message suivant devrait s'afficher dans le navigateur :

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

Vous recevrez également une notification sur le canal Slack. La notification peut être différée en fonction de la taille du message. À des fins de test, envisagez de fournir un filtre CIDR qui n'est pas trop étroit (par exemple, une valeur CIDR avec /32 serait considérée comme trop étroite et /8 serait trop large). Pour plus d'informations, consultez la section Comportement du filtre dans Informations supplémentaires.

Développeur d'applications, propriétaire de l'application, administrateur du cloud

Ressources connexes

Informations supplémentaires

CloudFormation parameters

Paramètre

Description

Valeur par défaut ou valeur d'échantillon

pVpcName

Nom du VPC à créer.

Inspection

pVpcCidr

La plage CIDR que le VPC doit créer.

10.0.0.0/16

pVpcInstanceTenancy

Comment EC2 les instances sont distribuées sur le matériel physique. Les options sont default  (location partagée) ou dedicated  (location unique).

default

pAvailabilityZone1

La première zone de disponibilité de l'infrastructure. 

us-east-2a 

pAvailabilityZone2

La deuxième zone de disponibilité de l'infrastructure.

us-east-2b

pNetworkFirewallSubnet1Cidr

La plage CIDR pour le premier sous-réseau de pare-feu (minimum /28).

10.0.1.0/24

pNetworkFirewallSubnet2Cidr

La plage CIDR pour le deuxième sous-réseau de pare-feu (minimum /28).

10.0.2.0/24

pProtectedSubnet1Cidr

La plage CIDR pour le premier sous-réseau protégé (charge de travail).

10.0.3.0/24

pProtectedSubnet2Cidr

La plage CIDR pour le deuxième sous-réseau protégé (charge de travail).

10.0.4.0/24

pS3BucketName

Le nom du compartiment S3 existant dans lequel vous avez chargé le code source Lambda.

us-w2- yourname-lambda-functions

pS3KeyPrefix

Le préfixe du compartiment S3 dans lequel vous avez chargé le code source Lambda.

test AOD 

pAWSSecretName4Slack

Le nom du secret qui contient l'URL de Slack.

SlackEnpoint-Cfn

pSlackChannelName

Le nom de la chaîne Slack que vous avez créée.

quelques notifications de nom

pSlackUserName

Nom d'utilisateur Slack.

Utilisateur de Slack

pSecretKey

Il peut s'agir de n'importe quelle clé. Nous vous recommandons d'utiliser la valeur par défaut.

URL du webhook

pWebHookUrl

La valeur de l'URL Slack.

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

pAlertS3Bucket

Nom du compartiment S3 à utiliser comme destination des alertes de pare-feu réseau. Ce bucket sera créé pour vous.

us-w2- yourname-security-aod-alerts

pSecretTagName

Le nom du tag pour le secret.

AppName

pSecretTagValue

La valeur de balise pour le nom de balise spécifié.

LambdaSlackIntegration

pdestCidr

Le filtre pour la plage d'adresses CIDR de destination. Pour plus d'informations, consultez la section suivante, Comportement du filtre.

10.0.0.0/16

pdestCondition

Un drapeau pour indiquer s'il faut exclure ou inclure la correspondance de destination. Pour plus d'informations, consultez la section suivante, . Les valeurs valides sont include  et exclude.

inclure

psrcCidr

Le filtre correspondant à la plage d'adresses CIDR source à alerter. Pour plus d'informations, consultez la section suivante, . 

118,2,0,0/16

psrcCondition

L'indicateur permettant d'exclure ou d'inclure la correspondance source. Pour plus d'informations, consultez la section suivante, .

inclure

Comportement du filtre

Si vous n'avez configuré aucun filtre dans AWS Lambda, toutes les alertes générées sont envoyées à votre chaîne Slack. La source et la destination IPs des alertes générées sont comparées aux plages CIDR que vous avez configurées lors du déploiement du CloudFormation modèle. Si une correspondance est trouvée, la condition est appliquée. Si la source ou la destination se situent dans la plage CIDR configurée et qu'au moins l'une d'entre elles est configurée avec la conditioninclude, une alerte est générée. Les tableaux suivants fournissent des exemples de valeurs, de conditions et de résultats CIDR.

CIDR configuré

IP d'alerte

Configured

Alerte

Source

10.0.0.0/16

10,0.0.25

inclure

Oui

Destination (Destination)

100,0,0/16

202,0.0.13

inclure

CIDR configuré

IP d'alerte

Configured

Alerte

Source

10.0.0.0/16

10,0.0.25

exclure

Non

Destination (Destination)

100,0,0/16

202,0.0.13

inclure

CIDR configuré

IP d'alerte

Configured

Alerte

Source

10.0.0.0/16

10,0.0.25

inclure

Oui

Destination (Destination)

100,0,0/16

100,0,13

inclure

CIDR configuré

IP d'alerte

Configured

Alerte

Source

10.0.0.0/16

90,0.0.25

inclure

Oui

Destination (Destination)

Null

202,0.0.13

inclure

CIDR configuré

IP d'alerte

Configured

Alerte

Source

10.0.0.0/16

90,0.0.25

inclure

Non

Destination (Destination)

100,0,0/16

202,0.0.13

inclure

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.