Comment partager un serveur d’IA local sans laisser son API ouverte
Imagen generada con gpt-image-2.5-sunburst para InferamaSource ↗
01

Local ne signifie pas isolé

Un serveur d’inférence local exécute le modèle sur un ordinateur que vous contrôlez. Pourtant, il peut recevoir des requêtes d’autres appareils si le processus écoute sur une interface réseau accessible et si les règles de la machine autorisent ces connexions. L’emplacement du modèle ne détermine pas à lui seul qui peut utiliser l’API ni quelles opérations sont possibles.

Avant de partager le service, définissez son objectif et les limites d’accès : sera-t-il utilisé uniquement depuis l’ordinateur hôte, par quelques clients précis d’un réseau local, ou par des utilisateurs distants ? Chaque extension modifie les systèmes susceptibles d’envoyer des données et de recevoir des réponses. Si vous ne pouvez pas identifier et vérifier ces limites, réservez le service à l’ordinateur hôte ou ne l’activez pas.

02

Cartographiez le cheminement d’une requête

Une requête passe généralement par le client, le réseau, le processus qui fournit l’API, puis le modèle chargé. Elle peut aussi traverser un proxy inverse ou une interface web. Chaque composant possède une configuration susceptible d’influer sur l’accès : le client peut stocker des identifiants, le pare-feu filtrer les connexions et le runtime prendre en charge le point de terminaison.

Avant de modifier la configuration, faites l’inventaire des éléments concernés : ordinateur hébergeant le service, processus qui l’exécute, ports utilisés, clients nécessitant un accès et éventuels composants intermédiaires. Notez également qui peut modifier ces contrôles. L’inférence partagée ajoute un chemin réseau et des opérations qui n’existent pas de la même manière lorsqu’une application exécute le modèle sur l’appareil lui-même.

Schéma minimal d’une requête

  1. 01Client : identifiez l’appareil et l’application qui enverront les requêtes.
  2. 02Réseau : délimitez les interfaces, segments et itinéraires pouvant atteindre l’hôte.
  3. 03Service : vérifiez le processus, le point de terminaison, les ports et l’authentification.
  4. 04Modèle et données : déterminez quelles entrées, sorties et informations de journalisation le service traite.
  5. 05Administration : identifiez les personnes autorisées à modifier la configuration ou les identifiants.
03

Définissez le périmètre d’accès avant la configuration

Si vous avez seulement besoin de tester le service sur le même ordinateur, ne l’ouvrez pas au réseau local par simple commodité. Une adresse de bouclage, comme 127.0.0.1 en IPv4 ou ::1 en IPv6, limite la connexion à l’hôte pour le protocole et la configuration concernés. Vérifiez malgré tout quelles adresses le processus utilise réellement. Une interface réseau précise ou une adresse générique peut permettre à d’autres appareils de tenter une connexion.

Pour partager le service sur un réseau local, limitez l’accès aux interfaces, réseaux et clients nécessaires, si le runtime et l’environnement le permettent. Ne confondez pas la connexion à un réseau privé avec la fiabilité de chaque appareil qui s’y trouve. Pour un accès distant, réévaluez l’architecture : ajoutez des contrôles adaptés au cheminement, protégez le trafic et évitez de publier directement sur Internet un point de terminaison de développement.

Matrice de décision initiale

BesoinDécision prudenteCondition préalable
Utilisation sur le même ordinateurMaintenir le service sur l’adresse de bouclageConfirmer qu’il n’écoute pas aussi sur des interfaces externes.
Utilisation par des clients du réseau localRestreindre l’accès aux interfaces, réseaux et clients nécessairesTester depuis un client autorisé et un client non autorisé.
Utilisation à distance ou depuis InternetNe pas exposer directement un point de terminaison de développementConcevoir et vérifier des contrôles supplémentaires sur l’ensemble du parcours.
Adresse d’écoute inconnue ou limites impossibles à testerNe pas activer l’accès réseauRésoudre les incertitudes de configuration et effectuer les tests avant le déploiement.
04

Vérifiez la configuration effective

Ne partez pas du principe qu’un runtime n’écoute que sur l’ordinateur hôte ou que sa configuration initiale inclut une authentification. Les valeurs dépendent du produit, de sa version et de ses paramètres d’exécution. Consultez la documentation à jour du runtime retenu, puis confirmez le résultat sur le système hôte : adresse et interfaces d’écoute, ports ouverts et processus qui les utilise.

Vérifiez aussi le traitement des requêtes sans identifiants, avec des identifiants incorrects et des opérations non autorisées. La compatibilité d’une API avec un format connu ne garantit pas qu’elle offre les mêmes fonctions d’authentification ou d’autorisation qu’un autre produit. Si le runtime ne fournit pas de contrôles suffisants, ne supposez pas qu’une clé fictive ou un en-tête envoyé par le client protège le point de terminaison.

05

Superposez les contrôles

La première mesure consiste à limiter les interfaces sur lesquelles le service écoute : utilisez l’adresse de bouclage si aucun accès distant n’est nécessaire, ou une interface précise si le réseau local l’exige et si l’outil le permet. Configurez ensuite le système d’exploitation ou le pare-feu pour n’autoriser que les connexions prévues. Les règles doivent correspondre à la topologie réelle, et non à l’hypothèse que l’ensemble du réseau local est sûr.

Ajoutez une authentification et des autorisations lorsqu’elles sont disponibles et nécessaires. Protégez les identifiants, évitez de les intégrer au code source ou à des fichiers accessibles à des utilisateurs non autorisés, et vérifiez les privilèges qu’ils accordent. Si vous ajoutez un proxy inverse, contrôlez la façon dont il termine et protège le trafic, identifie les clients, et assurez-vous que le service d’origine n’est pas accessible par un autre chemin. Ne comptez pas sur le proxy pour remplacer la fermeture ou la restriction de cet accès direct.

06

Testez depuis deux points de vue

Un test effectué depuis le client prévu confirme le bon fonctionnement de ce parcours, mais ne révèle pas quels autres appareils peuvent atteindre le point de terminaison. Effectuez un test depuis un client autorisé et un autre depuis un appareil qui ne doit pas y avoir accès. Vérifiez le résultat réel, et pas seulement l’affichage d’un message d’erreur : une connexion rejetée, un échec d’authentification et une opération non autorisée ne sont pas nécessairement la même chose.

Notez la date, la version du runtime, le système d’exploitation, l’appareil à l’origine de la requête, le réseau, la méthode de test et le résultat. Répétez les vérifications après toute modification importante du runtime, du pare-feu, du proxy, du routeur ou de la topologie. Un test réalisé sur un réseau local donné ne démontre pas que le point de terminaison est inaccessible depuis tous les autres réseaux.

Matrice des tests d’accès

TestRésultat attenduÉléments à consigner
Client autorisé avec des identifiants validesAccès limité aux fonctions prévuesOrigine, méthode, périmètre et réponse.
Client autorisé sans identifiantsRequête rejetée si l’authentification est obligatoireCode de réponse ou comportement observé.
Client avec des identifiants invalidesAccès refuséComportement constaté et éléments disponibles.
Client qui ne doit pas avoir accèsService inaccessible ou contrôles non franchisRéseau d’origine, itinéraire et résultat.
Client autorisé tentant une opération interditeOpération refusée si des autorisations par fonction existentOpération testée et résultat.
07

Journaux, modifications et maintenance

Déterminez quelles informations le runtime ou le proxy doit enregistrer et qui peut consulter ces journaux. Ils peuvent contenir des données de requêtes ou de réponses, des identifiants de clients, des erreurs ou d’autres informations sensibles. Consultez la documentation et vérifiez la configuration effective avant de les conserver ou de les partager. Les journaux facilitent l’analyse des accès inattendus, mais leur existence ne prouve pas que les accès sont maîtrisés.

