Utilizzato AWS WAF per proteggere il tuo AWS AppSync APIs - AWS AppSync

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

Utilizzato AWS WAF per proteggere il tuo AWS AppSync APIs

AWS WAF è un firewall per applicazioni Web che aiuta a proteggere le applicazioni Web e APIs dagli attacchi. Consente di configurare una serie di regole, denominate elenco di controllo degli accessi Web (WebACL), che consentono, bloccano o monitorano (contano) le richieste Web in base a regole e condizioni di sicurezza Web personalizzabili definite dall'utente. Integrando il tuo AWS AppSync API con AWS WAF, ottieni maggiore controllo e visibilità sul HTTP traffico accettato dal tuoAPI. Per ulteriori informazioni AWS WAF, consulta How AWS WAF Works nella AWS WAF Developer Guide.

Puoi utilizzarlo AWS WAF per proteggerti AppSync API dagli exploit web più comuni, come gli attacchi SQL injection e cross-site scripting ()XSS. Questi potrebbero influire sulla API disponibilità e sulle prestazioni, compromettere la sicurezza o consumare risorse eccessive. Ad esempio, è possibile creare regole per consentire o bloccare le richieste provenienti da intervalli di indirizzi IP specifici, le richieste provenienti da CIDR blocchi, le richieste che provengono da un paese o un'area geografica specifici, le richieste che contengono SQL codice dannoso o le richieste che contengono script dannosi.

È inoltre possibile creare regole che corrispondano a una stringa specificata o a un modello di espressione regolare nelle HTTP intestazioni, nel metodo, nella stringa di query e nel corpo della richiesta (limitato ai primi 8 KB). URI 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.

Per ulteriori informazioni sui tipi di regole supportati e sulle AWS WAF funzionalità aggiuntive, consulta la Guida per gli AWS WAF sviluppatori e la Guida di AWS WAF APIriferimento.

Importante

AWS WAF è la tua prima linea di difesa contro gli exploit web. Quando AWS WAF è abilitato su unAPI, AWS WAF le regole vengono valutate prima di altre funzionalità di controllo degli accessi, come l'autorizzazione delle API chiavi, IAM le politiche, OIDC i token e i pool di utenti di Amazon Cognito.

Integra e con AppSync API AWS WAF

Puoi integrare un Appsync API AWS WAF utilizzando il AWS Management Console AWS CLI AWS CloudFormation, o qualsiasi altro client compatibile.

Per integrare e con AWS AppSync API AWS WAF
  1. Crea un AWS WAF webACL. Per i passaggi dettagliati sull'utilizzo della AWS WAF console, consulta Creazione di un Web ACL.

  2. Definisci le regole per il WebACL. Una o più regole vengono definite nel processo di creazione del WebACL. Per informazioni su come strutturare le regole, vedi AWS WAF regole. Per esempi di regole utili che puoi definire per te AWS AppSync API, vediCreazione di regole per un Web ACL.

  3. Associa il web ACL a un AWS AppSync API. È possibile eseguire questo passaggio nella AWS WAF console o nella AppSync console.

    • Per associare il Web ACL a una risorsa AWS AppSync API nella AWS WAF Console, segui le istruzioni per associare o dissociare un Web ACL a una AWS risorsa nella Guida per gli AWS WAF sviluppatori.

    • Per associare il Web a un AWS AppSync API elemento ACL presente nella console AWS AppSync

      1. Accedi AWS Management Console e apri la AppSync console.

      2. Scegli quello API che desideri associare a un webACL.

      3. Nel pannello di navigazione scegli Impostazioni.

      4. Nella sezione Web Application Firewall, attiva Abilita AWS WAF.

      5. Nell'elenco a ACL discesa Web, scegli il nome del Web ACL da associare al tuoAPI.

      6. Scegli Salva per associare il Web ACL al tuoAPI.

Nota

Dopo aver creato un Web ACL nella AWS WAF Console, possono essere necessari alcuni minuti prima che il nuovo Web ACL sia disponibile. Se non vedi un Web appena creato ACL nel menu Web Application Firewall, attendi qualche minuto e riprova i passaggi per associare il Web ACL al tuoAPI.

Nota

