Біреу клиентке PostgreSQL кірісін беруді ұсынады, осылайша шығыс талабы басынан аяғына дейін шифрланған күйде жүреді. Дерекқор әкімшісіне нақты SQL сессиясы қажет, ал басқа біреу оның орнына веб-нысанды ұсынады. Екі ұсыныс та дұрыс емес мәселені шешеді, өйткені ешқайсысы клиент шын мәнінде орындайтын операциядан басталмаған. Үш шешімді ретімен қарап шығыңыз, сонда TLS VPN-ні алмастыра ала ма деген сұрақ өзі жауап береді.

Клиентке қажет операциядан бастаңыз

Клиент нені орындауы керектігін жазыңыз. Талап беру, есептің бір жолын оқу және жедел сұраныс жүргізу — тәуекел бейіні әртүрлі үш бөлек операция.

Содан кейін сұранысты кім жасайтынын жазыңыз. Клиент, қолдау агенті және әкімші бір кестеге қол тигізсе де бір-бірін алмастыра алмайды. Айырмашылық клиенттің сұраныс тілінің қанша бөлігін көруі керектігін анықтайды.

Жауаптар жұбы интерфейсті анықтайды. Одан кейінгінің бәрі іске асыру, ал шифрлау туралы даулардың көбі шын мәнінде қай интерфейс таңдалғаны туралы дау.

Үш бақылау, үш шешім

Аутентификацияланған TLS қосылымды қорғайды және қандай TLS сәйкестіктері қабылданатынын анықтайды. Желіге кіру қандай көздер тыңдаушыға жететінін анықтайды. Дерекқор авторизациясы рөлдің қандай нысандар мен әрекеттерді пайдалана алатынын анықтайды.

Үшеуінің ешқайсысы қалғандарын алмастырмайды, мұны кесте анық көрсетеді.

ControlWhat it decidesWhat it leaves open
Authenticated TLSConnection protection and which TLS identities are acceptedWhich tables a database user may touch
Restricted network entryWhich sources reach the listenerWhether an authenticated user should run a given statement
Database authorizationWhich objects and actions a role may useWhether the connection arrived by an approved path

Басқа жолды жоймас бұрын сүйенетін жолды оқыңыз. Мұндай жобалардың көбі бақылауды конфигурациялаудың орнына болжағандықтан сәтсіздікке ұшырайды.

Тікелей SQL дерекқор саясатын жауапты күйде ұстайды

Мақұлданған тікелей қосылымда қызмет сәйкестігін тексеруді де, көзделген қатынау саясатын да сақтаңыз. TLS қосу шифрланған қосылымдарды қолжетімді етеді; қатынау конфигурациясы hostssl жазбалары арқылы талап етпесе, ол шифрланбағандарды қабылдамайды.

Бұл айырмашылықты үлгіде емес, жұмыс істеп тұрған конфигурацияда тексерген жөн. TLS ұсынатын және ашық мәтінді қабылдайтын сервер көпшілік орналастырды деп ойлайтын жоба емес. Қатынау ережелерін оқып, қандай жазбалардың шынымен талап ететінін қараңыз. Осы бір тексеру шифрлауға қабілетті серверді тек шифрланған серверден ажыратады.

Тек жұмысқа қажет құқықтары бар рөлдерді пайдаланыңыз және меншікті, мұрагерлік мүшелікті және кең берілген рұқсаттарды қарап шығыңыз. PostgreSQL құқық моделі дерекқор нысандары үшін өкілеттік шегі болып табылады.

VPN дерекқор аутентификациясына дейін қандай құрылғылар қызметке жететінін шектей алады, ал қатынау шлюзі де сол сияқты бірдеңе жасай алады. Екеуі де ашық компонентті күтіп ұстау, тіркелгі деректерін басқару және ресурс пайдалануды шектеу қажеттілігін жоймайды.

Клиент сертификаттары — куәлік, ACL емес

Клиент сертификаты қосылу кезінде талап қоса алады. clientcert параметрі сенімді сертификатты және неғұрлым қатаң режимде сертификат атауы мен дерекқор пайдаланушысының арасындағы байланысты талап ете алады.

Бұл неғұрлым күшті куәлік. Бұл авторизация тізімі емес және серверді көрінбейтін етпейді, өйткені қосылымды қабылдайтын компонент әлі де желілік трафикті және қол алысуды өңдейді. Сертификатты қатынау тізімі ретінде қарау нақты рұқсаттарды тиіспеген күйде қалдырады. Ол сондай-ақ сертификаттарды таратуды кеңейтуге бейім, бұл келесі мәселені тудырады.

Артық құқықтары бар рөлге байланған күшті сертификат жақсы аутентификацияланған әкімшіні береді. Сертификатты тойламас бұрын рөлді тексеріңіз.

Сәйкес келсе, тар интерфейсті таңдаңыз

Шығыс талабы үшін талапты қабылдайтын, іскери ережелерді орындайтын және сол пайдаланушының рұқсат етілген нәтижесін қайтаратын қосымша шеткі нүктесі операцияны жалпы SQL тіркелгісінен жақсы білдіреді.

Содан кейін қосымша өзінің шектеулі дерекқор сәйкестігін пайдаланады, ал клиент ешқашан сұраныс тілін мүмкіндік ретінде алмайды. Бұл қателесудің азырақ жолдары бар кішірек бет.

Бұл дизайн нұсқасы, қосымша коды автоматты түрде қауіпсізірек деген тұжырым емес. Бұл код өз шақырушыларын аутентификациялауы, әр әрекетті авторизациялауы және кірісін тексеруі керек, ал оның өз дерекқор рұқсаттары әлі де маңызды.

Тікелей SQL мақұлданған жұмысы оны талап ететін адамдар мен құралдар үшін дұрыс күйінде қалады. Бұл дизайнды рөлдермен, желілік ауқыммен және операциялық шектермен шарттаңыз, ал қалған клиенттер тар интерфейсті сақтасын. Екі топты бір рөлде араластыру — даулар басталатын жер.

Қатысты мақалалар