Activation de l'AAP pour Gateway API dans Kubernetes
Ce produit n'est pas pris en charge par le
site Datadog que vous avez sélectionné. (
).
App and API Protection est en préversion sur le site Datadog Government US1-FED.
L'AAP pour Gateway API est expérimental. Veuillez suivre les instructions ci-dessous pour l'essayer.
Présentation
Le Datadog AppSec Gateway API Request Mirror améliore la sécurité des applications en tirant parti de la fonctionnalité RequestMirror dans les Kubernetes Gateway APIs pour dupliquer le trafic vers un endpoint Datadog App & API Protection. Cela permet la détection et l’analyse en temps réel des attaques potentielles au niveau de l’application, la découverte des endpoints d’API, et plus encore, le tout sans impacter le flux de requêtes principal.
Prérequis
Activation de la détection des menaces
Installation
Déployez l’Agent Datadog dans votre cluster Kubernetes en suivant le guide d’installation Kubernetes.
Configurez l’Agent Datadog pour prendre en charge les charges utiles AppSec entrantes en utilisant l’APM comme transport.
Déployez l’AppSec Gateway API Request Mirror dans l’espace de nom de votre choix (par ex. datadog) ainsi que son service :
kubectl apply -f https://raw.githubusercontent.com/DataDog/dd-trace-go/refs/heads/main/contrib/k8s.io/gateway-api/cmd/request-mirror/deployment.yml
Vérifiez le déploiement :
kubectl get pods -l app=request-mirror
Appliquez un correctif à vos ressources Gateway pour autoriser l’accès à l’espace de nom avec le déploiement :
git clone https://github.com/DataDog/dd-trace-go.git
cd dd-trace-go
go run ./contrib/k8s.io/gateway-api/cmd/patch-gateways
Utilisez l’indicateur -help pour voir les options de personnalisation du comportement de correction.
Appliquez un correctif à vos ressources HTTPRoute pour rediriger le trafic vers le service :
go run ./contrib/k8s.io/gateway-api/cmd/patch-httproutes
Cette commande ajoute un filtre RequestMirror à toutes les ressources HTTPRoute dans tous les espaces de nom. Utilisez l’indicateur -help pour les options de configuration.
Remarque : L’exécution régulière de cette commande garantit que toutes les ressources HTTPRoute nouvellement créées incluent automatiquement le filtre RequestMirror. Envisagez d’ajouter le correctif résultant à votre pipeline CI/CD où les ressources HTTPRoute sont modifiées.
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.
Configuration
Variables d’environnement
Le déploiement du Request Mirror de Gateway API peut être configuré à l’aide des variables d’environnement suivantes :
| Variable d’environnement | Valeur par défaut | Description |
|---|
DD_REQUEST_MIRROR_LISTEN_ADDR | :8080 | Adresse et port où le service de mise en miroir des requêtes écoute les requêtes mises en miroir entrantes |
DD_REQUEST_MIRROR_HEALTHCHECK_ADDR | :8081 | Adresse et port où le endpoint de vérification de l’état est servi |
Configurez l’Agent Datadog pour recevoir les traces de l’intégration en utilisant les variables d’environnement suivantes :
| Variable d’environnement | Valeur par défaut | Description |
|---|
DD_AGENT_HOST | localhost | Nom de host où votre Agent Datadog est en cours d’exécution |
DD_TRACE_AGENT_PORT | 8126 | Port de l’Agent Datadog pour la collecte des traces |
Exemple de déploiement
Le déploiement par défaut crée un service qui écoute sur le port 8080 pour les requêtes mises en miroir et expose un endpoint de vérification de l’état sur le port 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
Intégration Datadog Go Tracer et Gateway API
L'intégration AAP Gateway API est construite sur le Datadog Go Tracer. Elle suit le même processus de publication que le tracer, et ses images Docker sont marquées avec la version correspondante du tracer.
L’intégration Gateway API utilise le Datadog Go Tracer et hérite de toutes les variables d’environnement du tracer. Vous trouverez plus d’informations dans Configuration du SDK Go et Configuration de la bibliothèque AAP.
Activation du traçage APM
Par défaut, les traces de miroir de requête n’activeront pas le produit APM de Datadog. Si vous souhaitez utiliser la protection des applications et des API sans la fonctionnalité de traçage APM, il s’agit du comportement par défaut.
Pour activer le traçage APM, définissez la variable d’environnement DD_APM_TRACING_ENABLED=true dans le déploiement du miroir de requête.
Si vous souhaitez désactiver explicitement le traçage APM tout en utilisant la protection des applications et des API :
- Configurez votre déploiement avec la variable d’environnement
DD_APM_TRACING_ENABLED=false en plus de la variable d’environnement DD_APPSEC_ENABLED=true. - Cette configuration réduira la quantité de données APM envoyées à Datadog au minimum requis par les produits App and API Protection.
Pour plus de détails, consultez Protection autonome des applications et des API.
Limitations
L’intégration de Gateway API présente les limitations suivantes :
- Il ne peut pas accéder aux réponses HTTP
- Aucun blocage de requête ne peut être appliqué
- Seul le format JSON est pris en charge pour l’analyse des corps de requête HTTP.
Pour une analyse plus fine et d’autres fonctionnalités AAP, envisagez d’essayer d’autres intégrations AAP.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: