TLS, netwurktaangong en SQL-rjochten beantwurdzje ferskillende fragen
In ferbining fersiferje, in boarne talitte en in tabel jaan binne trije besluten. Gean se yn folchoarder nei foardat jo freegje oft TLS in VPN ferfange kin.
Immen stelt foar om in klant in PostgreSQL-ynlog te jaan sadat in ûnkostenfergoeding fersifere fan begjin oant ein reizget. In databankbehearder hat in echte SQL-sesje nedich, en immen oars stelt ynstee in webformulier foar. Beide foarstellen oplosse it ferkearde probleem, om't gjin fan beide begûn is by de operaasje dy't de klant eins útfiert. Gean de trije besluten yn folchoarder nei en de fraach oft TLS in VPN ferfange kin beantwurdet himsels.
Begjin by de operaasje dy't de klant nedich hat
Skriuw op wat de klant berikke moat. In oanfraach yntsjinje, ien rige fan in rapport lêze en in ad-hoc-fraach útfiere binne trije ferskillende operaasjes mei trije ferskillende risikoprofylen.
Skriuw dan op wa't it fersyk docht. In klant, in stipe-agint en in behearder binne net útwikselber sels as se deselde tabel oanreitsje. It ferskil beselet hoefolle fan de fraachtaal de klant ea sjen moat.
It pear antwurden beselet de ynterface. Alles dêrnei is ymplemintaasje, en de measte diskusjes oer fersifering binne eins diskusjes oer hokker ynterface keazen is.
Trije kontrôles, trije besluten
Autentisearre TLS beskermet de ferbining en beselet hokker TLS-identiteiten akseptearre wurde. Netwurktaangong beselet hokker boarnen de listener ea berikke kinne. Databankautorisaaasje beselet hokker objekten en aksjes in rol brûke mei.
Gjin fan de trije ferfangt de oaren, wat de tabel dúdlik makket.
| Control | What it decides | What it leaves open |
|---|---|---|
| Authenticated TLS | Connection protection and which TLS identities are accepted | Which tables a database user may touch |
| Restricted network entry | Which sources reach the listener | Whether an authenticated user should run a given statement |
| Database authorization | Which objects and actions a role may use | Whether the connection arrived by an approved path |
Lês de rige dêr't jo op fertrouwe foardat jo in oare fuortsmite. De measte fan dizze ûntwerpen mislearje om't in kontrôle oannaam waard ynstee fan konfigurearre.
Direkt SQL hâldt it databankbelied oan it roer
Mei in goedkarde direkte ferbining hâldt jo sawol de ferifikaasje fan tsjinstidentiteit as it bedoelde tagongsbelied. TLS oansette makket fersifere ferbiningen beskikber; it wijst net-fersifere net ôf, útsein as de tagongskonfiguraasje dat fia hostssl-ynfieringen seit.
Dat ferskil is it wurdich te kontrolearjen yn de rinnende konfiguraasje en net yn in sjabloan. In server dy't TLS biedt en platte tekst akseptearret is net it ûntwerp dat de measte minsken tinke dat se útrôle hawwe. Lês de tagongsregels en sjoch hokker ynfieringen it echt easkje. Dy iene kontrôle skiedt in fersiferingsmooglike server fan in allinnich-fersifere.
Brûk rollen mei allinnich de privileezjes dy't it wurk nedich hat, en besjoch eigendom, erfd lidmaatskip en breed taparte tastimmingen. It privileezjemodel fan PostgreSQL is de autoriteitsgrins foar databankobjekten.
In VPN kin beheine hokker apparaten de tsjinst berikke foardat databankautentikaasje bart, en in tagongspoarte kin wat ferlykbers dwaan. Gjin fan beide ferwideret de needsaak om it bleatstelde komponint te ûnderhâlden, oanmeldingen te behearjen en boarnegebrûk te beheinen.
Kliïntsertifikaten binne in bewiis, gjin ACL
In kliïntsertifikaat kin in eask tafoegje by it ferbinen. De ynstelling clientcert kin in fertroud sertifikaat easkje en, yn de strangere modus, in relaasje tusken de sertifikaatnamme en de databankbrûker.
Dat is in sterker bewiis. It is gjin autorisaasjelist en it makket de server net ûnsichtber, om't it komponint dat de ferbining akseptearret noch altyd netwurkferkear en in hânskodding ferwurket. In sertifikaat as tagongslijst behannelje lit de werklike tastimmingen ûnoantaast. It hat ek de oanstriid om de sertifikaatdistribúsje te ferbreedzjen, wat it folgjende probleem skept.
In sterk sertifikaat ferbûn oan in rol mei tefolle privileezjes produsearret in goed autentisearre behearder. Kontrolearje de rol foardat jo it sertifikaat fiere.
Kies de smelste ynterface as it past
Foar in ûnkostenfergoeding fertsjintwurdiget in applikaasje-einpunt dat de oanfraach akseptearret, de saaklike regels hanthavet en it tastiene resultaat fan dy brûker weromstjoert de operaasje better as in algemien SQL-akkount.
De applikaasje brûkt dan syn eigen beheinde databankidentiteit, en de klant krijt nea in fraachtaal as funksje. Dat is in lytser oerflak mei minder manieren om ferkeard te wêzen.
Dit is in ûntwerpopsje, gjin bewearing dat applikaasjekoad automatysk feiliger is. Dat koad moat syn oanroppers autentisearje, elke aksje autorisearje en syn ynfier falidearje, en syn eigen databanktastimmingen telle noch altyd.
Direkt SQL bliuwt korrekt foar minsken en ark waans goedkarde wurk it easket. Kwalifisearje dat ûntwerp mei rollen, netwurkberik en operasjonele grinzen, en lit de oare klanten de smellere ynterface hâlde. De twa populaasjes yn ien rol mingen is wêr't de diskusjes begjinne.