Conformité de Datadog à la norme FIPS
Le proxy FIPS de l'Agent Datadog est disponible uniquement pour la région US1-FED.
Le proxy FIPS de l’Agent Datadog permet de garantir l’utilisation d’un chiffrement conforme à la norme FIPS lorsque l’Agent Datadog communique avec Datadog.
Le proxy FIPS de l’Agent Datadog est un composant distribué séparément que vous déployez sur le même host que l’Agent Datadog. Le proxy fait office d’intermédiaire entre l’Agent et l’admission Datadog. L’Agent communique avec le proxy FIPS de l’Agent Datadog, qui chiffre les charges utiles au moyen d’une cryptographie validée par la norme FIPS 140-2 et transmet les charges utiles à Datadog.
La conformité du proxy FIPS de l’Agent Datadog repose sur son utilisation du certificat nº 4282 du module cryptographique validé par la norme FIPS 140-2. Consultez la stratégie de sécurité associée pour en savoir plus sur les restrictions et environnements d’exploitation validés.
Il vous incombe de veiller à la conformité de l’environnement d’exploitation avec la stratégie de sécurité et les directives générales de la norme FIPS.
Plateformes prises en charge (64 bits, x86 uniquement) :
| |
---|
Serveurs physiques et machines virtuelles | RHEL >= 7 Debian >= 8 Ubuntu >= 14.04 |
Cloud et conteneur | Amazon ECS AWS EKS (Helm) |
Remarque : l’architecture arm64 est disponible en version bêta.
Produits pris en charge (Agent 7.45 ou version ultérieure) :
- Métriques
- Logs
- Traces APM
- Profils APM
- Télémétrie d’instrumentation
- Processus
- Orchestrator Explorer
- Runtime Security
Le proxy FIPS de l’Agent Datadog ne prend pas en charge ce qui suit :
- La surveillance sans serveur
- La communication entre l’Agent de cluster et les Agents de nœud
- Les intégrations de l’Agent
- Les communications sortantes vers tout environnement autre que GovCloud
Prérequis
- Plage de ports TCP disponible : 9803 à 9818
- Agent Datadog 7.41 ou version ultérieure
Installer l’Agent avec le proxy FIPS
Installer l’Agent sur un nouveau host
Pour installer l’Agent Datadog avec le proxy FIPS de l’Agent Datadog, ajoutez DD_FIPS_MODE=1
aux instructions de l’installation en une seule étape figurant sur la page Intégration de l’Agent Datadog. Par exemple :
DD_API_KEY=<DD_API_KEY> \
DD_SITE="ddog-gov.com" \
DD_FIPS_MODE=1 \
bash -c "$(curl -L \
https://install.datadoghq.com/scripts/install_script_agent7.sh)"
Définissez la variable d’environnement DD_FIPS_MODE
pour installer le package FIPS avec l’Agent et configurer ce dernier de sorte qu’il utilise le proxy. Aucune autre étape de configuration n’est requise si vous utilisez cette méthode. Nous vous conseillons toutefois de vérifier l’installation.
Ajouter le proxy FIPS de l’Agent Datadog à un Agent existant
Suivez les étapes ci-dessous pour ajouter le proxy FIPS de l’Agent Datadog à l’installation d’un Agent existant.
Installer le package du proxy FIPS de l’Agent Datadog
Exécutez les commandes suivantes pour installer le proxy FIPS de l’Agent Datadog :
Debian :
apt-get update && apt-get install datadog-fips-proxy
RHEL et Fedora :
yum makecache && yum install datadog-fips-proxy
SLES :
zypper refresh datadog && zypper install datadog-fips-proxy
La première fois que vous effectuerez une mise à niveau, copiez l’exemple de fichier de configuration et collez-le à l’emplacement adéquat, puis redémarrez le proxy. Vous n’aurez plus besoin de copier et coller ce fichier de configuration lors des mises à niveau ultérieures, sauf en cas de modifications majeures au niveau de la configuration du proxy en amont :
sudo cp /etc/datadog-fips-proxy/datadog-fips-proxy.cfg.example \
/etc/datadog-fips-proxy/datadog-fips-proxy.cfg
sudo chown dd-agent:dd-agent \
/etc/datadog-fips-proxy/datadog-fips-proxy.cfg
sudo chmod 640 /etc/datadog-fips-proxy/datadog-fips-proxy.cfg
sudo systemctl restart datadog-fips-proxy
Le package du proxy FIPS de l’Agent Datadog est préconfiguré pour être utilisé avec le centre de données US1-FED. Si vous mettez à niveau un Agent Datadog existant, vous devez configurer l’Agent de sorte qu’il utilise le proxy.
Pour ce faire, définissez fips.enabled
sur true
et fips.https
sur false
dans le fichier de configuration de l’Agent :
fips:
enabled: true
https: false
Le paramètre fips
est disponible dans l’Agent 7.41 et les versions ultérieures. Lorsque ce paramètre est activé, l’Agent Datadog Agent redirige toutes ses communications vers le proxy FIPS de l’Agent Datadog pour les produits pris en charge. Les options d’URL personnalisées telles que dd_url
sont ignorées.
L’option https
est définie sur false
, car l’Agent utilise le protocole HTTP pour communiquer avec le proxy. Le proxy FIPS de l’Agent Datadog s’exécute sur le même host que l’Agent et dépend donc de la sécurité de ce host pour la protection des communications.
La sécurité du host et le renforcement des mesures de sécurité relèvent de votre responsabilité.
Le paramètre fips.enabled
prend la valeur false
par défaut dans l'Agent. Il doit être défini sur true
pour veiller à ce que toutes les communications passent par le proxy FIPS de l'Agent Datadog.
Si le paramètre fips.enabled
n'est pas défini sur true
, l'Agent n'est pas conforme à la norme FIPS.
Vérifier votre installation
Vérifiez que les métriques, traces et logs s’affichent correctement dans l’application.
Pour les métriques, exécutez la commande de diagnostic de connectivité et vérifiez qu’aucun check n’a échoué :
sudo -u dd-agent datadog-agent diagnose --include connectivity-datadog-core-endpoints
# Pour l'Agent 7.48 et les versions antérieures, exécutez la commande suivante :
# sudo -u dd-agent datadog-agent diagnose datadog-connectivity
Si l’application n’affiche pas vos métriques, traces ou logs, consultez la section Dépannage
Afficher les logs
sudo journalctl -u datadog-fips-proxy
Configuration des logs journald
Si vous utilisez Log Management et souhaitez envoyer les logs du proxy FIPS de l’Agent Datadog vers Datadog, configurez l’Agent Datadog de manière à ce qu’il lise les logs depuis journald.
Dans le fichier de configuration de l’Agent, définissez logs_enabled
sur true
pour activer l’Agent de logs. Dans le répertoire de configuration, créez un fichier fips_proxy.d/conf.yaml
et ajoutez ce qui suit :
logs:
- type: journald
source: datadog-fips-proxy
include_units:
- datadog-fips-proxy.service
Assurez-vous que l’utilisateur dd-agent
se trouve dans le groupe systemd-journal
. Pour en savoir plus, consultez la documentation relative à l’intégration journald.
Redémarrez l’Agent.
Définissez les valeurs suivantes dans votre fichier values.yaml
:
fips:
enabled: true
use_https: false
Le paramètre fips
est disponible dans l’Agent 7.41 et les versions ultérieures. S’il est activé, l’Agent Datadog redirige toutes ses communications vers le proxy FIPS de l’Agent Datadog pour les produits pris en charge. Ce paramètre ignore les options d’URL personnalisées, telles que dd_url
.
L’option use_https
est définie sur false
, car l’Agent utilise le protocole HTTP pour communiquer avec le proxy. Le proxy FIPS de l’Agent Datadog s’exécute sur le même host que l’Agent Datadog et dépend donc de la sécurité de cet host pour la protection de la communication.
La sécurité de l’host et le renforcement des mesures de sécurité relèvent de votre responsabilité.
Le paramètre fips.enabled
prend la valeur false
par défaut dans l'Agent. Il doit être défini sur true
pour veiller à ce que toutes les communications passent par le proxy FIPS de l'Agent Datadog.
Si le paramètre fips.enabled
n'est pas défini sur true
, l'Agent n'est pas conforme à la norme FIPS.
Dépanner l’installation sur un host ou une VM
Pour dépanner le proxy FIPS de l’Agent Datadog, vérifiez ce qui suit :
- L’Agent Datadog et le proxy FIPS de l’Agent Datadog s’exécutent.
- L’Agent Datadog peut communiquer avec le proxy FIPS de l’Agent Datadog.
- Le proxy FIPS de l’Agent Datadog peut communiquer avec les endpoints d’admission de Datadog.
Vérifier le statut du proxy
Pour obtenir des informations concernant l’état du proxy FIPS de l’Agent Datadog, exécutez la commande suivante :
sudo systemctl status datadog-fips-proxy
Si le proxy est en cours d’exécution, vous devriez obtenir un résultat similaire à ce qui suit :
- datadog-fips-proxy.service - Datadog FIPS Proxy
Loaded: loaded
(/lib/systemd/system/datadog-fips-proxy.service;
enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-07-19 16:21:15 UTC; 1min 6s ago
Si le statut du proxy indique inactive (dead)
, lancez le proxy FIPS de l’Agent Datadog :
sudo systemctl start datadog-fips-proxy
Si le statut du proxy indique failed
, il se peut qu’une erreur empêche le lancement du proxy FIPS de l’Agent Datadog. Exécutez la commande suivante et analysez les logs du proxy pour voir s’ils comportent des erreurs :
sudo journalctl -u datadog-fips-proxy --no-pager
Échec de liaison d’un socket par le proxy
Si les logs du proxy comportent une erreur de type bind socket
, cela signifie que le proxy tente d’utiliser un port qui est déjà utilisé sur l’host. Le proxy FIPS de l’Agent Datadog utilise une plage de ports TCP comprise entre 9803 et 9818. Les ports compris dans cette plage doivent être disponibles sur l’host et ne peuvent pas être utilisés par d’autres services.
Dans l’exemple qui suit, le proxy FIPS de l’Agent Datadog n’est pas en mesure de lier un socket sur le port 9804
, car ce dernier est déjà utilisé :
[ALERT] (4518) : Starting frontend metrics-forwarder: cannot bind socket (Address already in use) [0.0.0.0:9804]
[ALERT] (4518) : [/opt/datadog-fips-proxy/embedded/sbin/haproxy.main()] Some protocols failed to start their listeners! Exiting.
Échec de la connexion de l’Agent au proxy
Pour rechercher des problèmes de réseau, consultez les logs dans /var/log/datadog/agent.log
, ou exécutez la commande suivante :
datadog-agent diagnose --include connectivity-datadog-core-endpoints
# Pour l'Agent 7.48 et les versions antérieures, exécutez la commande suivante :
# datadog-agent diagnose datadog-connectivity
Recherchez des erreurs telles que :
connect: connection refused, context deadline exceeded (Client.Timeout exceeded while awaiting headers), or connection reset by peer
- Suivez les étapes décrites dans la section Vérifier le statut du proxy pour vérifier que le proxy FIPS de l’Agent Datadog est bien en cours d’exécution.
- Vérifiez que la plage de ports du proxy correspond à celle de l’Agent.
Si le proxy s’exécute et que la plage de ports est correcte, il se peut qu’un pare-feu local sur la machine empêche l’Agent d’accéder au proxy. Configurez votre pare-feu afin qu’il autorise les connexions aux ports TCP compris entre 9804 et 9818.
Vous pouvez utiliser curl
pour vérifier que le proxy est accessible :
curl http://localhost:9804/
Pour obtenir de l’aide, consultez la section Dépannage de l’Agent.
Le proxy FIPS de l’Agent Datadog ne parvient pas à se connecter à l’endpoint d’admission Datadog
En cas d’erreurs HTTP telles que 502
ou 503
, ou si le proxy renvoie une réponse vide, il se peut que le proxy FIPS de l’Agent Datadog ne puisse pas transmettre le trafic vers le backend Datadog.
Vérifiez les logs du proxy FIPS de l’Agent Datadog avec la commande suivante :
sudo journalctl -u datadog-fips-proxy --no-pager
Recherchez des erreurs dans les logs, comme :
haproxy[292759]: [WARNING] (292759) : Server
datadog-api/mothership3 is DOWN, reason: Layer4 timeout, vcheck duration: 2000ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
[ALERT] (292759) : backend 'datadog-api' has no server available!
ou
haproxy[1808]: [WARNING] (1808) : Server
datadog-metrics/mothership2 is DOWN, reason: Layer4
connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0
sessions active, 0 requeued, 0 remaining in queue.
haproxy[1808]: [ALERT] (1808) : backend 'datadog-metrics' has no server available!
Ces erreurs indiquent que le proxy FIPS de l’Agent Datadog ne parvient pas à contacter les systèmes backend, probablement parce qu’il est bloqué par un pare-feu ou en raison d’un autre problème de réseau. Le proxy FIPS de l’Agent Datadog doit pouvoir accéder aux endpoints d’admission Datadog via Internet. Trouvez les adresses IP pour ces endpoints via l’API.
Pour en savoir plus sur les connexions sortantes provenant de l’Agent, consultez le guide Trafic réseau.
Si vous n’avez toujours pas résolu votre problème, contactez l’assistance Datadog.
Questions fréquentes
1. L’Agent Datadog et le proxy FIPS de l’Agent Datadog doivent-ils être sur le même host ?
Oui, vous ne serez plus conforme à la norme FIPS si le proxy FIPS de l’Agent Datadog et l’Agent Datadog ne sont pas sur le même réseau.
Vous ne maintiendrez pas non plus la conformité si l’option fips.enabled
n’est pas définie sur true
dans datadog.yaml
.
2. Qui est tenu de renforcer la sécurité de l’host ?
En tant que client Datadog, vous êtes responsable de la sécurité du host et de la mise en œuvre de mesures renforcées.
3. Les images du proxy FIPS de l’Agent Datadog font-elles l’objet d’une sécurité renforcée ?
Bien que la sécurité ait fait l’objet d’une attention toute particulière lors la création des images fournies, ces dernières n’ont pas été évaluées sur la base des recommandations des benchmarks CIS ou des normes DISA STIG.
4. Le proxy FIPS sécurise-t-il toutes les communications entrantes et sortantes de l’Agent ?
Le proxy FIPS de l’Agent Datadog sécurise uniquement les communications provenant de l’Agent et ciblant les endpoints de l’API d’admission Datadog. Autrement dit, cette solution ne peut pas assurer la conformité des autres formes de communication réceptionnées par l’Agent ou provenant de celui-ci à la norme FIPS.
5. Le proxy FIPS sécurise-t-il toutes les communications entre l’Agent de cluster et les Agents de nœud ?
Le proxy FIPS de l’Agent Datadog sécurise uniquement les communications provenant de l’Agent de cluster et ciblant les endpoints de l’API d’admission Datadog. Autrement dit, cette solution ne peut pas assurer la conformité des autres formes de communication réceptionnées par l’Agent de cluster ou provenant de celui-ci à la norme FIPS.
6. La conformité à la norme FIPS est-elle maintenue en cas de modification du build ou de la configuration du proxy FIPS de l’Agent Datadog pour qu’il réponde à nos besoins en matière de déploiement ou de test ?
Bien qu’il soit possible, d’un point de vue purement technique, de modifier ou de reconfigurer le proxy FIPS de l’Agent Datadog, Datadog ne peut garantir la conformité à la norme FIPS si le proxy FIPS de l’Agent Datadog n’est pas utilisé tel qu’expliqué dans la documentation.
7. Bien que je n’aie pas suivi toutes les étapes d’installation décrites ci-dessus, mon Agent Datadog envoie correctement les données. Ma configuration est-elle conforme à la norme FIPS ?
Datadog ne peut garantir la conformité à la norme FIPS si le proxy FIPS de l’Agent Datadog n’est pas utilisé tel qu’expliqué dans la documentation.
Pour que votre configuration soit opérationnelle, vous devez d’une part définir l’option fips.enabled
pour que votre Agent Datadog puisse communiquer avec le proxy FIPS de l’Agent Datadog, et d’autre part faire en sorte que le proxy FIPS de l’Agent Datadog s’exécute.
8. Les numéros de version de l’Agent Datadog sont-ils liés aux numéros de version du proxy FIPS de l’Agent Datadog ?
Non, les numéros de version du proxy FIPS de l’Agent Datadog sont distincts de ceux de l’Agent Datadog. Utilisez les versions les plus récentes de l’Agent Datadog et du proxy FIPS de l’Agent Datadog pour que tous les produits disponibles soient pris en charge par l’Agent Datadog et le proxy FIPS de l’Agent Datadog.
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: