Association d’une ACL web AWS WAF avec un groupe d’utilisateurs - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Association d’une ACL web AWS WAF avec un groupe d’utilisateurs

AWS WAF est un pare-feu d’application web Avec une liste de contrôle d’accès web AWS WAF (ACL web), vous pouvez protéger votre groupe d’utilisateurs contre les demandes indésirables adressées à votre interface utilisateur hébergée et aux points de terminaison des services d’API Amazon Cognito. Une ACL web vous permet de contrôler avec précision toutes les requêtes web HTTPS auxquelles votre groupe d’utilisateurs répond. Pour en savoir plus sur les listes ACL web AWS WAF, consultez Gestion et utilisation d’une liste de contrôle d’accès web (ACL web) dans le Manuel du développeur AWS WAF.

Lorsque vous associez une liste ACL Web AWS WAF à un groupe d’utilisateurs, Amazon Cognito transmet les en-têtes non confidentiels sélectionnés et le contenu des demandes de vos utilisateurs à AWS WAF. AWS WAF inspecte le contenu de la demande, le compare aux règles que vous avez spécifiées dans votre liste ACL Web et renvoie une réponse à Amazon Cognito.

Ce qu’il faut savoir sur les listes ACL Web AWS WAF et Amazon Cognito

  • Les demandes bloquées par AWS WAF ne sont pas prises en compte dans le quota de taux de demandes, quel que soit le type de demande. Le gestionnaire AWS WAF est appelé avant les gestionnaires de limitation au niveau de l’API.

  • Lorsque vous créez une liste ACL web, peu de temps s’écoule avant qu’elle ne soit entièrement propagée et ne soit disponible pour Amazon Cognito. Le temps de propagation peut aller de quelques secondes à plusieurs minutes.AWS WAF renvoie une WAFUnavailableEntityException lorsque vous essayez d’associer une ACL web avant qu’elle ne soit complètement propagée.

  • Vous pouvez associer une liste ACL web à un groupe d’utilisateurs.

  • Votre demande peut entraîner une charge utile supérieure aux limites de ce que AWS WAF peut inspecter. Consultez Gestion des composants de demande surdimensionnés dans le Manuel du développeur AWS WAF afin de savoir comment configurer la gestion par AWS WAF des demandes surdimensionnées provenant d’Amazon Cognito.

  • Vous ne pouvez pas associer une ACL web qui utilise le Contrôle des fraudes et prévention du piratage de comptes (ATP) de AWS WAF avec un groupe d’utilisateurs Amazon Cognito. Vous implémentez la fonctionnalité ATP lorsque vous ajoutez le groupe de règles gérées par AWS-AWSManagedRulesATPRuleSet. Avant de l’associer à un groupe d’utilisateurs, assurez-vous que votre ACL web n’utilise pas ce groupe de règles gérées.

  • Lorsque vous avez une liste ACL Web AWS WAF associée à un groupe d’utilisateurs et qu’une règle de votre liste ACL Web présente un CAPTCHA, une erreur irrécupérable peut se produire lors de l’enregistrement TOTP dans l’interface utilisateur hébergée. Pour créer une règle qui comporte une action CAPTCHA et qui n’affecte pas l’enregistrement TOTP de l’interface utilisateur hébergée, veuillez consulter Configuration de votre ACL Web AWS WAF pour l’authentification MFA TOTP sur l’interface utilisateur hébergée.

AWS WAF inspecte les demandes adressées aux points de terminaison suivants.

Interface utilisateur hébergée

Demandes adressées à tous les points de terminaison de Référence de l’interface utilisateur hébergée et des points de terminaison de la fédération des groupes d’utilisateurs.

Opérations d’API publiques

Demandes de votre application vers l’API Amazon Cognito qui n’utilisent pas des informations d’identification AWS pour l’autorisation. Cela inclut les opérations d'API telles que InitiateAuthRespondToAuthChallenge, et GetUser. Les opérations d’API qui relèvent du champ d’application deAWS WAF ne nécessitent pas d’authentification avec les informations d’identification AWS. Elles ne sont pas authentifiées ni autorisées par une chaîne de session ou un jeton d’accès. Pour plus d’informations, consultez Opérations d’API authentifiées et non authentifiées des groupes d’utilisateurs Amazon Cognito.

Vous pouvez configurer les règles dans votre ACL web avec des actions de règles qui effectuent les opérations Count, Allow ou Block, ou qui présentent un CAPTCHA en réponse à une demande qui correspond à une règle. Pour plus d’informations, veuillez consulter la rubrique Règles AWS WAF dans le Manuel du développeur AWS WAF. En fonction de l’action de la règle, vous pouvez personnaliser la réponse qu’Amazon Cognito renvoie à vos utilisateurs.

Important

