Habilitación de AAP para Gateway API en Kubernetes
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
App and API Protection se encuentra en versión preliminar en el sitio de Datadog Government US1-FED.
AAP para Gateway API es experimental. Siga las instrucciones a continuación para probarlo.
Descripción general
El Request Mirror de Datadog AppSec Gateway API mejora la seguridad de las aplicaciones al aprovechar la funcionalidad RequestMirror en las API de Gateway de Kubernetes para duplicar el tráfico a un punto de conexión de Datadog App & API Protection. Esto permite la detección y el análisis en tiempo real de posibles ataques a nivel de aplicación, el descubrimiento de puntos de conexión de API y más, todo sin afectar el flujo de solicitudes principal.
Requisitos previos
Habilitación de la detección de amenazas
Instalación
Implemente el Datadog Agent en su clúster de Kubernetes siguiendo la guía de instalación de Kubernetes.
Configure el Datadog Agent para admitir cargas útiles de AppSec entrantes utilizando APM como transporte.
Implemente el AppSec Gateway API Request Mirror en el espacio de nombres de su elección (por ejemplo, datadog) junto con su servicio:
kubectl apply -f https://raw.githubusercontent.com/DataDog/dd-trace-go/refs/heads/main/contrib/k8s.io/gateway-api/cmd/request-mirror/deployment.yml
Verifique la implementación:
kubectl get pods -l app=request-mirror
Aplique parches a sus recursos de Gateway para permitir el acceso al espacio de nombres con la implementación:
git clone https://github.com/DataDog/dd-trace-go.git
cd dd-trace-go
go run ./contrib/k8s.io/gateway-api/cmd/patch-gateways
Utilice la marca -help para ver las opciones de personalización del comportamiento de aplicación de parches.
Aplique parches a sus recursos HTTPRoute para redirigir el tráfico al servicio:
go run ./contrib/k8s.io/gateway-api/cmd/patch-httproutes
Este comando agrega un filtro RequestMirror a todos los HTTPRoute recursos en todos los espacios de nombres. Utilice la marca -help para las opciones de configuración.
Nota: Ejecutar este comando regularmente asegura que cualquier recurso HTTPRoute recién creado incluya automáticamente el filtro RequestMirror. Considere agregar el parche resultante a su pipeline de CI/CD donde HTTPRoute se modifiquen los recursos.
After this configuration is complete, the library collects security data from your application and sends it to the Agent. The Agent sends the data to Datadog, where out-of-the-box detection rules flag attacker techniques and potential misconfigurations so you can take steps to remediate.
To see App and API Protection threat detection in action, send known attack patterns to your application. For example, trigger the Security Scanner Detected rule by running a file that contains the following curl script:
for ((i=1;i<=250;i++));
do
# Target existing service's routes
curl https://your-application-url/existing-route -A dd-test-scanner-log;
# Target non existing service's routes
curl https://your-application-url/non-existing-route -A dd-test-scanner-log;
done
Note: The dd-test-scanner-log value is supported in the most recent releases.
A few minutes after you enable your application and send known attack patterns to it, threat information appears in the Application Signals Explorer and vulnerability information appears in the Vulnerabilities explorer.
Configuración
Variables de entorno
La implementación de AppSec Gateway API Request Mirror se puede configurar mediante las siguientes variables de entorno:
| Variable de entorno | Valor predeterminado | Descripción |
|---|
DD_REQUEST_MIRROR_LISTEN_ADDR | :8080 | Dirección y puerto donde el servicio de duplicación de solicitudes escucha las solicitudes duplicadas entrantes |
DD_REQUEST_MIRROR_HEALTHCHECK_ADDR | :8081 | Dirección y puerto donde se sirve el punto de conexión de verificación de estado |
Configure el Datadog Agent para recibir trazas de la integración mediante las siguientes variables de entorno:
| Variable de entorno | Valor predeterminado | Descripción |
|---|
DD_AGENT_HOST | localhost | Nombre de host donde se ejecuta su Datadog Agent |
DD_TRACE_AGENT_PORT | 8126 | Puerto del Datadog Agent para la recopilación de trazas |
Ejemplo de implementación
La implementación predeterminada crea un servicio que escucha en el puerto 8080 para las solicitudes duplicadas y expone un punto de conexión de verificación de estado en el puerto 8081:
apiVersion: apps/v1
kind: Deployment
metadata:
name: request-mirror
labels:
app.kubernetes.io/component: request-mirror
app.kubernetes.io/name: datadog
spec:
strategy:
type: RollingUpdate
selector:
matchLabels:
app: request-mirror
template:
metadata:
labels:
app: request-mirror
spec:
containers:
- name: request-mirror
image: ghcr.io/datadog/dd-trace-go/request-mirror:latest
ports:
- containerPort: 8080
name: http
livenessProbe:
httpGet:
path: /
port: 8081
readinessProbe:
httpGet:
path: /
port: 8081
env:
- name: DD_AGENT_HOST
value: "datadog-agent" # Adjust to your Agent service name
---
apiVersion: v1
kind: Service
metadata:
name: request-mirror
spec:
selector:
app: request-mirror
ports:
- name: http
port: 8080
targetPort: 8080
Integración de Datadog Go Tracer y Gateway API
La integración de AAP Gateway API se basa en el Datadog Go Tracer. Sigue el mismo proceso de lanzamiento que el rastreador, y sus imágenes de Docker están etiquetadas con la versión correspondiente del rastreador.
La integración de Gateway API utiliza el Datadog Go Tracer y hereda todas las variables de entorno del rastreador. Puede encontrar más información en Configuración del Go SDK y AAP Library Configuration.
Habilitación del rastreo de APM
De forma predeterminada, las trazas de reflejo de solicitudes no habilitarán el producto APM de Datadog. Si desea utilizar App and API Protection sin la funcionalidad de rastreo de APM, este es el comportamiento predeterminado.
Para habilitar el rastreo de APM, establezca la variable de entorno DD_APM_TRACING_ENABLED=true en la implementación de reflejos de solicitudes.
Si desea deshabilitar explícitamente el rastreo de APM mientras utiliza App and API Protection:
- Configure su implementación con la variable de entorno
DD_APM_TRACING_ENABLED=false además de la variable de entorno DD_APPSEC_ENABLED=true. - Esta configuración reducirá la cantidad de datos de APM enviados a Datadog al mínimo requerido por los productos App and API Protection.
Para obtener más detalles, consulte Standalone App and API Protection.
Limitaciones
La integración de Gateway API tiene las siguientes limitaciones:
- No puede acceder a las respuestas HTTP
- No se puede aplicar el bloqueo de solicitudes
- Solo se admite json para analizar los cuerpos de las solicitudes HTTP.
Para un análisis más detallado y otras funciones de AAP, considere probar otras integraciones de AAP.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: