Locale non significa isolato
Un server di inferenza locale esegue il modello su un computer sotto il tuo controllo, ma può accettare richieste da altri dispositivi se il processo è in ascolto su un’interfaccia di rete raggiungibile e le regole del computer consentono le connessioni. La posizione del modello, da sola, non determina chi possa usare l’API né quali operazioni possa eseguire.
Prima di condividerlo, definisci lo scopo e i limiti di accesso: lo userà soltanto il computer che ospita il servizio, alcuni client specifici della LAN oppure utenti remoti? Ogni ampliamento cambia i sistemi che possono inviare dati e ricevere risposte. Se non riesci a identificare e verificare questi limiti, mantieni il servizio accessibile solo dal computer oppure non abilitarlo.
Traccia il percorso della richiesta
Una richiesta passa di norma dal client alla rete, poi al processo che espone l’API e infine al modello caricato. Può attraversare anche un reverse proxy o un’interfaccia web. Ogni componente introduce configurazioni che possono influire sull’accesso: per esempio, il client memorizza le credenziali, il firewall filtra le connessioni e il runtime gestisce l’endpoint.
Prima di modificare la configurazione, fai un inventario: quale computer ospita il servizio, quale processo lo esegue, quali porte utilizza, quali client devono accedervi e se sono presenti componenti intermedi. Annota anche chi può modificare questi controlli. L’inferenza condivisa introduce un percorso di rete e attività operative che non esistono nello stesso modo quando l’applicazione esegue il modello sul dispositivo stesso.
Mappa minima di una richiesta
- 01Client: identifica il computer e l’applicazione che invieranno le richieste.
- 02Rete: delimita interfacce, segmenti e percorsi che possono raggiungere l’host.
- 03Servizio: verifica processo, endpoint, porte e autenticazione.
- 04Modello e dati: stabilisci quali input, output e log gestisce il servizio.
- 05Amministrazione: identifica chi può modificare la configurazione o le credenziali.
Scegli l’ambito di accesso prima di configurare
Se devi soltanto provare il servizio sullo stesso computer, non estenderne l’accesso alla LAN per comodità. Un indirizzo di loopback, come 127.0.0.1 in IPv4 o ::1 in IPv6, limita la connessione all’host per quel protocollo e quella configurazione; verifica comunque quali indirizzi utilizza davvero il processo. Un’interfaccia di rete specifica o un indirizzo wildcard può consentire ad altri computer di tentare la connessione.
Per condividere il servizio su una LAN, limita l’accesso alle interfacce, alle reti e ai client necessari, se il runtime e l’ambiente lo consentono. Non confondere il collegamento a una rete privata con la fiducia accordata a ogni dispositivo connesso. Per l’accesso remoto, rivedi il progetto: servono controlli adeguati all’intero percorso, protezione del traffico e la decisione di non pubblicare direttamente su Internet un endpoint di sviluppo.
Matrice decisionale iniziale
| Esigenza | Decisione prudente | Condizione per procedere |
|---|---|---|
| Uso sullo stesso computer | Mantieni il servizio in ascolto su loopback | Verifica che non sia in ascolto anche su interfacce esterne. |
| Uso da client nella LAN | Limita l’accesso alle interfacce, alle reti e ai client necessari | Esegui test da un client autorizzato e da uno non autorizzato. |
| Uso remoto o da Internet | Non esporre direttamente un endpoint di sviluppo | Progetta e verifica controlli aggiuntivi per l’intero percorso. |
| Indirizzo di ascolto sconosciuto o limiti non verificabili | Non abilitare l’accesso di rete | Chiarisci la configurazione ed esegui i test prima della distribuzione. |
Verifica la configurazione effettiva
Non dare per scontato che un runtime sia in ascolto solo sul computer locale o che la configurazione iniziale includa l’autenticazione. I valori dipendono dal prodotto, dalla versione e dai parametri di avvio. Consulta la documentazione aggiornata del runtime scelto e verifica il risultato sul sistema host: quali indirizzi e interfacce sono in ascolto, quali porte sono aperte e quale processo le gestisce.
Controlla anche come il servizio tratta le richieste senza credenziali, quelle con credenziali errate e le operazioni non consentite. Un’API compatibile con un formato noto non garantisce che implementi gli stessi meccanismi di autenticazione o autorizzazione di un altro prodotto. Se il runtime non offre controlli sufficienti, non presumere che una chiave fittizia o un’intestazione inviata dal client proteggano l’endpoint.
Applica controlli su più livelli
Il primo livello consiste nel limitare le interfacce su cui il servizio è in ascolto: usa loopback quando non serve l’accesso remoto, oppure un’interfaccia specifica quando la LAN lo richiede e lo strumento lo consente. Configura poi il sistema operativo o il firewall affinché ammettano soltanto le connessioni previste. Le regole devono corrispondere alla topologia effettiva, non all’ipotesi che l’intera rete locale sia sicura.
Aggiungi autenticazione e autorizzazione quando sono disponibili e necessarie. Proteggi le credenziali, evita di inserirle nel codice sorgente o in file accessibili a utenti non autorizzati e verifica quali permessi concedono. Se introduci un reverse proxy, controlla come termina e protegge il traffico, come identifica i client e se il servizio originario è ancora raggiungibile tramite un altro percorso. Non usare il proxy come sostituto della chiusura o della limitazione dell’accesso diretto.
Esegui test da due prospettive
Un test dal client previsto conferma che quel percorso funziona, ma non rivela chi altro possa raggiungere l’endpoint. Esegui un test da un client autorizzato e un altro da un dispositivo che non dovrebbe avere accesso. Verifica il risultato effettivo, non soltanto la visualizzazione di un errore nell’applicazione: una connessione rifiutata, un’autenticazione non riuscita e un’operazione non autorizzata non sono necessariamente la stessa cosa.
Annota la data, la versione del runtime, il sistema operativo, il computer di origine, la rete, il metodo di test e il risultato. Ripeti le verifiche dopo modifiche rilevanti al runtime, al firewall, al proxy, al router o alla topologia. Un test limitato a una determinata LAN non dimostra che l’endpoint sia irraggiungibile da qualsiasi altra rete.
Matrice dei test di accesso
| Test | Risultato atteso | Cosa registrare |
|---|---|---|
| Client autorizzato con credenziali valide | Accesso limitato alle sole funzioni previste | Origine, metodo, ambito e risposta. |
| Client autorizzato senza credenziali | Richiesta rifiutata se l’autenticazione è obbligatoria | Codice o comportamento osservato. |
| Client con credenziali non valide | Accesso rifiutato | Comportamento ed evidenze disponibili. |
| Client che non dovrebbe avere accesso | Impossibilità di raggiungere il servizio o di superarne i controlli | Rete di origine, percorso e risultato. |
| Client autorizzato che tenta un’operazione non consentita | Operazione negata se è prevista un’autorizzazione per funzione | Operazione testata e risultato. |
Log, modifiche e manutenzione
Decidi quali informazioni devono essere salvate dal runtime o dal proxy e chi può consultare i log. Potrebbero contenere dati delle richieste o delle risposte, identificativi dei client, errori o altre informazioni sensibili; verifica la documentazione e la configurazione effettiva prima di conservarli o condividerli. I log aiutano a indagare sugli accessi imprevisti, ma la loro semplice esistenza non dimostra che l’accesso sia controllato.
Definisci chi può modificare le regole di rete, le opzioni del runtime e le credenziali. Aggiorna il runtime e le relative dipendenze seguendo le istruzioni del fornitore e ripeti i test di accesso dopo ogni aggiornamento. Se rilevi connessioni impreviste, sospendi l’accesso condiviso, verifica i percorsi di rete e le credenziali e conserva le informazioni diagnostiche necessarie in conformità alle tue policy.
Procedura di revisione
- 01Documenta lo scopo, i client ammessi e il responsabile del servizio.
- 02Verifica indirizzi di ascolto, porte, autenticazione, autorizzazione e regole di rete.
- 03Annota quali informazioni conservano il runtime e il proxy e chi può consultarle.
- 04Aggiorna i componenti secondo una procedura definita e verifica le modifiche alla configurazione.
- 05Ripeti i test di accesso e conserva i risultati.
- 06In caso di accesso imprevisto, limita o interrompi il servizio durante le verifiche.
Quando mantenere, condividere o interrompere
Mantieni il servizio accessibile solo dal computer stesso se ti serve soltanto un uso locale, se non conosci con certezza le interfacce di ascolto o se non puoi verificare l’esposizione da un altro dispositivo. La condivisione su una LAN può essere ragionevole quando hai delimitato client e reti, applicato controlli compatibili con il runtime e verificato sia gli accessi consentiti sia quelli negati.
Non abilitare l’accesso se non riesci a limitare chi raggiunge il servizio, se le credenziali non sono protette, se non sai quali informazioni vengono registrate o se non puoi osservare e verificare le modifiche. Considera l’accesso remoto come una distribuzione distinta: richiede una revisione specifica di tutti i componenti e percorsi coinvolti, non il semplice ampliamento di una regola di rete.
Decisione di distribuzione
| Esito della revisione | Decisione |
|---|---|
| Ascolto e limiti verificati; necessario solo l’uso locale | Mantieni il servizio sul computer. |
| Accesso LAN necessario; ambito limitato e test completati | Condividilo con i client previsti e sottoponilo a verifiche periodiche. |
| Autenticazione, restrizioni di rete o test insufficienti | Non abilitare l’accesso condiviso. |
| È necessario l’accesso remoto | Progetta controlli specifici e verificali prima di accettare connessioni. |
Cosa dimostra e cosa non dimostra questa guida
Una connessione riuscita da un client autorizzato e non riuscita da un client di test non certifica che tutti i percorsi siano protetti. Il risultato dipende dalla configurazione, dalle versioni e dalla topologia esaminate. Inoltre, non dimostra che input, output o dati diagnostici rimangano entro un perimetro di privacy: per verificarlo occorre esaminare separatamente il traffico in uscita e il comportamento di ogni componente.
Il controllo degli accessi riguarda chi può raggiungere il servizio e cosa può fare entro i limiti stabiliti. La privacy dei dati e il traffico in uscita sono questioni correlate, ma distinte. Non dedurre la sicurezza complessiva o la piena tutela della privacy dal fatto che il modello sia eseguito in locale o dall’esito di un singolo test.
Questioni aperte
- I controlli, i valori predefiniti e i metodi di configurazione variano in base al runtime, alla versione e al sistema operativo; la documentazione disponibile non consente di prescrivere passaggi universali.
- Per questa guida non sono specificati una topologia di rete, un runtime concreto o una versione sottoposta a test; ogni distribuzione deve documentare e ripetere le proprie verifiche.
- I test da un client autorizzato e da uno non autorizzato non dimostrano che tutte le interfacce e i percorsi di rete siano protetti.
- Dall’accessibilità dell’API non è possibile dedurre se il runtime, il modello o i relativi componenti generino traffico in uscita né quali dati conservino i log.
Continua a esplorare
Fonti consultate
Correzioni e trasparenza
Se trovi un dato errato o non aggiornato, inviaci la pagina e la fonte da verificare.
Proponi una correzione