Journalisation des informations de trafic de la liste ACL web - AWS WAF, AWS Firewall Manager, et AWS Shield Advanced

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.

Journalisation des informations de trafic de la liste ACL web

Note

Il s'agit d'une documentation AWS WAF classique. Vous ne devez utiliser cette version que si vous avez créé AWS WAF des ressources, telles que des règles et des ACL Web, AWS WAF avant novembre 2019, et que vous ne les avez pas encore migrées vers la dernière version. Pour migrer vos ressources, veuillez consulter Migration de vos ressources AWS WAF classiques vers AWS WAF.

Pour la dernière version de AWS WAF, voirAWS WAF.

Note

Vous ne pouvez pas utiliser Amazon Security Lake pour collecter des données AWS WAF classiques.

Vous pouvez activer la journalisation pour obtenir des informations détaillées sur le trafic qui est analysé par votre liste ACL web. Les informations contenues dans les journaux incluent l'heure à laquelle AWS WAF Classic a reçu la demande de votre AWS ressource, des informations détaillées sur la demande et l'action pour la règle à laquelle chaque demande correspondait.

Pour commencer, vous devez configurer un Amazon Kinesis Data Firehose. Dans le cadre de ce processus, vous choisissez une destination pour stocker vos journaux. Ensuite, vous choisissez la liste ACL web pour laquelle vous souhaitez activer la journalisation. Une fois que vous avez activé la journalisation, elle AWS WAF envoie les journaux via le Firehose à votre destination de stockage.

Pour plus d'informations sur la façon de créer un Amazon Kinesis Data Firehose et de consulter vos journaux enregistrés, consultez What Is Amazon Data Firehose ? Pour comprendre les autorisations requises pour votre configuration Kinesis Data Firehose, consultez la section Contrôle des accès avec Amazon Kinesis Data Firehose.

Vous devez disposer des autorisations suivantes pour activer la journalisation :

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • waf:PutLoggingConfiguration

Pour de plus amples informations sur les rôles liés au service et l'autorisation iam:CreateServiceLinkedRole, veuillez consulter Utilisation de rôles liés à un service pour Classic AWS WAF.

Pour activer la journalisation pour une liste ACL web
  1. Créez un Amazon Kinesis Data Firehose en utilisant un nom commençant par le aws-waf-logs préfixe « - » Par exemple,. aws-waf-logs-us-east-2-analytics Créez le firehose de données avec une source PUT et dans la région où vous développez vos activités. Si vous capturez des journaux pour Amazon CloudFront, créez le firehose dans l'est des États-Unis (Virginie du Nord). Pour plus d'informations, consultez Création d'un flux de diffusion Amazon Data Firehose.

    Important

    Ne choisissez pas Kinesis stream en tant que source.

    Un journal AWS WAF classique équivaut à un enregistrement Firehose. Si vous recevez généralement 10 000 requêtes par seconde et que vous activez les journaux complets, vous devriez avoir un paramètre de 10 000 enregistrements par seconde dans Firehose. Si vous ne configurez pas Firehose correctement, AWS WAF Classic n'enregistrera pas tous les journaux. Pour de plus amples informations, veuillez consulter Amazon Kinesis Data Firehose Quotas (Quotas d'Amazon Kinesis Data Firehose).

  2. Connectez-vous à la AWS WAF console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/wafv2/.

    Si le bouton Passer à la AWS WAF version classique apparaît dans le volet de navigation, sélectionnez-le.

  3. Dans le volet de navigation, choisissez Web ACLs.

  4. Choisissez le nom de l'ACL Web pour laquelle vous souhaitez activer la journalisation. Cela ouvre une page contenant les détails de l'ACL Web dans le volet droit.

  5. Dans l'onglet Journalisation, choisissez Activer la journalisation.

  6. Choose the Kinesis Data Firehose que vous avez créé à la première étape. Vous devez choisir une lance à incendie qui commence par « aws-waf-logs - ».

  7. (Facultatif) Si vous ne souhaitez pas que certains champs et leurs valeurs soient inclus dans les journaux, censurez ces champs. Choisissez le champ à censurer, puis choisissez Ajouter. Répétez si nécessaire pour censurer des champs supplémentaires. Les champs censurés apparaîtront en tant que REDACTED dans les journaux. Par exemple, si vous censurez le champ cookie, le champ cookie dans les journaux apparaîtra comme REDACTED.

  8. Choisissez Activer la journalisation.

    Note

    Lorsque vous activez correctement la journalisation, AWS WAF Classic crée un rôle lié à un service doté des autorisations nécessaires pour écrire des journaux sur Amazon Kinesis Data Firehose. Pour plus d’informations, consultez Utilisation de rôles liés à un service pour Classic AWS WAF.

Pour désactiver la journalisation pour une liste ACL web
  1. Dans le volet de navigation, choisissez Web ACLs.

  2. Choisissez le nom de l'ACL Web pour laquelle vous souhaitez désactiver la journalisation. Cela ouvre une page contenant les détails de l'ACL Web dans le volet droit.

  3. Dans l'onglet Journalisation, choisissez Désactiver la journalisation.

  4. Dans la boîte de dialogue, sélectionnez Désactiver la journalisation.

