View a markdown version of this page

Associa un AWS WAF ACL web con un pool di utenti - Amazon Cognito

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

Associa un AWS WAF ACL web con un pool di utenti

AWS WAF è un firewall per applicazioni Web. Con una AWS WAF lista di controllo degli accessi Web (Web ACL), puoi proteggere il tuo pool di utenti da richieste indesiderate all'interfaccia utente ospitata classica, all'accesso gestito e agli endpoint del servizio API Amazon Cognito. Una ACL Web offre un controllo granulare su tutte le richieste Web HTTPS a cui risponde il pool di utenti. Per ulteriori informazioni sulle ACL Web AWS WAF , consulta Gestione e utilizzo di una lista di controllo degli accessi Web (ACL Web) nella Guida per gli sviluppatori di AWS WAF .

Quando hai un ACL AWS WAF Web associato a un pool di utenti, Amazon Cognito inoltra le intestazioni e i contenuti selezionati non riservati delle richieste degli utenti a. AWS WAF AWS WAF ispeziona il contenuto della richiesta, la confronta con le regole che hai specificato nell'ACL web e restituisce una risposta ad Amazon Cognito. I componenti della richiesta inoltrati da Amazon Cognito AWS WAF dipendono dal tipo di richiesta. Per l'accesso gestito e l'interfaccia utente ospitata classica, Amazon Cognito non inoltra il corpo della richiesta. Per ulteriori informazioni, consulta Cose da sapere AWS WAF ACL web e Amazon Cognito.

Cose da sapere AWS WAF ACL web e Amazon Cognito

  • Non puoi configurare le regole Web ACL in modo che corrispondano alle informazioni di identificazione personale (PII) nelle richieste dei pool di utenti, ad esempio nomi utente, password, numeri di telefono o indirizzi e-mail. Questi dati non saranno disponibili per. AWS WAF Configura invece le regole ACL Web in modo che corrispondano ai dati della sessione nelle intestazioni, nel percorso e nel corpo, come gli indirizzi IP, gli agenti del browser e le operazioni API richieste.

  • Amazon Cognito supporta le regole ACL Web basate sul corpo solo per le richieste all'API dei pool di utenti. Per l'accesso gestito e la classica interfaccia utente ospitata, Amazon Cognito non inoltra il corpo della richiesta e ispeziona solo le intestazioni e gli altri componenti non del corpo.

  • Le regole Web ACL possono restituire una risposta di blocco personalizzata solo quando il browser carica una pagina di accesso gestita. Le richieste inviate dalla pagina senza ricaricarsi, ad esempio quando un utente invia il modulo di accesso, ricevono invece una risposta di blocco predefinita403.

  • Le richieste bloccate da AWS WAF non vengono conteggiate ai fini della quota di richiesta per nessun tipo di richiesta. Il AWS WAF gestore viene chiamato prima dei gestori di API-level limitazione.

  • Quando si crea una ACL Web, passa del tempo prima che l'ACL Web si propaghi completamente e sia disponibile per Amazon Cognito. Il tempo di propagazione può variare da pochi secondi a diversi minuti. AWS WAF restituisce a WAFUnavailableEntityExceptionquando si tenta di associare un ACL Web prima che si sia completamente propagato.

  • È possibile associare un ACL Web a ciascun pool di utenti.

  • La richiesta potrebbe comportare un payload superiore ai limiti di quanto AWS WAF può controllare. Consulta Gestione dei componenti di richieste sovradimensionate nella AWS WAF Developer Guide per scoprire come configurare come AWS WAF gestire le richieste sovradimensionate da Amazon Cognito.

  • Non puoi associare un ACL Web che utilizza la prevenzione dell'acquisizione di account AWS WAF Fraud Control (ATP) a un pool di utenti Amazon Cognito. La funzionalità ATP fa parte del gruppo di regole gestite. AWS-AWSManagedRulesATPRuleSet Prima di associare un ACL Web a un pool di utenti, assicurati che non utilizzi questo gruppo di regole gestito.

  • Quando hai un ACL AWS WAF web associato a un pool di utenti e una regola nell'ACL web presenta un CAPTCHA, ciò può causare un errore irreversibile nella registrazione TOTP con accesso gestito. Per creare una regola che abbia un'azione CAPTCHA e non influisca sul TOTP dell'accesso gestito, consulta. Configurazione del AWS WAF ACL web per accesso gestito TOTP MFA

  • Quando una regola nel tuo ACL Web restituisce una risposta di blocco personalizzata, Amazon Cognito aggiunge Content-Security-Policy un'intestazione a tale risposta. Questa politica consente l'utilizzo di script solo dalla stessa origine del dominio del pool di utenti e dagli script AWS WAF CAPTCHA e challenge forniti da Amazon Cognito. Blocca qualsiasi altro script in linea o di terze parti, incluso uno script utilizzato dal corpo di risposta personalizzato per reindirizzare l'utente. Per ulteriori informazioni, consulta Content-Security-Policy sulle risposte personalizzate ai blocchi.

  • Quando una regola nel tuo ACL Web restituisce una risposta di blocco personalizzata con un codice di stato HTTP pari o superiore a 500 in risposta a un accesso gestito o a una richiesta di interfaccia utente ospitata classica, Amazon Cognito restituisce invece 403 (Forbidden) un codice di stato. Per ulteriori informazioni, consulta Codici di stato nelle risposte ai blocchi personalizzate.

