

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invia avvisi da AWS Network Firewall a un canale Slack
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel"></a>

*Venki Srivatsav e Aromal Raj Jayarajan, Amazon Web Services*

## Riepilogo
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-summary"></a>

Questo modello descrive come implementare un firewall utilizzando il Network Firewall di Amazon Web Services (AWS) con il modello di distribuzione distribuito e come propagare gli avvisi generati da AWS Network Firewall su un canale Slack configurabile. 

Gli standard di conformità come Payment Card Industry Data Security Standard (PCI DSS) richiedono l'installazione e la manutenzione di un firewall per proteggere i dati dei clienti. Nel cloud AWS, un cloud privato virtuale (VPC) è considerato uguale a una rete fisica nel contesto di questi requisiti di conformità. È possibile utilizzare Network Firewall per monitorare il traffico di rete tra VPCs e proteggere i carichi di lavoro eseguiti in ambienti VPCs regolati da uno standard di conformità. Network Firewall blocca l'accesso o genera avvisi quando rileva l'accesso non autorizzato da parte di altri utenti dello VPCs stesso account. Tuttavia, Network Firewall supporta un numero limitato di destinazioni per l'invio degli avvisi. Queste destinazioni includono bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3), gruppi di log CloudWatch Amazon e flussi di distribuzione Amazon Data Firehose. Qualsiasi ulteriore azione su queste notifiche richiede un'analisi offline utilizzando Amazon Athena o Amazon Kinesis. 

