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

You can enable App and API Protection for Java services with the following setup options:

  1. If your Java service already has APM tracing set up and running, then skip to service configuration.
  2. If your Java service doesn't have APM tracing set up, you can easily enable App and API Protection with Datadog's Automatic Installation.
  3. Otherwise, continue reading the manual setup instructions below.

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

  • Clúster de Kubernetes
  • Aplicación Java en contenedor con Docker
  • kubectl configurado para acceder a tu clúster
  • Helm (recomendado para la instalación del Agent)
  • Tu clave de API Datadog
  • Biblioteca de rastreo Java Datadog (consulta los requisitos de la versión aquí)

1. Instalación del Datadog Agent

Instala el Datadog Agent siguiendo las instrucciones de instalación de Kubernetes.

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

Automatically enabling App and API Protection through Remote Configuration

You can enable services with remote configuration on your services dashboard. 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 Datadog utilizando un contenedor de inicialización:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-java-app
spec:
  template:
    spec:
      initContainers:
      - name: download-agent
        image: busybox
        command: ['sh', '-c', 'wget -O /shared/dd-java-agent.jar https://dtdg.co/latest-java-tracer']
        volumeMounts:
        - name: agent-volume
          mountPath: /shared
      volumes:
      - name: agent-volume
        emptyDir: {}

Inicia tu aplicación Java con el Datadog Agent y App and API Protection activado mediante argumentos de línea de comando:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-java-app
spec:
  template:
    spec:
      containers:
      - name: your-java-app
        image: your-java-app-image
        volumeMounts:
        - name: agent-volume
          mountPath: /dd-java-agent.jar
          subPath: dd-java-agent.jar
        command: ["java"]
        args: ["-javaagent:/dd-java-agent.jar", "-Ddd.appsec.enabled=true", "-Ddd.service=<MY_SERVICE>", "-Ddd.env=<MY_ENV>", "-jar", "/app.jar"]

Inicia tu aplicación Java con App and API Protection activado mediante variables de entorno:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-java-app
spec:
  template:
    spec:
      containers:
      - name: your-java-app
        image: your-java-app-image
        volumeMounts:
        - name: agent-volume
          mountPath: /dd-java-agent.jar
          subPath: dd-java-agent.jar
        env:
        - name: DD_APPSEC_ENABLED
          value: "true"
        - name: DD_SERVICE
          value: "<MY_SERVICE>"
        - name: DD_ENV
          value: "<MY_ENV>"
        command: ["java"]
        args: ["-javaagent:/dd-java-agent.jar", "-jar", "/app.jar"]

Para desactivar el rastreo APM mientras se mantiene activado App and API Protection, debes configurar la variable de rastreo APM como false.

Inicia tu aplicación Java con el Datadog Agent y App and API Protection activado mediante argumentos de línea de comando:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-java-app
spec:
  template:
    spec:
      containers:
      - name: your-java-app
        image: your-java-app-image
        volumeMounts:
        - name: agent-volume
          mountPath: /dd-java-agent.jar
          subPath: dd-java-agent.jar
        command: ["java"]
        args: ["-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"]

Inicia tu aplicación Java con App and API Protection activado mediante variables de entorno:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-java-app
spec:
  template:
    spec:
      containers:
      - name: your-java-app
        image: your-java-app-image
        volumeMounts:
        - name: agent-volume
          mountPath: /dd-java-agent.jar
          subPath: dd-java-agent.jar
        env:
        - name: DD_APPSEC_ENABLED
          value: "true"
        - name: DD_APM_TRACING_ENABLED
          value: "false"
        - name: DD_SERVICE
          value: "<MY_SERVICE>"
        - name: DD_ENV
          value: "<MY_ENV>"
        command: ["java"]
        args: ["-javaagent:/dd-java-agent.jar", "-jar", "/app.jar"]

3. Ejecutar tu aplicación

Aplica tu despliegue actualizado:

kubectl apply -f your-deployment.yaml

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 resolución de problemas de App and API Protection en Java.

Referencias adicionales