Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

La protection des applications et des API s’intègre à AWS Web Application Firewall (WAF) en :

  1. Convertissant les logs en traces pour obtenir une visibilité sur les requêtes surveillées et bloquées
  2. Bloquant les adresses IP avec des IPsets AWS WAF

Les deux peuvent être configurés indépendamment, mais il est recommandé de configurer d’abord la conversion des logs en traces afin d’inspecter les actions AWS WAF.

Prérequis

  • L’intégration Amazon Web Services est configurée.
  • Les autorisations suivantes sont activées pour l’AWS Resource Collection :
    • wafv2:GetWebACL
    • wafv2:ListResourcesForWebACL
    • wafv2:ListWebACLs
    • wafv2:GetIPSet
    • wafv2:ListIPSets
  • La collecte des métriques et des logs est activée sur l’intégration AWS WAF. Notez que seuls les logs envoyés vers un bucket S3 sont collectés par l’intégration AWS WAF.
  • Une Connexion est créée avec le compte AWS hébergeant l’AWS WAF utilisé pour le blocage.

Convertir les logs AWS WAF en traces

Tout d’abord, activez la conversion des logs en traces sur la Settings page.

Ensuite, assurez-vous que le tableau des ACL Web contient les métriques de requête ainsi que les logs et les traces.

Les traces de sécurité sont rapportées dans l’AAP Traces Explorer avec le nom de service aws.waf.

Bloquer avec des IPsets AWS WAF

Pour bloquer les attaquants, Datadog doit gérer un IPset dédié. Cet IPset doit être référencé par le web ACL avec une règle en mode blocage.

Plusieurs web ACLs peuvent être configurées dans le même compte AWS ou dans des comptes AWS différents. Une Connexion doit être créée sur chaque compte AWS.

Assurez-vous que le rôle AWS associé à la Connexion dispose des autorisations suivantes :

  • wafv2:GetIPSet
  • wafv2:UpdateIPSet
  1. Modifiez votre configuration Terraform avec le contenu suivant :

    resource "aws_wafv2_ip_set" "datadog_blocked_ipv4s" {
      name               = "Datadog-blocked-ipv4s"
      ip_address_version = "IPV4"
      scope              = "CLOUDFRONT"
      addresses          = []
    
      lifecycle {
        # The addresses are managed by the Datadog Application Security product.
        ignore_changes = [addresses]
      }
    }
    
    # Add a blocking rule to your existing web ACL resource
    resource "aws_wafv2_web_acl" "EdgeWAF" {
      name  = "EdgeWAF"
      description = "undefined"
      scope = "CLOUDFRONT"
    
      default_action {
        allow {}
      }
    
      rule {
        name     = "BlockedIPs"
        priority = 0
    
        action {
          block {}
        }
    
        statement {
          ip_set_reference_statement {
            arn = aws_wafv2_ip_set.datadog_blocked_ipv4s.arn
          }
        }
    
        visibility_config {
          cloudwatch_metrics_enabled = true
          metric_name                = "Datadog-blocked-ipv4s"
          sampled_requests_enabled   = true
        }
      }
    
      visibility_config {
        cloudwatch_metrics_enabled = true
        metric_name                = "EdgeWAF"
        sampled_requests_enabled   = true
      }
    }
    
  2. Exécutez terraform apply pour créer et mettre à jour les ressources WAF.

Une fois la configuration terminée, cliquez sur Block New Attackers sur la denylist page. Sélectionnez le web ACL et la Connexion AWS associée pour bloquer les adresses IP.