Les options qui s’offrent à vous pour personnaliser la réponse aux erreurs dépendent de la manière dont vous envoyez une demande d’API.

  • Vous pouvez personnaliser le code d’erreur et le corps de réponse des requêtes d’interface utilisateur hébergées. Vous ne pouvez présenter un CAPTCHA pour que votre utilisateur puisse le résoudre dans l’interface utilisateur hébergée.

  • Pour les demandes que vous faites avec l’API de groupes d’utilisateurs Amazon Cognito, vous pouvez personnaliser le corps de la réponse d’une demande qui reçoit une réponse Bloquer. Vous pouvez également spécifier un code d’erreur personnalisé compris entre 400 et 499.

  • L’AWS Command Line Interface (AWS CLI) et les kits AWS SDK renvoient une erreur ForbiddenException dans les requêtes qui produisent une réponse Block ou CAPTCHA.

Associer une ACL web à votre groupe d’utilisateurs

Pour utiliser une ACL web dans votre groupe d’utilisateurs, votre AWS Identity and Access Management (IAM) doit disposer des autorisations Amazon Cognito suivantes. Pour de plus amples informations sur l’octroi d’autorisations AWS WAF, veuillez consulter Autorisations d’API AWS WAF dans le Manuel du développeur AWS WAF.

  • cognito-idp:AssociateWebACL

  • cognito-idp:DisassociateWebACL

  • cognito-idp:GetWebACLForResource

  • cognito-idp:ListResourcesForWebACL

Bien que vous deviez accorder des autorisations IAM, les actions répertoriées sont uniquement des autorisations et ne correspondent à aucune opération d’API.

Pour activer AWS WAF pour votre groupe d’utilisateurs et associer une ACL web

  1. Connectez-vous à la console Amazon Cognito.

  2. Dans le volet de navigation, choisissez Groupes d’utilisateurs, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

  3. Choisissez l’onglet User pool properties (Propriétés du groupe d’utilisateurs).

  4. Choisissez Edit (Modifier) en regard de AWS WAF.

  5. Sous AWS WAF, sélectionnez Use AWS WAF with your user pool (Utiliser WAF avec votre groupe d’utilisateurs).

    
              Capture d’écran de la boîte de dialogue AWS WAF avec Use AWS WAF with your user pool (Utiliser WAF avec votre groupe d’utilisateurs) sélectionné.
  6. Choisissez une ACL web AWS WAF que vous avez déjà créée ou choisissez Créer une ACL web dans AWS WAF pour en créer une dans une nouvelle session AWS WAF dans la AWS Management Console.

  7. Sélectionnez Enregistrer les modifications.

Pour associer par programmation une ACL Web à votre groupe d'utilisateurs dans le SDK AWS Command Line Interface ou dans un SDK, utilisez l'AssociateWebACL depuis l'API. AWS WAF Amazon Cognito ne dispose pas d’une opération d’API distincte qui associe une ACL Web.

Test et consignation des ACL web AWS WAF

Lorsque vous définissez une action de règle sur Count dans votre ACL web, AWS WAF ajoute la demande au nombre de demandes qui correspondent à la règle. Pour tester une ACL web avec votre groupe d’utilisateurs, définissez les actions des règles sur Count et examinez le volume de demandes correspondant à chaque règle. Par exemple, si une règle que vous souhaitez définir comme action Block correspond à un grand nombre de demandes que vous considérez comme relevant du trafic utilisateur normal. Vous devrez peut-être reconfigurer votre règle. Pour plus d’informations, veuillez consulter Tester et régler vos protections AWS WAF dans le Manuel du développeur AWS WAF.

Vous pouvez également configurer AWS WAF pour consigner les en-têtes des demandes dans un groupe de CloudWatch journaux Amazon Logs, un bucket Amazon Simple Storage Service (Amazon S3) ou un Amazon Data Firehose. Vous pouvez identifier les demandes Amazon Cognito que vous faites à l’aide de l’API des groupes d’utilisateurs grâce à x-amzn-cognito-client-id et x-amzn-cognito-operation-name. Les requêtes d’interface utilisateur hébergée incluent uniquement l’en-tête x-amzn-cognito-client-id. Pour plus d’informations, consultez Journalisation du trafic ACL web dans le Guide du développeur AWS WAF.

Les ACL web AWS WAF ne sont pas soumises à la tarification pour les fonctions de sécurité avancée d’Amazon Cognito. Les fonctions de sécurité de AWS WAF complètent les fonctions de sécurité avancées d’Amazon Cognito. Vous pouvez activer les deux fonctions dans un groupe d’utilisateurs. AWS WAF facture séparément pour l’inspection des demandes du groupe d’utilisateurs. Pour plus d’informations, consultez Tarification d’AWS WAF.

La journalisation des données des demandes AWS WAF est soumise à une facturation supplémentaire par le service sur lequel vous ciblez vos journaux. Pour plus d’informations, veuillez consulter la rubrique Tarification pour la journalisation des informations sur le trafic ACL web dans le Manuel du développeur AWS WAF.