Exemple de journal
{ "timestamp":1533689070589, "formatVersion":1, "webaclId":"385cb038-3a6f-4f2f-ac64-09ab912af590", "terminatingRuleId":"Default_Action", "terminatingRuleType":"REGULAR", "action":"ALLOW", "httpSourceName":"CF", "httpSourceId":"i-123", "ruleGroupList":[ { "ruleGroupId":"41f4eb08-4e1b-2985-92b5-e8abf434fad3", "terminatingRule":null, "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b169-2083-4a91-bbd4-08851a9aaf74"} ], "excludedRules": [ {"exclusionType" : "EXCLUDED_AS_COUNT", "ruleId" : "5432a230-0113-5b83-bbb2-89375c5bfa98"} ] } ], "rateBasedRuleList":[ { "rateBasedRuleId":"7c968ef6-32ec-4fee-96cc-51198e412e7f", "limitKey":"IP", "maxRateAllowed":100 }, { "rateBasedRuleId":"462b169-2083-4a93-bbd4-08851a9aaf30", "limitKey":"IP", "maxRateAllowed":100 } ], "nonTerminatingMatchingRules":[ {"action" : "COUNT", "ruleId" : "4659b181-2011-4a91-bbd4-08851a9aaf52"} ], "httpRequest":{ "clientIp":"192.10.23.23", "country":"US", "headers":[ { "name":"Host", "value":"127.0.0.1:1989" }, { "name":"User-Agent", "value":"curl/7.51.2" }, { "name":"Accept", "value":"*/*" } ], "uri":"REDACTED", "args":"usernam=abc", "httpVersion":"HTTP/1.1", "httpMethod":"GET", "requestId":"cloud front Request id" } }

Voici une explication de chaque élément répertorié dans ces journaux :

timestamp

L'horodatage en millisecondes.

formatVersion

Version du format du journal.

webaclId

GUID de la liste ACL Web.

terminatingRuleId

ID de la règle qui a résilié la requête. Si rien ne résilie la requête, la valeur est Default_Action.

terminatingRuleType

Type de règle qui a résilié la requête. Valeurs possibles : RATE_BASED, REGULAR et GROUP.

action

L'action. Valeurs possibles pour une règle de résiliation : ALLOW et BLOCK. COUNT n'est pas une valeur valide pour une règle de résiliation.

terminatingRuleMatchDétails

Informations détaillées sur la règle de fin correspondant à la demande. Une règle de fin comporte une action qui met fin au processus d'inspection par rapport à une demande Web. Les actions possibles pour une règle de terminaison sont ALLOW et BLOCK. Cette information n'est renseignée que pour les instructions de règle de correspondance d'injection SQL et de script inter-site (XSS). Comme pour toutes les instructions de règle qui inspectent plusieurs éléments, AWS WAF applique l'action sur la première correspondance et arrête l'inspection de la demande Web. Une demande Web avec une action de fin peut contenir d'autres menaces, en plus de celle signalée dans le journal.

httpSourceName

Source de la requête. Valeurs possibles : CF (si la source est Amazon CloudFront), APIGW (si la source est Amazon API Gateway) et ALB (si la source est un Application Load Balancer).

httpSourceId

ID de la source. Ce champ indique l'ID de la CloudFront distribution Amazon associée, l'API REST pour API Gateway ou le nom d'un Application Load Balancer.

ruleGroupList

Liste des groupes de règles qui ont agi sur cette requête. Dans l'exemple de code précédent, il n'y en a qu'un seul.

ruleGroupId

ID du groupe de règles. Si la règle a bloqué la requête, l'ID pour ruleGroupID est le même que pour terminatingRuleId.

terminatingRule

Règle au sein du groupe de règles qui a résilié la requête. Si la valeur est non nulle, elle contient également un ruleid et une action. Dans ce cas, l'action est toujours BLOCK.

nonTerminatingMatchingRègles

Liste des règles dans le groupe de règles qui correspondent à la requête. Il s'agit toujours de règles COUNT (règles de non-résiliation correspondantes).

action (groupe de nonTerminatingMatching règles)

Il s'agit toujours de COUNT (règles de non-résiliation correspondantes).

RuleID nonTerminatingMatching (groupe de règles)

ID de la règle au sein du groupe de règles qui correspond à la requête et n'était pas de résiliation. Autrement dit, des règles COUNT.

excludedRules

Liste des règles dans le groupe de règles que vous avez exclues. L'action pour ces règles est définie sur COUNT.

exclusionType (groupe excludedRules)

Type qui indique que la règle exclue comporte l'action COUNT.

ruleId (groupe excludedRules)

ID de la règle au sein du groupe de règles qui est exclu.

rateBasedRuleListe

Liste de règles basées sur le débit qui ont agi sur la requête.

rateBasedRuleId

ID de la règle basée sur le débit qui a agi sur la requête. Si cette règle a résilié la requête, l'ID pour rateBasedRuleId est le même que pour terminatingRuleId.

limitKey

Champ AWS WAF utilisé pour déterminer si les demandes sont susceptibles de provenir d'une source unique et sont donc soumises à un suivi du taux. Valeur possible : IP.

maxRateAllowed

Nombre maximal de requêtes, qui ont une valeur identique dans le champ spécifié par limitKey, autorisées au cours d'une période de cinq minutes. Si le nombre de demandes dépasse le nombre de prédicats spécifiés dans la règle maxRateAllowed et si les autres prédicats spécifiés dans la règle sont également satisfaits, AWS WAF déclenche l'action spécifiée pour cette règle.

httpRequest

Métadonnées relatives à la requête.

clientIp

Adresse IP du client envoyant la requête.

country

Pays source de la requête. S'il n' AWS WAF est pas en mesure de déterminer le pays d'origine, il définit ce champ sur-.

headers

Liste des en-têtes.

uri

URI de la requête. L'exemple de code précédent montre ce que la valeur serait si ce champ avait été censuré.

args

Chaîne de requête.

httpVersion

Version de HTTP.

httpMethod

Méthode HTTP de la requête.

requestId

ID de la demande.