TLS, netaðgangur og SQL-réttindi svara ólíkum spurningum
Að dulkóða tengingu, hleypa uppsprettu inn og veita töflu eru þrjár ákvarðanir. Farðu í gegnum þær í röð áður en þú spyrð hvort TLS geti komið í stað VPN.
Einhver leggur til að gefa viðskiptavini PostgreSQL-innskráningu svo kröfuskjal ferðist dulkóðað frá enda til enda. Gagnagrunnsstjóri þarf raunverulega SQL-lotu, og einhver annar leggur í staðinn til vefeyðublað. Báðar tillögurnar leysa rangt vandamál, því hvorug byrjaði á aðgerðinni sem viðskiptavinurinn framkvæmir í raun. Farðu í gegnum ákvarðanirnar þrjár í röð og spurningin um hvort TLS geti komið í stað VPN svarar sér sjálf.
Byrjaðu á aðgerðinni sem viðskiptavinurinn þarf
Skrifaðu niður hvað viðskiptavinurinn á að ná fram. Að senda kröfu, lesa eina línu úr skýrslu og keyra staka fyrirspurn eru þrjár ólíkar aðgerðir með þrjú ólík áhættusnið.
Skrifaðu síðan niður hver sendir beiðnina. Viðskiptavinur, þjónustufulltrúi og stjórnandi eru ekki skiptanlegir þótt þeir snerti sömu töfluna. Munurinn ræður því hversu mikið af fyrirspurnarmálinu viðskiptavinurinn ætti nokkurn tíma að sjá.
Svörin tvö ráða viðmótinu. Allt það sem kemur á eftir er útfærsla, og flestar umræður um dulkóðun eru í raun umræður um hvaða viðmót var valið.
Þrjár stýringar, þrjár ákvarðanir
Staðfest TLS verndar tenginguna og ræður því hvaða TLS-auðkenni eru samþykkt. Netaðgangur ræður því hvaða uppsprettur komast yfirhöfuð að hlustandanum. Gagnagrunnsheimild ræður því hvaða hlutum og aðgerðum hlutverk má nota.
Ekkert þeirra þriggja kemur í stað hinna, sem taflan gerir skýrt.
| 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 |
Lestu línuna sem þú treystir á áður en þú fjarlægir aðra. Flestar þessara hönnunar falla vegna þess að stýring var gefin sér en ekki stillt.
Beint SQL heldur gagnagrunnsstefnunni ábyrgri
Með samþykktri beinni tengingu skaltu halda bæði staðfestingu þjónustuauðkenna og fyrirhugaðri aðgangsstefnu. Að kveikja á TLS gerir dulkóðaðar tengingar aðgengilegar; það hafnar ekki ódulkóðuðum nema aðgangsstillingin kveði á um það með hostssl-færslum.
Þann mun er vert að athuga í keyrandi stillingum frekar en í sniðmáti. Þjónn sem býður TLS og samþykkir látlausan texta er ekki sú hönnun sem flestir halda að þeir hafi sett upp. Lestu aðgangsreglurnar og sjáðu hvaða færslur krefjast þess í raun. Þessi eina athugun aðgreinir þjón sem getur dulkóðað frá þeim sem er aðeins dulkóðaður.
Notaðu hlutverk með aðeins þeim réttindum sem verkið þarf, og farðu yfir eignarhald, arfleiða aðild og víðtækar heimildir. Réttindalíkan PostgreSQL er valdamörk gagnagrunnaðjunga.
VPN getur takmarkað hvaða tæki ná þjónustunni áður en gagnagrunnsstaðfesting á sér stað, og aðgangsgátt getur gert eitthvað svipað. Hvorugt fjarlægir þörfina fyrir að viðhalda útsettu einingunni, stjórna skírteinum og takmarka auðlindanotkun.
Biðlaraskírteini eru skírteini, ekki ACL
Biðlaraskírteini getur bætt við kröfu á tengitíma. Stillingin clientcert getur krafist trausts skírteinis og, í strangari ham, tengsls milli skírteinisheitis og gagnagrunnsnotanda.
Það er sterkara skírteini. Það er ekki heimildalisti, og það gerir þjóninn ekki ósýnilegan, því einingin sem tekur við tengingunni vinnur enn netumferð og handaband. Að meðhöndla skírteini sem aðgangslista lætur raunverulegar heimildir ósnortnar. Það hefur einnig tilhneigingu til að víkka dreifingu skírteina, sem skapar næsta vandamál.
Sterkt skírteini tengt hlutverki með of miklum réttindum framleiðir vel staðfestan stjórnanda. Athugaðu hlutverkið áður en þú fagnar skírteininu.
Veldu þrengra viðmótið þegar það hentar
Fyrir kröfuskjal táknar notendapunktur forrits sem tekur við kröfunni, framfylgir viðskiptareglunum og skilar leyfðri niðurstöðu þess notanda aðgerðina betur en almennur SQL-reikningur.
Forritið notar síðan eigin takmarkaða gagnagrunnsauðkenni, og viðskiptavinurinn fær aldrei fyrirspurnarmál sem eiginleika. Það er minna yfirborð með færri leiðum til að fara rangt.
Þetta er hönnunarvalkostur en ekki fullyrðing um að forritskóði sé sjálfkrafa öruggari. Sá kóði verður að staðfesta símtöl sín, heimila hverja aðgerð og sannreyna inntak sitt, og eigin gagnagrunnsheimildir hans skipta enn máli.
Beint SQL er áfram rétt fyrir fólk og verkfæri sem samþykkt verk þeirra krefjast þess. Skilyrðu þá hönnun með hlutverkum, netumfangi og rekstrarmörkum, og láttu aðra biðlara halda þrengra viðmótinu. Að blanda hópunum tveimur í eitt hlutverk er þar sem umræðurnar byrja.