AWS WAF esamina le richieste ai seguenti endpoint.

Accesso gestito e interfaccia utente classica ospitata

Richieste a tutti gli endpoint in Endpoint del pool di utenti e riferimento per l'accesso gestito.

Operazioni API pubbliche

Richieste dalla tua app all'API Amazon Cognito che non utilizzano AWS credenziali per l'autorizzazione. Ciò include operazioni API come InitiateAuth, e RespondToAuthChallenge. GetUser Le operazioni API incluse nell'ambito di AWS WAF non richiedono l'autenticazione con AWS credenziali. Non sono autenticate o sono autorizzate con una stringa di sessione o un token di accesso. Per ulteriori informazioni, consulta Elenco delle operazioni API raggruppate per modello di autorizzazione.

È possibile configurare le regole nell'ACL Web con operazioni di regole Count (Conteggio), Allow (Consenti), Block (Blocca), oppure che presentano un CAPTCHA in risposta a una richiesta che corrisponde a una regola. Per ulteriori informazioni, consulta Regole personalizzate AWS WAF nella Guida per gli sviluppatori di AWS WAF . A seconda dell'operazione della regola, è possibile personalizzare la risposta che Amazon Cognito restituisce agli utenti.

Importante

Le opzioni per personalizzare la risposta all'errore dipendono dal modo in cui si effettua una richiesta API.

  • È possibile personalizzare il codice di errore e il corpo di risposta delle richieste di accesso gestite. Amazon Cognito restituisce codici di errore personalizzati pari o superiori a 500. 403 Per ulteriori informazioni, consulta Codici di stato nelle risposte ai blocchi personalizzate. Puoi solo presentare un CAPTCHA che il tuo utente deve risolvere nell'accesso gestito.

  • Per le richieste effettuate con l'API dei pool di utenti di Amazon Cognito, puoi personalizzare il corpo della risposta di una richiesta che riceve una risposta Blocca. È inoltre possibile specificare un codice di errore personalizzato compreso tra 400 e 499.

  • Il AWS Command Line Interface (AWS CLI) e gli AWS SDK restituiscono un ForbiddenException errore alle richieste che producono una risposta Block o CAPTCHA.

Content-Security-Policy sulle risposte personalizzate ai blocchi

Se la risposta ai blocchi personalizzata si basa su script, questa politica può influire sul suo comportamento. Quando una regola ACL Web restituisce una risposta di blocco personalizzata all'accesso gestito o alla classica interfaccia utente ospitata, Amazon Cognito aggiunge Content-Security-Policy un'intestazione (CSP) a tale risposta. Il CSP è un meccanismo di sicurezza del browser che limita gli script e le altre risorse che una pagina può caricare. La politica limita la risposta come segue:

  • La risposta può includere script e altre risorse provenienti dalla stessa origine del dominio del pool di utenti.

  • La risposta può includere il AWS WAF CAPTCHA e gli script di sfida forniti da Amazon Cognito. Amazon Cognito consente di inserire questi script in modo che AWS WAF CAPTCHA e le azioni relative alle regole di sfida continuino a funzionare.

Qualsiasi altro script in linea e qualsiasi script ospitato su un dominio diverso dal dominio del pool di utenti non viene eseguito. Ciò include uno script utilizzato da un corpo di risposta personalizzato per reindirizzare l'utente, inviare un modulo o inviare una richiesta di rete.

Se la risposta personalizzata deve reindirizzare l'utente, restituisci un codice di stato HTTP 3xx e un'Locationintestazione anziché un reindirizzamento basato su script. Questo modello non dipende dall'esecuzione dello script e non è influenzato dal CSP.

Questo comportamento si applica a tutti i Regioni AWS casi in cui è possibile associare un ACL Web a un pool di utenti.

Codici di stato nelle risposte ai blocchi personalizzate

