Vai al contenuto
Menu della documentazione

Connessioni dirette

Collega direttamente i database cloud su TLS: quando usarla, protezioni di rete, allow-list e credenziali.

Una connessione diretta permette a Prynt Cloud di aprire da solo la connessione al tuo database, via Internet e sempre su TLS. È pensata per i database cloud gestiti che sono già raggiungibili da Internet in modo protetto. I database in una rete privata si collegano invece tramite il Prynt Gateway.

Quando usare una connessione diretta

Direttadatabase in cloud
Oracle o PostgreSQL gestiti in un cloud pubblico, con un nome DNS pubblico, TLS e regole di rete che controlli tu. Niente da installare.
Gatewayrete privata
Database on-premise, reti cloud private, VPN: il tipico ERP. Solo in uscita, credenziali sigillate per il gateway. Consigliato ogni volta che è possibile.

La modalità si sceglie per connessione, quindi la stessa sorgente dati può usare un gateway in un ambiente e una connessione diretta in un altro.

Configurare la connessione

Apri la sorgente dati, scegli Configura su un ambiente e seleziona Connessione diretta. Poi inserisci:

  • Host: il nome DNS pubblico del database. Gli indirizzi privati e locali sono rifiutati (vedi sotto).
  • Porta: la porta del listener. Sono ammesse 1521–1526, 2483 e 2484 per Oracle; 5432–5435 e 6432 per PostgreSQL.
  • Service name (Oracle) o Database (PostgreSQL), Utente e Password di un utente in sola lettura.
  • TLS e, in Avanzate, il timeout di connessione (predefinito 15 s), il timeout delle query dell'esploratore e dell'apertura della sessione (predefinito 30 s; i dataset hanno un timeout proprio) e il numero massimo di connessioni nel pool (predefinito 20).

Salva la connessione la salva e la prova subito (permesso sql.execute): vedi la latenza, la versione del server e l'utente effettivo, oppure l'errore, con gli avvisi su TLS e privilegi.

TLS

Le connessioni dirette devono usare TLS: una connessione con TLS disattivato viene rifiutata con DATA_SOURCE_TLS_REQUIRED. Scegli la modalità nella connessione:

verify-fullconsigliata
Cifrata; il certificato del server deve essere firmato da un'autorità fidata e corrispondere al nome dell'host. La predefinita.
verify-camodalità
Cifrata; il certificato deve essere firmato da un'autorità fidata, il nome dell'host non viene controllato.
requiremodalità
Cifrata, ma il certificato non viene verificato: esposta a chi si spaccia per il server. Prynt lo segnala.

Per Oracle, TLS significa un listener TCPS. Prynt si collega senza wallet: il certificato del server deve essere considerato attendibile dall'archivio dei certificati del sistema operativo che si collega (per una connessione diretta, i server di Prynt: in pratica, un certificato di un'autorità pubblica). Con verify-full viene controllato anche il DN del server, e puoi indicare il DN del certificato del server atteso. Certificati client (TLS reciproco) e wallet non sono supportati. Per PostgreSQL le modalità corrispondono a sslmode. Vedi Oracle e PostgreSQL.

Protezioni di rete

Prynt controlla ogni connessione diretta prima di aprirla, così una connessione non può servire a raggiungere la rete di Prynt o indirizzi privati (server-side request forgery):

  • Il nome dell'host viene risolto e si controllano tutti gli indirizzi a cui corrisponde, non solo il nome. Gli intervalli privati (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7), loopback, link-local, CGNAT (100.64.0.0/10), multicast, di documentazione e gli altri riservati sono rifiutati, e così le reti della piattaforma. Basta un indirizzo rifiutato tra tanti per rifiutare l'host.
  • La porta deve essere una di quelle ammesse per il tipo di database.
  • Le connessioni nel pool vengono ricontrollate ogni 60 secondi, così un record DNS cambiato dopo verso un indirizzo privato (DNS rebinding) viene intercettato.

Un host rifiutato non è un errore del prodotto

DATA_SOURCE_HOST_NOT_ALLOWED significa che il database è in una rete privata o speciale. È esattamente il caso del Gateway: installane uno accanto al database.

Consentire l'accesso a Prynt

Un database esposto a Internet dovrebbe accettare connessioni solo da indirizzi noti. Prynt non pubblica ancora un elenco di indirizzi IP fissi in uscita. Finché non lo fa, non puoi limitare un firewall cloud a Prynt solo per indirizzo: contattaci per l'indirizzo in uscita del tuo ambiente, oppure usa il Gateway, che non ha bisogno di alcuna regola in ingresso e funziona con il database che resta privato.

Credenziali

  • La password si scrive soltanto: dopo il salvataggio vedi Password salvata con Sostituisci; non viene mai rimandata a un browser né restituita da un'API.
  • È cifrata a riposo con envelope encryption: AES-256-GCM con una chiave dati per organizzazione, a sua volta protetta da una master key (o da una chiave in Azure Key Vault). La cifratura è legata all'organizzazione e al segreto, quindi un valore non può essere spostato su un altro record.
  • Ogni query gira in sola lettura, con timeout e limiti di righe, ed è tracciata. Usa comunque un utente del database dedicato in sola lettura: Prynt avvisa quando l'utente può scrivere o ha privilegi di amministrazione.

Errori

DATA_SOURCE_HOST_NOT_ALLOWED422
L'host corrisponde a un indirizzo privato, locale o riservato, oppure la porta non è ammessa per il tipo di database. Usa un gateway.
DATA_SOURCE_TLS_REQUIRED422
TLS è disattivato. Scegli verify-full (oppure verify-ca / require).
DATA_SOURCE_NOT_CONFIGURED422
La sorgente dati non ha una connessione per l'ambiente richiesto.
DATA_SOURCE_UNAVAILABLE503
API di generazione: il database ora non è raggiungibile (rete, listener, credenziali rifiutate).