TLS, şəbəkə girişi və SQL səlahiyyətləri fərqli suallara cavab verir
Bağlantını şifrələmək, mənbəyə icazə vermək və cədvəl vermək üç ayrı qərardır. TLS-in VPN-i əvəz edib-etmədiyini soruşmadan əvvəl onları ardıcıllıqla keçin.
Kimsə müştəriyə PostgreSQL girişi verməyi təklif edir ki, xərc tələbi başdan sona şifrələnmiş şəkildə getsin. Verilənlər bazası administratoruna real SQL sessiyası lazımdır, başqası isə əvəzində veb forma təklif edir. Hər iki təklif yanlış problemi həll edir, çünki heç biri müştərinin həqiqətən yerinə yetirdiyi əməliyyatdan başlamayıb. Üç qərarı ardıcıllıqla keçin və TLS-in VPN-i əvəz etməsi ilə bağlı sual özü cavablanacaq.
Müştərinin ehtiyac duyduğu əməliyyatdan başlayın
Müştərinin nəyə nail olmalı olduğunu yazın. Tələb təqdim etmək, hesabatın bir sətrini oxumaq və ad-hoc sorğu işlətmək üç fərqli risk profili olan üç fərqli əməliyyatdır.
Sonra sorğunu kimin verdiyini yazın. Müştəri, dəstək agenti və administrator eyni cədvələ toxunsalar belə bir-birini əvəz edə bilməz. Fərq müştərinin sorğu dilinin nə qədərini görməli olduğunu müəyyən edir.
Cavab cütü interfeysi müəyyən edir. Bundan sonrakı hər şey tətbiqatdır və şifrələmə ilə bağlı mübahisələrin çoxu əslində hansı interfeysin seçildiyi ilə bağlı mübahisədir.
Üç nəzarət, üç qərar
Autentifikasiyalı TLS bağlantını qoruyur və hansı TLS kimliklərinin qəbul edildiyini müəyyən edir. Şəbəkə girişi hansı mənbələrin dinləyiciyə ümumiyyətlə çata biləcəyini müəyyən edir. Verilənlər bazası avtorizasiyası rolun hansı obyektləri və əməliyyatları istifadə edə biləcəyini müəyyən edir.
Üçündən heç biri digərlərini əvəz etmir, cədvəl bunu açıq göstərir.
| 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 |
Başqa sətri çıxarmazdan əvvəl güvəndiyiniz sətri oxuyun. Bu dizaynların çoxu nəzarətin konfiqurasiya edilmək əvəzinə güman edildiyi üçün uğursuz olur.
Birbaşa SQL verilənlər bazası siyasətini məsuliyyətdə saxlayır
Təsdiqlənmiş birbaşa bağlantı ilə həm xidmət kimliyinin yoxlanmasını, həm də nəzərdə tutulan giriş siyasətini saxlayın. TLS-i işə salmaq şifrələnmiş bağlantıları mövcud edir; giriş konfiqurasiyası hostssl qeydləri ilə bunu demirsə, şifrələnməmişləri rədd etmir.
Bu fərqi şablonda deyil, işləyən konfiqurasiyada yoxlamağa dəyər. TLS təklif edən və açıq mətni qəbul edən server çoxlarının yerləşdirdiyini düşündüyü dizayn deyil. Giriş qaydalarını oxuyun və hansı qeydlərin həqiqətən bunu tələb etdiyinə baxın. Bu bir yoxlama şifrələmə qabiliyyətli serveri yalnız şifrələnmiş serverdən ayırır.
Yalnız işin lazım olan səlahiyyətləri olan rollar istifadə edin və sahibliyi, miras alınan üzvlüyü və geniş verilmiş icazələri nəzərdən keçirin. PostgreSQL səlahiyyət modeli verilənlər bazası obyektləri üçün səlahiyyət sərhədidir.
VPN verilənlər bazası autentifikasiyası baş verməzdən əvvəl hansı cihazların xidmətə çatdığını məhdudlaşdıra bilər və giriş şlüzü buna bənzər bir şey edə bilər. Heç biri açıq komponentin saxlanmasına, etimadnamələrin idarə edilməsinə və resurs istifadəsinin məhdudlaşdırılmasına ehtiyacı aradan qaldırmır.
Müştəri sertifikatları etimadnamədir, ACL deyil
Müştəri sertifikatı bağlantı zamanı əlavə tələb qoya bilər. clientcert parametri etibarlı sertifikat və daha sərt rejimdə sertifikat adı ilə verilənlər bazası istifadəçisi arasında əlaqə tələb edə bilər.
Bu daha güclü etimadnamədir. Bu avtorizasiya siyahısı deyil və serveri görünməz etmir, çünki bağlantını qəbul edən komponent hələ də şəbəkə trafikini və əl sıxışmasını emal edir. Sertifikata giriş siyahısı kimi yanaşmaq faktiki icazələri toxunulmaz qoyur. O, həm də sertifikat paylanmasını genişləndirməyə meyllidir ki, bu da növbəti problemi yaradır.
Həddindən artıq səlahiyyətli rola bağlanmış güclü sertifikat yaxşı autentifikasiya olunmuş administrator yaradır. Sertifikatı qeyd etməzdən əvvəl rolu yoxlayın.
Uyğun gəldikdə daha dar interfeysi seçin
Xərc tələbi üçün tələbi qəbul edən, biznes qaydalarını tətbiq edən və həmin istifadəçinin icazəli nəticəsini qaytaran tətbiq son nöqtəsi əməliyyatı ümumi SQL hesabından daha yaxşı təmsil edir.
Sonra tətbiq öz məhdud verilənlər bazası kimliyindən istifadə edir və müştəri heç vaxt xüsusiyyət olaraq sorğu dili almır. Bu, səhv olmağın daha az yolu olan daha kiçik bir səthdir.
Bu, tətbiq kodunun avtomatik olaraq daha təhlükəsiz olduğu iddiası deyil, dizayn seçimidir. Həmin kod çağıranlarını autentifikasiya etməli, hər əməliyyatı avtorizasiya etməli və girişini yoxlamalıdır və onun öz verilənlər bazası icazələri hələ də vacibdir.
Birbaşa SQL təsdiqlənmiş işi bunu tələb edən insanlar və alətlər üçün doğru qalır. Bu dizaynı rollar, şəbəkə əhatəsi və əməliyyat məhdudiyyətləri ilə şərtləndirin və qalan müştərilər daha dar interfeysi saxlasın. İki populyasiyanı bir rolda qarışdırmaq mübahisələrin başladığı yerdir.