AWS WAF l'integrazione supporta l'Subscription registration messageevento solo per gli endpoint in tempo reale. AWS AppSync risponderà con un messaggio di errore anziché con un start_ack messaggio per qualsiasi persona Subscription registration message bloccata da AWS WAF.

Dopo aver associato un Web ACL a un AWS AppSync API, gestirai il Web ACL utilizzando AWS WAF APIs. Non è necessario associare nuovamente il Web ACL al proprio, AWS AppSync API a meno che non si desideri associarlo a un altro WebACL. AWS AppSync API

Creazione di regole per un Web ACL

Le regole definiscono come ispezionare le richieste Web e cosa fare quando una richiesta Web soddisfa i criteri di ispezione. Le regole non esistono di AWS WAF per sé. È possibile accedere a una regola per nome in un gruppo di regole o nel Web in ACL cui è definita. Per ulteriori informazioni, consulta AWS WAF le regole. Gli esempi seguenti mostrano come definire e associare regole utili per proteggere un AppSync API.

Esempio ACLregola web per limitare la dimensione del corpo della richiesta

Di seguito è riportato un esempio di regola che limita la dimensione del corpo delle richieste. Questo verrebbe inserito nell'JSONeditor delle regole durante la creazione di un Web ACL nella AWS WAF console.

{ "Name": "BodySizeRule", "Priority": 1, "Action": { "Block": {} }, "Statement": { "SizeConstraintStatement": { "ComparisonOperator": "GE", "FieldToMatch": { "Body": {} }, "Size": 1024, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ] } }, "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "BodySizeRule", "SampledRequestsEnabled": true } }

Dopo aver creato il tuo Web ACL utilizzando la regola di esempio precedente, devi associarlo al tuo AppSync API. In alternativa all'utilizzo di AWS Management Console, è possibile eseguire questo passaggio AWS CLI eseguendo il comando seguente.

aws waf associate-web-acl --web-acl-id waf-web-acl-arn --resource-arn appsync-api-arn

La propagazione delle modifiche può richiedere alcuni minuti, ma dopo aver eseguito questo comando, le richieste che contengono un corpo di dimensioni superiori a 1024 byte verranno rifiutate da. AWS AppSync

Nota

Dopo aver creato un nuovo Web ACL nella AWS WAF Console, possono essere necessari alcuni minuti prima che il Web ACL sia disponibile per l'associazione a un. API Se esegui il CLI comando e ricevi un WAFUnavailableEntityException errore, attendi qualche minuto e riprova a eseguire il comando.

Esempio ACLregola web per limitare le richieste provenienti da un singolo indirizzo IP

Di seguito è riportato un esempio di regola che limita da un AppSync API a 100 richieste da un singolo indirizzo IP. Questa verrà inserita nell'JSONeditor delle regole durante la creazione di un Web ACL con una regola basata sulla tariffa nella Console. AWS WAF

{ "Name": "Throttle", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "Throttle" }, "Statement": { "RateBasedStatement": { "Limit": 100, "AggregateKeyType": "IP" } } }

Dopo aver creato il tuo Web ACL utilizzando la regola di esempio precedente, devi associarlo alla tua. AppSync API È possibile eseguire questo passaggio AWS CLI eseguendo il comando seguente.

aws waf associate-web-acl --web-acl-id waf-web-acl-arn --resource-arn appsync-api-arn
Esempio ACLregola web per impedire le query di introspezione GraphQL __schema a un API

Di seguito è riportato un esempio di regola che impedisce le query di introspezione GraphQL __schema a un. API Qualsiasi HTTP corpo che include la stringa «__schema» verrà bloccato. Questo verrebbe inserito nell'JSONeditor delle regole durante la creazione di un Web ACL nella AWS WAF Console.

{ "Name": "BodyRule", "Priority": 5, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "BodyRule" }, "Statement": { "ByteMatchStatement": { "FieldToMatch": { "Body": {} }, "PositionalConstraint": "CONTAINS", "SearchString": "__schema", "TextTransformations": [ { "Type": "NONE", "Priority": 0 } ] } } }

Dopo aver creato il tuo Web ACL utilizzando la regola di esempio precedente, devi associarlo al tuo AppSync API. È possibile eseguire questo passaggio AWS CLI eseguendo il comando seguente.

aws waf associate-web-acl --web-acl-id waf-web-acl-arn --resource-arn appsync-api-arn