Amazon Cognito non restituisce i codici di 5xx stato delle risposte ai blocchi AWS WAF personalizzate. Quando una regola Web ACL restituisce una risposta di blocco personalizzata con un codice di stato pari o superiore a 500, Amazon Cognito risponde invece con 403 (Forbidden) un codice di stato. La risposta include ancora le intestazioni e il corpo della risposta personalizzata. Questo comportamento si applica come segue:

  • Pagine di accesso gestite: quando il browser carica una pagina di accesso gestita, Amazon Cognito restituisce 403 le intestazioni e il testo della risposta personalizzata. Le richieste inviate dalla pagina senza ricaricamento, ad esempio l'invio di moduli, ricevono la risposta di 403 blocco predefinita senza intestazioni o testo personalizzati.

  • Pagine dell'interfaccia utente ospitate nella versione classica e altri endpoint del pool di utenti: Amazon Cognito 403 restituisce le intestazioni e il corpo della risposta personalizzata per le pagine dell'interfaccia utente ospitate classiche. Il provider di identità e gli endpoint relying party si comportano allo stesso modo, indipendentemente dal fatto che il pool di utenti utilizzi l'accesso gestito o il branding dell'interfaccia utente ospitata classica.

  • API dei pool di utenti: l'API dei pool di utenti restituisce il codice di stato personalizzato solo quando è compreso tra 400 e 499 e restituisce altri codici di stato. 403

Associazione di una ACL Web al pool di utenti

Per utilizzare un ACL Web nel tuo pool di utenti, il tuo principale AWS Identity and Access Management (IAM) deve disporre dei seguenti Amazon Cognito AWS WAF e delle autorizzazioni seguenti. Per informazioni sulle AWS WAF autorizzazioni, consulta le autorizzazioni AWS WAF API nella Guida per gli sviluppatori.AWS WAF

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowWebACLUserPool", "Effect": "Allow", "Action": [ "cognito-idp:ListResourcesForWebACL", "cognito-idp:GetWebACLForResource", "cognito-idp:AssociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:123456789012:userpool/*" ] }, { "Sid": "AllowWebACLUserPoolWAFv2", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACLForResource" ], "Resource": "arn:aws:wafv2:*:123456789012:*/webacl/*/*" }, { "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:DisassociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:123456789012:userpool/*" ] } ] }

Sebbene sia necessario concedere le autorizzazioni IAM, le azioni elencate riguardano solo le autorizzazioni e non corrispondono a nessuna operazione API.

Per attivare AWS WAF per il tuo pool di utenti e associare un ACL web
  1. Accedi alla console Amazon Cognito.

  2. Nel pannello di navigazione, scegli User Pools (Bacini d'utenza) e seleziona i bacini d'utenza che intendi modificare.

  3. Scegli la AWS WAFscheda nella sezione Sicurezza.

  4. Scegli Modifica.

  5. Seleziona Usa AWS WAF con il tuo pool di utenti.

    Schermata della AWS WAF finestra di dialogo con Use AWS WAF with your user pool selezionato.
  6. Scegliete un ACL AWS WAF Web che avete già creato oppure scegliete Crea ACL Web in AWS WAF per crearne uno in una nuova AWS WAF sessione in. Console di gestione AWS

  7. Scegli Save changes (Salva modifiche).

Per associare a livello di codice un ACL Web al tuo pool di utenti in AWS Command Line Interface o in un SDK, utilizza ACL dell'API. AssociateWeb AWS WAF Amazon Cognito non dispone di un'operazione API distinta che associ una lista ACL Web.

Test e registrazione AWS WAF ACL web

Quando imposti un'azione della regola su Count nell'ACL web, AWS WAF aggiunge la richiesta a un conteggio di richieste che corrispondono alla regola. Per testare una ACL Web con il pool di utenti, impostare le operazioni delle regole su Count (Conteggio) e considerare il volume di richieste che corrispondono a ciascuna regola. Ad esempio, se una regola che desideri impostare sull'operazione Block (Blocca) corrisponde a un gran numero di richieste che si ritiene sia un normale traffico utente, potrebbe essere necessario riconfigurare la regola. Per ulteriori informazioni, consulta Testare e ottimizzare AWS WAF le protezioni nella Guida per gli AWS WAF sviluppatori.

Puoi anche configurare AWS WAF per registrare le intestazioni delle richieste in un gruppo di log di Amazon CloudWatch Logs, un bucket Amazon Simple Storage Service (Amazon S3) o un Amazon Data Firehose. Puoi identificare le richieste Amazon Cognito effettuate con l'API dei pool di utenti tramite x-amzn-cognito-client-id e x-amzn-cognito-operation-name. Le richieste di accesso gestite includono solo l'intestazione. x-amzn-cognito-client-id Per ulteriori informazioni, consulta Registrazione del traffico ACL Web nella Guida per gli sviluppatori di AWS WAF .

AWS WAF gli ACL web sono disponibili in tutti i piani di funzionalità del pool di utenti. Le funzionalità di sicurezza AWS WAF completano la protezione dalle minacce di Amazon Cognito. È possibile attivare entrambe le caratteristiche in un pool di utenti. AWS WAF fattura separatamente per l'ispezione delle richieste del pool di utenti. Per ulteriori informazioni, consulta AWS WAF Prezzi.

I dati della AWS WAF richiesta di registrazione sono soggetti a una fatturazione aggiuntiva da parte del servizio a cui vengono indirizzati i log. Per ulteriori informazioni, consulta Prezzi per la registrazione delle informazioni sul traffico ACL web nella Guida per gli sviluppatori di AWS WAF .