Limita l'accesso in base all'indirizzo IP o alla geolocalizzazione utilizzando AWS WAF - Prontuario AWS

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

Limita l'accesso in base all'indirizzo IP o alla geolocalizzazione utilizzando AWS WAF

Creato da Louis Hourcade () AWS

Archivio di codice: repository Github in aws-samples

Ambiente: PoC o pilota

Tecnologie: sicurezza, identità, conformità; app Web e mobili

AWSservizi: AWSCDK; AWS WAF

Riepilogo

AWS WAFè un firewall per applicazioni Web che aiuta a proteggere le applicazioni Web e APIs da exploit e bot Web comuni che possono influire sulla disponibilità, compromettere la sicurezza o consumare risorse eccessive. Gli elenchi di controllo degli accessi Web (WebACLs) AWS WAF consentono di controllare il modo in cui il traffico raggiunge le applicazioni. In un WebACL, si aggiungono regole o gruppi di regole progettati per consentire il traffico legittimo, controllare il traffico dei bot e bloccare i modelli di attacco comuni. Per ulteriori informazioni, consulta How AWS WAF works.

Puoi associare i seguenti tipi di regole al tuo AWS WAF WebACLs:

  • Gruppi di regole AWS gestiti: i team e Marketplace AWS i venditori di Managed Rules offrono set di regole preconfigurati. Alcuni gruppi di regole gestite sono progettati per aiutare a proteggere tipi specifici di applicazioni Web. Altri offrono un'ampia protezione contro minacce note o vulnerabilità comuni.

  • Regole personalizzate e gruppi di regole personalizzati: puoi anche creare regole e gruppi di regole che personalizzano l'accesso alle tue applicazioni Web eAPIs. Ad esempio, puoi limitare il traffico in base a un elenco specifico di indirizzi IP o a un elenco di paesi.

Utilizzando questo modello e l'archivio di codice associato, è possibile utilizzare il AWS Cloud Development Kit (AWS CDK)per distribuire il AWS WAF Web ACLs con regole personalizzate. Queste regole limitano l'accesso alle risorse delle applicazioni Web in base all'indirizzo IP o alla geolocalizzazione dell'utente finale. Facoltativamente, puoi anche collegare diversi gruppi di regole gestite.

Prerequisiti e limitazioni

Prerequisiti

Limitazioni

  • È possibile utilizzare questo modello solo Regioni AWS dove AWS WAF è disponibile. Per la disponibilità per regione, vedi Servizi AWS per regione.

Strumenti

Servizi AWS

  • AWS Cloud Development Kit (AWS CDK)è un framework di sviluppo software che consente di definire e fornire Cloud AWS l'infrastruttura in codice.

  • AWS WAFè un firewall per applicazioni Web che consente di monitorare HTTP e HTTPS inoltrare le richieste alle risorse protette delle applicazioni Web.

Archivio di codice

Il codice per questo pattern è disponibile nella restrizione GitHub IP e geolocalizzazione con repository. AWS WAF Il codice distribuisce due web. AWS WAF ACLs Il primo è un sito Web ACL regionale destinato alle risorse di Amazon API Gateway. Il secondo è il web globale ACL per le CloudFront risorse di Amazon. Entrambi i siti Web ACLs contengono le seguenti regole personalizzate:

  • IPMatchblocca le richieste provenienti da indirizzi IP non consentiti.

  • GeoMatchblocca le richieste provenienti da paesi non consentiti.

Durante la distribuzione, puoi facoltativamente collegare tutti i seguenti gruppi di regole gestite al tuo web: ACLs

Epiche

AttivitàDescrizioneCompetenze richieste

Clonare il repository.

Immettete il seguente comando per clonare l'IP e la restrizione di geolocalizzazione con AWS WAF repository sulla workstation locale:

git clone https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk.git
Git

Configura le regole.

  1. Nel repository clonato, apri il file app.py.

  2. Modificate i valori delle seguenti variabili per personalizzare le regole:

    aws_acccount = "AWS_ACCOUNT" region = "AWS_REGION" ip_list = ["CIDR_RANGE_1", "CIDR_RANGE_2"] geo_list = ["COUNTRY_CODE_1", "COUNTRY_CODE_2"] aws_managed_rules = True

    Dove:

    • aws_accountè l'ID della destinazione Account AWS.

    • regionè l'obiettivo del Web Regione AWS ACL per le risorse API Gateway.

      Nota: il Web ACL per CloudFront le risorse è globale e verrà distribuito nella us-east-1 regione.

    • ip_listè l'elenco degli CIDR intervalli a cui è consentito l'accesso.

    • geo_listè l'elenco dei paesi a cui è consentito l'accesso. Per i valori validi, consulta la AWS WAF documentazione.

    • aws_managed_rulescontrolla se i gruppi di regole gestiti vengono aggiunti al WebACL. Se questo valore èTrue, vengono aggiunti. Se questo valore èFalse, vengono esclusi.

  3. Salvate e chiudete il file app.py.

GeneraleAWS, Python
AttivitàDescrizioneCompetenze richieste

Avvia il tuo AWS ambiente.

Se non l'hai già fatto, devi avviare l' AWS ambiente prima di poter distribuire l'applicazione. AWS CDK

  1. In AWS CDK CLI, inserisci il seguente comando per avviare la regione: us-east-1

    cdk bootstrap aws://<account-id>/us-east-1
  2. Se stai distribuendo il web ACL per API Gateway in una regione diversa da quellaus-east-1, inserisci il seguente comando per avviare la regione di destinazione:

    cdk bootstrap aws://<account-id>/<region>
Generale AWS

Distribuisci l' AWS CDK applicazione.

  1. Immettete il seguente comando per distribuire l' AWS CDK applicazione:

    cdk deploy --all
  2. Attendi il completamento della distribuzione AWS CloudFormation dello stack.

Generale AWS
AttivitàDescrizioneCompetenze richieste

Conferma che il Web sia ACLs stato distribuito correttamente.

  1. Accedi a AWS Management Console, quindi apri la AWS WAF console.

  2. Nel riquadro di navigazione, scegli Web ACLs.

  3. Nell'elenco di Regioni AWS, scegli Global (CloudFront).

  4. Verifica che il nuovo CloudFront Web sia ACL stato distribuito e conferma che disponga dell'indirizzo IP e delle regole di geolocalizzazione che hai definito. Il nome predefinito di questo Web è. ACL WebACLCloudfront-<ID>

  5. Nell'elenco di Regioni AWS, scegli la regione in cui hai distribuito lo stack.

  6. Verifica che sia stato distribuito un nuovo Web ACL for API Gateway Resources. Verifica che disponga dell'indirizzo IP e delle regole di geolocalizzazione che hai definito. Il nome predefinito di questo sito Web ACL è. WebACLApiGW-<ID>

Generale AWS

(Facoltativo) Associa il Web ACLs alle tue risorse.

Associate il AWS WAF Web ACLs alle vostre AWS risorse, come un Application Load Balancer, un API gateway o CloudFront una distribuzione. Per istruzioni, consulta Associare o dissociare un Web ACL da una risorsa.AWS Per un esempio, vedete class CfnWeb ACLAssociation (construct) nella documentazione. AWS CDK

Generale AWS
AttivitàDescrizioneCompetenze richieste

Elimina le pile.

  1. Dissocia il Web ACL da qualsiasi AWS risorsa. Per istruzioni, consulta la AWS WAF documentazione.

  2. Nel AWS CDK CLI, immettere il seguente comando per eliminare l' AWS CDK applicazione.

    cdk destroy --all
Generale AWS

Risorse correlate