

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à.

# Utilizzalo AWS WAF per proteggere il tuo REST APIs in API Gateway
<a name="apigateway-control-access-aws-waf"></a>

AWS WAF è un firewall per applicazioni Web che aiuta a proteggere le applicazioni Web e APIs dagli attacchi. Consente di configurare un set di regole denominato lista di controllo accessi Web (web ACL) per consentire, bloccare o contare le richieste Web in base a condizioni e regole di sicurezza Web personalizzabili definite dall'utente. Per ulteriori informazioni, consulta [How AWS WAF Works](https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html).

Puoi utilizzarla AWS WAF per proteggere l'API REST di API Gateway da exploit web comuni, come attacchi SQL injection e cross-site scripting (XSS). Questi potrebbero influire sulla disponibilità e sulle prestazioni delle API, compromettere la sicurezza o consumare risorse eccessive. Ad esempio, puoi creare regole per consentire o bloccare richieste da intervalli di indirizzi IP specificati, richieste da blocchi CIDR, richieste provenienti da un paese o una regione specifici, richieste che contengono codice SQL dannoso o richieste contenenti script dannoso. 

È anche possibile creare regole che corrispondono a una stringa specificata o un modello di espressione regolare in intestazioni HTTP, metodo, stringa di query, URI e il corpo della richiesta (entro i primi 64 KB). Inoltre, puoi creare regole per bloccare attacchi da utenti-agenti, bad bot e scraper di contenuti. Ad esempio, puoi usare le regole basate sulla frequenza per specificare il numero di richieste Web consentite da ogni IP client in un periodo di 5 minuti, costantemente aggiornato, finale. 

**Importante**  
AWS WAF è la tua prima linea di difesa contro gli exploit web. Quando AWS WAF è abilitato su un'API, AWS WAF le regole vengono valutate prima di altre funzionalità di controllo degli accessi, come [le policy delle risorse, le policy](apigateway-resource-policies.md) [IAM](permissions.md), gli autorizzatori [Lambda](apigateway-use-lambda-authorizer.md) e gli autorizzatori Amazon [Cognito](apigateway-integrate-with-cognito.md). Ad esempio, se AWS WAF blocca l'accesso da un blocco CIDR consentito da una politica delle risorse, ha la AWS WAF precedenza e la politica delle risorse non viene valutata.

 AWS WAF Per abilitare la tua API, devi fare quanto segue:

1. Usa la AWS WAF console, l' AWS SDK o la CLI per creare un ACL Web che contenga la combinazione desiderata AWS WAF di regole gestite e regole personalizzate. Per ulteriori informazioni, consulta la sezione [Guida introduttiva AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html) e [elenchi di controllo degli accessi Web (](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html)web). ACLs
**Importante**  
API Gateway richiede un ACL AWS WAFV2 web per un'applicazione regionale o un ACL AWS WAF Classic regionale web.

1. Associa l'ACL AWS WAF web a una fase API. Puoi farlo utilizzando la AWS WAF console, l' AWS SDK, la CLI o utilizzando la console API Gateway.

## Per associare un ACL AWS WAF Web a uno stadio API Gateway API utilizzando la console API Gateway
<a name="apigateway-control-access-aws-waf-console"></a>

Per utilizzare la console API Gateway per associare un ACL AWS WAF Web a uno stadio API Gateway API esistente, attenersi alla seguente procedura:

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona un'API esistente o creane una nuova.

1. Nel riquadro di navigazione principale scegli **Fasi**, quindi seleziona una fase.

1. Nella sezione **Dettagli fase** scegli **Modifica**.

1. In **Web Application Firewall (AWS WAF)**, seleziona l'ACL web.

   Se lo stai utilizzando AWS WAFV2, seleziona un ACL AWS WAFV2 web per un'applicazione regionale. L'ACL web e tutte AWS WAFV2 le altre risorse che utilizza devono trovarsi nella stessa regione dell'API.

   Se lo stai utilizzando AWS WAF Classic regionale, seleziona un ACL web regionale.

1. Scegli **Save changes** (Salva modifiche).

## Associa un ACL AWS WAF Web a una fase API Gateway utilizzando il AWS CLI
<a name="apigateway-control-access-aws-waf-awscli"></a>

Il [associate-web-acl](https://docs.aws.amazon.com/cli/latest/reference/wafv2/associate-web-acl.html)comando seguente associa un ACL AWS WAFV2 Web per un'applicazione regionale a uno stadio API Gateway API esistente:

```
aws wafv2 associate-web-acl \
--web-acl-arn  arn:aws:wafv2:{{{region}}}:{{111122223333}}:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
--resource-arn arn:aws:apigateway:{{{region}}}::/restapis/4wk1k4onj3/stages/prod
```

Il [associate-web-acl](https://docs.aws.amazon.com/cli/latest/reference/waf-regional/associate-web-acl.html)comando seguente associa un ACL AWS WAF Classic regionale Web a uno stadio API Gateway API esistente:

```
aws waf-regional associate-web-acl \
--web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \
--resource-arn 'arn:aws:apigateway:{{{region}}}::/restapis/4wk1k4onj3/stages/prod'
```

## Associa un ACL AWS WAF web a uno stadio API utilizzando l'API REST AWS WAF
<a name="apigateway-control-access-aws-waf-api"></a>

Per utilizzare l'API AWS WAFV2 REST per associare un ACL AWS WAFV2 Web per un'applicazione regionale a uno stadio API Gateway API esistente, utilizzate il comando [AssociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html), come nell'esempio seguente:

```
import boto3
 
wafv2 = boto3.client('wafv2')

wafv2.associate_web_acl(
    WebACLArn='arn:aws:wafv2:{{{region}}}:{{111122223333}}:regional/webacl/test/abc6aa3b-fc33-4841-b3db-0ef3d3825b25',
    ResourceArn='arn:aws:apigateway:{{{region}}}::/restapis/4wk1k4onj3/stages/prod'
)
```

Per utilizzare l'API AWS WAF REST per associare un ACL AWS WAF Classic regionale Web a uno stadio API Gateway API esistente, utilizzate il comando [AssociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_AssociateWebACL.html), come nell'esempio seguente:

```
import boto3
 
waf = boto3.client('waf-regional')
 
waf.associate_web_acl(
    WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf',
    ResourceArn='arn:aws:apigateway:{{{region}}}::/restapis/4wk1k4onj3/stages/prod'
)
```