Définissez qui peut modifier les règles réseau, les options du runtime et les identifiants. Maintenez le runtime et ses dépendances à jour selon les instructions de leur fournisseur, puis retestez les accès après chaque mise à jour. Si vous détectez des connexions inattendues, suspendez l’accès partagé, examinez les itinéraires réseau et les identifiants, et conservez les informations de diagnostic nécessaires conformément à vos règles.

Routine de vérification

  1. 01Documentez l’objectif du service, les clients autorisés et la personne responsable.
  2. 02Vérifiez l’écoute, les ports, l’authentification, les autorisations et les règles réseau.
  3. 03Notez les informations conservées par le runtime et le proxy, ainsi que les personnes qui peuvent les consulter.
  4. 04Mettez à jour les composants selon un processus défini et examinez les changements de configuration.
  5. 05Répétez les tests d’accès et conservez leurs résultats.
  6. 06En cas d’accès inattendu, limitez ou interrompez le service pendant l’enquête.
08

Quand maintenir le service, le partager ou l’arrêter

Laissez le service accessible uniquement depuis l’ordinateur hôte si vous n’en avez besoin que localement, si les interfaces d’écoute restent incertaines ou si vous ne pouvez pas tester son exposition depuis un autre appareil. Un partage sur le réseau local peut être envisageable si les clients et réseaux sont clairement définis, si des contrôles compatibles avec le runtime sont en place et si les accès autorisés comme refusés ont été vérifiés.

N’activez pas l’accès si vous ne pouvez pas limiter les personnes qui atteignent le service, protéger les identifiants, déterminer ce que le système consigne ou observer et examiner les modifications. Pour un accès distant, considérez qu’il s’agit d’un déploiement distinct : chaque composant et itinéraire doit faire l’objet d’une vérification spécifique. Il ne suffit pas d’élargir une règle réseau.

Décision de déploiement

État de la vérificationDécision
Écoute et limites confirmées ; usage local uniquementMaintenir le service sur l’ordinateur hôte.
Accès au réseau local nécessaire ; périmètre restreint et tests effectuésPartager avec les clients prévus et contrôler régulièrement.
Authentification, restriction réseau ou tests insuffisantsNe pas activer l’accès partagé.
Accès distant nécessaireConcevoir des contrôles adaptés et les vérifier avant d’accepter des connexions.
09

Ce que ce guide permet — ou non — de démontrer

Le fait qu’une connexion fonctionne depuis un client autorisé et échoue depuis un client de test ne certifie pas que toutes les routes sont protégées. Le résultat dépend de la configuration, des versions et de la topologie examinées. Il ne prouve pas non plus que les entrées, les sorties ou les diagnostics restent dans un périmètre de confidentialité donné : pour le savoir, il faut examiner séparément le trafic sortant et le comportement de chaque composant.

Le contrôle d’accès porte sur les personnes qui peuvent atteindre le service et sur les actions possibles dans les limites définies. La confidentialité des données et le trafic sortant sont des questions liées, mais distinctes. Ne déduisez ni la sécurité générale ni la confidentialité totale du seul fait que le modèle s’exécute localement ou qu’un test ponctuel a réussi.

Questions ouvertes

  • Les contrôles, les valeurs par défaut et les méthodes de configuration varient selon le runtime, sa version et le système d’exploitation ; les éléments disponibles ne permettent pas de prescrire une procédure universelle.
  • Aucune topologie réseau, aucun runtime précis ni aucune version testée ne sont spécifiés ; chaque déploiement doit documenter et répéter ses propres vérifications.
  • Les tests réalisés depuis un client autorisé et un client non autorisé ne prouvent pas que toutes les interfaces et tous les itinéraires réseau sont protégés.
  • L’accessibilité de l’API ne permet pas de déduire si le runtime, le modèle ou leurs composants génèrent du trafic sortant, ni quelles informations leurs journaux conservent.
10

Poursuivre l’exploration

10

Sources consultées

03

Corrections et transparence

Si vous repérez une information incorrecte ou obsolète, envoyez-nous la page et la source à vérifier.

Proposer une correction