This product is not supported for your selected Datadog site. ().

App and API Protection は、以下の方法で AWS Web Application Firewall (WAF) と統合されます。

  1. ログをトレースに変換して、監視およびブロックされたリクエストを可視化する
  2. AWS WAF IP セットを使用して IP アドレスをブロックする

両方とも個別に設定できますが、AWS WAF のアクションを調査するために、まずはログからトレースへの変換を設定することをお勧めします。

前提条件

  • Amazon Web Services インテグレーションが設定されていること。
  • AWS リソース収集に対して以下の権限が有効になっていること。
    • wafv2:GetWebACL
    • wafv2:ListResourcesForWebACL
    • wafv2:ListWebACLs
    • wafv2:GetIPSet
    • wafv2:ListIPSets
  • AWS WAF インテグレーションでメトリクスとログの収集が有効になっていること。AWS WAF インテグレーションでは、S3 バケットに送信されたログのみが収集されることに注意してください。
  • ブロックに使用する AWS WAF をホストしている AWS アカウントとのコネクションが作成されていること。

AWS WAF のログをトレースに変換する

まず、[Settings] (設定) ページでログからトレースへの変換を有効にします。

次に、Web ACL テーブルにリクエストメトリクス、ログ、トレースが含まれていることを確認します。

セキュリティトレースは、サービス名 aws.waf で AAP トレースエクスプローラーにレポートされます。

AWS WAF IP セットを使用してブロックする

攻撃者をブロックするには、Datadog で専用の IP セットを管理する必要があります。この IP セットを、ブロックモードのルールを使用して Web ACL から参照する必要があります。

複数の Web ACL を、同一または異なる AWS アカウントに設定できます。すべての AWS アカウントでコネクションを作成する必要があります。

コネクションにアタッチされた AWS ロールに、以下の権限があることを確認してください。

  • wafv2:GetIPSet
  • wafv2:UpdateIPSet
  1. Terraform 構成を以下の内容で編集します。

    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. terraform apply を実行して、WAF リソースを作成および更新します。

セットアップが完了したら、Denylist ページで [Block New Attackers] (新しい攻撃者をブロック) をクリックします。Web ACL と、関連付けられた AWS コネクションを選択して、IP アドレスをブロックします。