Questo modello fornisce un metodo per propagare gli avvisi generati da Network Firewall su un canale Slack configurabile per ulteriori azioni quasi in tempo reale. Puoi anche estendere la funzionalità ad altri meccanismi di avviso come PagerDuty Jira ed e-mail. (Queste personalizzazioni non rientrano nell'ambito di questo modello). 

## Prerequisiti e limitazioni
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-prereqs"></a>

**Prerequisiti**
+ Canale Slack (vedi [Guida introduttiva](https://slack.com/help/articles/206845317-Create-a-Slack-workspace) nel centro assistenza Slack)
+ Privilegi necessari per inviare un messaggio al canale
+ L'URL dell'endpoint Slack con un token API ([seleziona l'app](https://api.slack.com/apps) e scegli un webhook in entrata per visualizzarne l'URL; per maggiori informazioni, consulta [Creazione di un webhook in entrata](https://api.slack.com/messaging/webhooks#create_a_webhook) nella documentazione dell'API Slack) 
+ Un'istanza di test Amazon Elastic Compute Cloud (Amazon EC2) nelle sottoreti dei carichi di lavoro
+ Regole di test in Network Firewall
+ Traffico reale o simulato per attivare le regole del test
+ Un bucket S3 per contenere i file sorgente da distribuire

**Limitazioni**
+ Attualmente questa soluzione supporta solo un singolo intervallo CIDR (Classless Inter-Domain Routing) come filtro per origine e destinazione. IPs

## Architecture
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-architecture"></a>

**Stack tecnologico Target**
+ Un VPC
+ Quattro sottoreti (due per il firewall e due per i carichi di lavoro) 
+ Internet Gateway
+ Quattro tabelle di routing con regole 
+ Bucket S3 utilizzato come destinazione di avviso, configurato con una policy del bucket e impostazioni degli eventi per eseguire una funzione Lambda
+ Funzione Lambda con ruolo di esecuzione, per inviare notifiche Slack
+ Segreto di AWS Secrets Manager per l'archiviazione dell'URL Slack
+ Firewall di rete con configurazione degli avvisi
+ Canale Slack

[Tutti i componenti tranne il canale Slack sono forniti dai CloudFormation modelli e dalla funzione Lambda forniti con questo modello (vedi la sezione Codice).](#send-alerts-from-aws-network-firewall-to-a-slack-channel-tools)

**Architettura Target**

Questo modello configura un firewall di rete decentralizzato con integrazione Slack. Questa architettura è costituita da un VPC con due zone di disponibilità. Il VPC include due sottoreti protette e due sottoreti firewall con endpoint firewall di rete. [Tutto il traffico in entrata e in uscita dalle sottoreti protette può essere monitorato creando politiche e regole del firewall.](https://docs.aws.amazon.com/waf/latest/developerguide/network-firewall-policies.html) Il firewall di rete è configurato per inserire tutti gli avvisi in un bucket S3. Questo bucket S3 è configurato per chiamare una funzione Lambda quando riceve un evento. `put` La funzione Lambda recupera l'URL Slack configurato da Secrets Manager e invia il messaggio di notifica all'area di lavoro Slack.

![\[Architettura Target per un firewall di rete decentralizzato con integrazione Slack.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7207fd56-094e-4af4-9ecd-75b122b82275/images/b1320776-c010-49b9-96bf-15e97ebe09ba.png)


Per ulteriori informazioni su questa architettura, consulta il post sul blog AWS [Deployment models for AWS Network Firewall](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/).

## Tools (Strumenti)
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-tools"></a>

**Servizi AWS**
+ [AWS Network Firewall è un firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html) di rete a stato gestito e un servizio di rilevamento e prevenzione delle intrusioni VPCs nel cloud AWS. Puoi utilizzare Network Firewall per filtrare il traffico lungo il perimetro del tuo VPC e proteggere i tuoi carichi di lavoro su AWS.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) è un servizio per l'archiviazione e il recupero delle credenziali. Utilizzando Secrets Manager, puoi sostituire le credenziali codificate nel codice, comprese le password, con una chiamata API a Secrets Manager per recuperare il segreto a livello di codice. Questo pattern utilizza Secrets Manager per memorizzare l'URL di Slack.
+ [Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) è un servizio di storage di oggetti. È possibile utilizzare Amazon S3 per memorizzare e recuperare qualsiasi volume di dati, in qualunque momento e da qualunque luogo tramite il Web. Questo modello utilizza Amazon S3 per archiviare i CloudFormation modelli e lo script Python per la funzione Lambda. Utilizza anche un bucket S3 come destinazione degli avvisi del firewall di rete.
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) ti CloudFormation aiuta a modellare e configurare le tue risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle per tutto il loro ciclo di vita. Puoi utilizzare un modello per descrivere le tue risorse e le loro dipendenze e lanciarle e configurarle insieme come uno stack, invece di gestire le risorse singolarmente. Questo modello utilizza AWS CloudFormation per implementare automaticamente un'architettura distribuita per Firewall Manager.

**Codice**

Il codice per questo pattern è disponibile su GitHub, nel repository [Network Firewall Slack Integration](https://github.com/aws-samples/aws-network-firewall-automation-examples/tree/main/NfwSlackIntegration/src). Nella `src ` cartella del repository troverai:
+ Un set di CloudFormation file in formato YAML. Questi modelli vengono utilizzati per fornire i componenti per questo modello.
+ Un file sorgente Python (`slack-lambda.py`) per creare la funzione Lambda.
+ Un pacchetto di distribuzione dell'archivio.zip (`slack-lambda.py.zip`) per caricare il codice della funzione Lambda.

Per utilizzare questi file, segui le istruzioni nella sezione successiva.

## Epiche
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-epics"></a>

### Configura il bucket S3
<a name="set-up-the-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/send-alerts-from-aws-network-firewall-to-a-slack-channel.html)Per ulteriori informazioni, consulta [Creazione di un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) nella documentazione di Amazon S3.  | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 
| Carica i CloudFormation modelli e il codice Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/send-alerts-from-aws-network-firewall-to-a-slack-channel.html) | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 

### Implementa il modello CloudFormation
<a name="deploy-the-cloudformation-template"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Avvia il CloudFormation modello. | Apri la [ CloudFormation console AWS](https://console.aws.amazon.com/cloudformation/) nella stessa regione AWS del bucket S3 e distribuisci il modello. `base.yml` Questo modello crea le risorse AWS e le funzioni Lambda richieste per la trasmissione degli avvisi al canale Slack.Per ulteriori informazioni sulla distribuzione dei CloudFormation modelli, consulta [Creazione di uno stack sulla CloudFormation console AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) nella CloudFormation documentazione. | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 
| Completa i parametri nel modello. | Specificate il nome dello stack e configurate i valori dei parametri. Per un elenco dei parametri, delle relative descrizioni e dei valori predefiniti, consultate *CloudFormation i parametri* nella sezione [Informazioni aggiuntive](#send-alerts-from-aws-network-firewall-to-a-slack-channel-additional).  | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 
| Creare lo stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/send-alerts-from-aws-network-firewall-to-a-slack-channel.html) | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 

### Verifica la soluzione
<a name="verify-the-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Testa la distribuzione. | Utilizza la CloudFormation console AWS o l'AWS Command Line Interface (AWS CLI) per verificare che le risorse elencate nella sezione dello stack [tecnologico di Target](#send-alerts-from-aws-network-firewall-to-a-slack-channel-architecture) siano state create.  Se il CloudFormation modello non riesce a essere distribuito correttamente, controlla i valori che hai fornito per i `pAvailabilityZone1 ` parametri and. `pAvailabilityZone2 ` Questi dovrebbero essere appropriati per la regione AWS in cui stai distribuendo la soluzione. Per un elenco delle zone di disponibilità per ogni regione, consulta [Regioni e zone](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones) nella EC2 documentazione di Amazon.  | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 
| Funzionalità di test. | 1. Apri la EC2 console Amazon all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).2. Crea un' EC2 istanza in una delle sottoreti protette. Scegli un AMI Amazon Linux 2 (HVM) da usare come server HTTPS. Per istruzioni, consulta [Launch an istance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) nella EC2 documentazione di Amazon.Amazon Linux 2 sta per terminare il supporto. Per ulteriori informazioni, consulta [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).3. Utilizza i seguenti dati utente per installare un server Web sull' EC2 istanza:<pre>#!/bin/bash<br />yum install httpd -y<br />systemctl start httpd<br />systemctl stop firewalld<br />cd /var/www/html<br />echo "Hello!! this is a NFW alert test page, 200 OK" > index.html</pre>4. Crea le seguenti regole del firewall di rete:*Regola apolide:*<pre>Source: 0.0.0.0/0<br />Destination 10.0.3.65/32 (private IP of the EC2 instance)<br />Action: Forward </pre>*Regola statica:*<pre>Protocol: HTTP<br />Source ip/port: Any / Any<br />Destination ip/port: Any /Any</pre>5. Ottieni l'IP pubblico del server web che hai creato nel passaggio 3.6. Accedi all'IP pubblico in un browser. Dovresti vedere il seguente messaggio nel browser:<pre>Hello!! this is a NFW alert test page, 200 OK </pre>Riceverai anche una notifica nel canale Slack. La notifica potrebbe subire ritardi, a seconda della dimensione del messaggio. A scopo di test, valuta la possibilità di fornire un filtro CIDR non troppo stretto (ad esempio, un valore CIDR con /32 sarebbe considerato troppo stretto e /8 sarebbe troppo ampio). [Per ulteriori informazioni, consulta la sezione *Comportamento del filtro* in Informazioni aggiuntive.](#send-alerts-from-aws-network-firewall-to-a-slack-channel-additional) | Sviluppatore di app, proprietario dell'app, amministratore del cloud | 

## Risorse correlate
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-resources"></a>
+ [Modelli di distribuzione per AWS Network Firewall](https://aws.amazon.com/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/) (post sul blog AWS)
+ [Policy di AWS Network Firewall](https://docs.aws.amazon.com/waf/latest/developerguide/network-firewall-policies.html) (documentazione AWS)
+ [Integrazione Slack con Network Firewall](https://github.com/aws-samples/aws-network-firewall-automation-examples/tree/main/NfwSlackIntegration/src) (GitHub repository)
+ [Crea uno spazio di lavoro Slack](https://slack.com/help/articles/206845317-Create-a-Slack-workspace) (centro assistenza Slack)

## Informazioni aggiuntive
<a name="send-alerts-from-aws-network-firewall-to-a-slack-channel-additional"></a>

**CloudFormation parameters**


| 
| 
| Parametro  | Description  | Valore predefinito o di esempio  | 
| --- |--- |--- |
| `pVpcName` | Il nome del VPC da creare. | Ispezione | 
| `pVpcCidr` | L'intervallo CIDR per il VPC da creare. | 10.0.0.0/16 | 
| `pVpcInstanceTenancy` | Come vengono distribuite EC2 le istanze sull'hardware fisico. Le opzioni sono `default ` (locazione condivisa) o `dedicated ` (locazione singola). | default | 
| `pAvailabilityZone1` | La prima zona di disponibilità per l'infrastruttura.  | us-east-2a  | 
| `pAvailabilityZone2` | La seconda zona di disponibilità per l'infrastruttura. | us-east-2b | 
| `pNetworkFirewallSubnet1Cidr` | L'intervallo CIDR per la prima sottorete del firewall (minimo /28). | 10.0.1.0/24 | 
| `pNetworkFirewallSubnet2Cidr` | L'intervallo CIDR per la seconda sottorete del firewall (minimo /28). | 10.0.2.0/24 | 
| `pProtectedSubnet1Cidr` | L'intervallo CIDR per la prima sottorete protetta (carico di lavoro). | 10.0.3.0/24 | 
| `pProtectedSubnet2Cidr` | L'intervallo CIDR per la seconda sottorete protetta (carico di lavoro). | 10.0.4.0/24 | 
| `pS3BucketName` | Il nome del bucket S3 esistente in cui hai caricato il codice sorgente Lambda. | us-w2- yourname-lambda-functions | 
| `pS3KeyPrefix` | Il prefisso del bucket S3 in cui hai caricato il codice sorgente Lambda. | aod-test  | 
| `pAWSSecretName4Slack` | Il nome del segreto che contiene l'URL di Slack. | SlackEnpoint-Cfn | 
| `pSlackChannelName` | Il nome del canale Slack che hai creato. | alcune notifiche di nome | 
| `pSlackUserName` | nome utente Slack. | Utente Slack | 
| `pSecretKey` | Questa può essere una chiave qualsiasi. Ti consigliamo di utilizzare l'impostazione predefinita. | WebHookURL | 
| `pWebHookUrl` | Il valore dell'URL Slack. | https://hooks.slack.com/services/T??? 9 T?? /A031885 JRM7 /9D4Y????? | 
| `pAlertS3Bucket` | Il nome del bucket S3 da utilizzare come destinazione degli avvisi del firewall di rete. Questo bucket verrà creato per te. | us-w2- yourname-security-aod-alerts | 
| `pSecretTagName` | Il nome del tag per il segreto. | AppName | 
| `pSecretTagValue` | Il valore del tag per il nome del tag specificato. | LambdaSlackIntegration | 
| `pdestCidr` | Il filtro per l'intervallo CIDR di destinazione. Per ulteriori informazioni, consultate la sezione successiva, *Comportamento del filtro*. | 10.0.0.0/16 | 
| `pdestCondition` | Un contrassegno per indicare se escludere o includere la corrispondenza di destinazione. Per ulteriori informazioni, consulta la sezione successiva I valori validi sono `include ` e `exclude`. | includere | 
| `psrcCidr` | Il filtro per l'intervallo CIDR di origine da avvisare. Per ulteriori informazioni, consulta la sezione successiva   | 118.2.0.0/16 | 
| `psrcCondition` | Il contrassegno per escludere o includere la corrispondenza di origine. Per ulteriori informazioni, consulta la sezione successiva  | includere | 

**Comportamento del filtro**

Se non hai configurato alcun filtro in AWS Lambda, tutti gli avvisi generati vengono inviati al tuo canale Slack. L'origine e la destinazione IPs degli avvisi generati vengono confrontati con gli intervalli CIDR configurati durante la distribuzione del modello. CloudFormation Se viene trovata una corrispondenza, viene applicata la condizione. Se l'origine o la destinazione rientrano nell'intervallo CIDR configurato e almeno una di esse è configurata con la condizione`include`, viene generato un avviso. Le tabelle seguenti forniscono esempi di valori, condizioni e risultati CIDR.


| 
| 
|  | CIDR configurato  | Avviso IP  | Configurato  | Alert  | 
| --- |--- |--- |--- |--- |
| **Origine**  | 10.0.0.0/16  | 10.0.0.25  | includere  | Sì  | 
| **Destinazione**  | 100,0,0,0/16  | 20220,0,13  | includere  | 


| 
| 
|  | CIDR configurato  | Avviso IP  | Configurato  | Alert  | 
| --- |--- |--- |--- |--- |
| **Origine**  | 10.0.0.0/16  | 10.0.0.25  | exclude  | No  | 
| **Destinazione**  | 100,0,0,0/16  | 20220,0,13  | includere  | 


| 
| 
|  | CIDR configurato  | Avviso IP  | Configurato  | Alert  | 
| --- |--- |--- |--- |--- |
| **Origine**  | 10.0.0.0/16  | 10.0.0.25  | includere  | Sì  | 
| **Destinazione**  | 100,0,0,0/16  | 100,0,0,13  | includere  | 


| 
| 
|  | CIDR configurato  | Avviso IP  | Configurato  | Alert  | 
| --- |--- |--- |--- |--- |
| **Origine**  | 10.0.0.0/16  | 90.0.0.25  | includere  | Sì  | 
| **Destinazione**  | Null  | 20220,0,13  | includere  | 


| 
| 
|  | CIDR configurato  | Avviso IP  | Configurato  | Alert  | 
| --- |--- |--- |--- |--- |
| **Origine**  | 10.0.0.0/16  | 90.0.0.25  | includere  | No  | 
| **Destinazione**  | 100,0,0,0/16  | 20220,0,13  | includere  | 