Utilizzo di AWS WAF per proteggere le REST API in Gateway API - Gateway Amazon API

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

Utilizzo di AWS WAF per proteggere le REST API in Gateway API

AWS WAF è un firewall per applicazioni Web che consente di proteggere le applicazioni Web e le API 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 Funzionamento di AWS WAF.

Puoi utilizzare AWS WAF per proteggere l'API di API Gateway REST da exploit Web comuni, come attacchi di iniezioni SQL e scripting cross-site (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 per un'API, le regole di AWS WAF vengono valutate prima di altre caratteristiche di controllo degli accessi, ad esempio policy per le risorse, policy IAM, autorizzatori Lambda e autorizzatori Amazon Cognito. Ad esempio, se AWS WAF blocca l'accesso da un blocco CIDR che è invece consentito da una policy delle risorse, AWS WAF ha la precedenza e la policy delle risorse non viene valutata.

Per abilitare AWS WAF per l'API, è necessario effettuare le seguenti operazioni:

  1. Utilizza la console AWS WAF, AWS SDK o la CLI per creare un'ACL web contenente la combinazione desiderata di regole gestite da AWS WAF e regole personalizzate. Per ulteriori informazioni, consulta Getting Started with AWS WAF e Web access control lists (web ACLs).

    Importante

    Gateway API richiede un'ACL web AWS WAFV2 per un'applicazione regionale o un'ACL web AWS WAF Classic regionale.

  2. Associare l'ACL Web AWS WAF a una fase API. A tale scopo, usa la console AWS WAF, l'SDK AWS o la CLI oppure la console Gateway API.

Per associare un'ACL web AWS WAF ad una fase API di Gateway API tramite la console Gateway API

Per utilizzare la console Gateway API per associare un'ACL web AWS WAF a una fase API di Gateway API esistente, procedi come indicato di seguito:

  1. Accedere alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway.

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

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

  4. Nella sezione Dettagli fase scegli Modifica.

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

    Se utilizzi AWS WAFV2, seleziona un'ACL web AWS WAFV2 per un'applicazione regionale. L'ACL web e tutte le altre risorse AWS WAFV2 utilizzate devono trovarsi nella stessa Regione dell'API.

    Se utilizzi AWS WAF Classic regionale, seleziona un'ACL web regionale.

  6. Scegli Save changes (Salva modifiche).

Associazione di un'ACL web AWS WAF a una fase API di Gateway API tramite AWS CLI

Il comando associate-web-acl seguente associa un’ACL web AWS WAFV2 per un’applicazione regionale con una fase API di Gateway API:

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 comando associate-web-acl seguente associa un’ACL web AWS WAF Classic regionale con una fase API di Gateway API:

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

Associazione di un'ACL web AWS WAF a una fase API tramite la REST API AWS WAF

Per utilizzare la REST API AWS WAFV2 per associare un'ACL web AWS WAFV2 per un'applicazione regionale a una fase API di Gateway API esistente, chiama il comando AssociateWebACL, 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 la REST API AWS WAF per associare un'ACL web AWS WAF Classic regionale a una fase API di Gateway API esistente, chiama il comando AssociateWebACL, 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' )