Este producto no es compatible con el sitio Datadog seleccionado. ().

Overview

App and API Protection leverages the Datadog Java library to monitor and secure your Java service. The library integrates seamlessly with your existing application without requiring code changes.

For detailed compatibility information, including supported Java versions, frameworks, and deployment environments, see Java Compatibility Requirements.

This guide explains how to set up App and API Protection (AAP) for Java applications. The setup involves:

  1. Installing the Datadog Agent.
  2. Enabling App and API Protection monitoring.
  3. Running your Java application with the Datadog Agent.
  4. Verifying the setup.

Requisitos previos

  • Entorno de AWS Fargate
  • Aplicación Java en contenedores con Docker
  • AWS CLI configurado con los permisos adecuados
  • Tu clave de API Datadog
  • Biblioteca de rastreo Java de Datadog (consulta requisitos de la versión)

1. Instalación del Datadog Agent

Instala el Datadog Agent en la definición de tu tarea de Fargate:

{
  "containerDefinitions": [
    {
      "name": "datadog-agent",
      "image": "public.ecr.aws/datadog/agent:latest",
      "environment": [
        {
          "name": "DD_API_KEY",
          "value": "<YOUR_API_KEY>"
        },
        {
          "name": "DD_APM_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_APM_NON_LOCAL_TRAFFIC",
          "value": "true"
        }
      ]
    }
  ]
}

2. Activación de la monitorización de App and API Protection

Automatically enabling App and API Protection through Remote Configuration

You can enable remote configuration on your services dashboard. Simply check the box for the service you want to enable App and API Protection for under "Activate on your APM services".

Activación manual de la monitorización de App and API Protection

Descarga la última versión de la biblioteca Java de Datadog:

ADD 'https://dtdg.co/latest-java-tracer' /dd-java-agent.jar

Actualiza la definición de la tarea para incluir el agent Java y la configuración de App and API Protection:

{
  "containerDefinitions": [
    {
      "name": "your-java-app",
      "image": "your-java-app-image",
      "command": [
        "java",
        "-javaagent:/dd-java-agent.jar",
        "-Ddd.appsec.enabled=true",
        "-Ddd.service=<MY_SERVICE>",
        "-Ddd.env=<MY_ENV>",
        "-jar",
        "/app.jar"
      ]
    }
  ]
}

Actualiza la definición de la tarea para incluir el agent Java y la configuración de App and API Protection:

{
  "containerDefinitions": [
    {
      "name": "your-java-app",
      "image": "your-java-app-image",
      "environment": [
        {
          "name": "DD_APPSEC_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_SERVICE",
          "value": "<YOUR_SERVICE_NAME>"
        },
        {
          "name": "DD_ENV",
          "value": "<YOUR_ENVIRONMENT>"
        }
      ],
      "command": [
        "java",
        "-javaagent:/dd-java-agent.jar",
        "-jar",
        "/app.jar"
      ]
    }
  ]
}

Para desactivar el rastreo de APM mientras se mantiene activada App and API Protection, debes establecer la variable de rastreo de APM en false (falso).

Actualiza la definición de la tarea para incluir el agent Java y la configuración de App and API Protection con el rastreo de APM desactivado:

{
  "containerDefinitions": [
    {
      "name": "your-java-app",
      "image": "your-java-app-image",
      "command": [
        "java",
        "-javaagent:/dd-java-agent.jar",
        "-Ddd.appsec.enabled=true",
        "-Ddd.apm.tracing.enabled=false",
        "-Ddd.service=<MY_SERVICE>",
        "-Ddd.env=<MY_ENV>",
        "-jar",
        "/app.jar"
      ]
    }
  ]
}

Actualiza la definición de la tarea para incluir el agent Java y la configuración de App and API Protection con el rastreo de APM desactivado:

{
  "containerDefinitions": [
    {
      "name": "your-java-app",
      "image": "your-java-app-image",
      "environment": [
        {
          "name": "DD_APPSEC_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_APM_TRACING_ENABLED",
          "value": "false"
        },
        {
          "name": "DD_SERVICE",
          "value": "<YOUR_SERVICE_NAME>"
        },
        {
          "name": "DD_ENV",
          "value": "<YOUR_ENVIRONMENT>"
        }
      ],
      "command": [
        "java",
        "-javaagent:/dd-java-agent.jar",
        "-jar",
        "/app.jar"
      ]
    }
  ]
}

3. Ejecuta tu aplicación

Despliega tu tarea de Fargate con la configuración actualizada:

aws ecs register-task-definition --cli-input-json file://task-definition.json
aws ecs run-task --cluster your-cluster --task-definition your-task-definition

4. Verify setup

To verify that App and API Protection is working correctly:

  1. Send some traffic to your application.
  2. Check for security signals and vulnerabilities in the Application Signals Explorer in Datadog.

Solucionar problemas

Si tienes problemas al configurar App and API Protection para tu aplicación Java, consulta la Guía de solución de problemas de App and API Protection en Java.

Referencias adicionales