TLS, мрежниот пристап и SQL привилегиите одговараат на различни прашања
Шифрирањето на врска, пуштањето извор и давањето табела се три одлуки. Поминете ги по ред пред да прашате дали TLS може да го замени VPN.
Некој предлага да му се даде на клиент PostgreSQL најава за да патува барањето за трошок шифрирано од почеток до крај. Администраторот на базата на податоци има потреба од вистинска SQL сесија, а некој друг наместо тоа предлага веб-образец. Двата предлога решаваат погрешен проблем, бидејќи ниту еден не почнал од операцијата што клиентот навистина ја извршува. Поминете ги трите одлуки по ред и прашањето дали TLS може да го замени VPN само ќе си одговори.
Почнете од операцијата што му е потребна на клиентот
Запишете што треба да постигне клиентот. Поднесувањето барање, читањето еден ред од извештај и извршувањето моментален прашалник се три различни операции со три различни профили на ризик.
Потоа запишете кој го поднесува барањето. Клиент, агент за поддршка и администратор не се заменливи дури и кога допираат иста табела. Разликата одлучува колку од јазикот за прашалници клиентот воопшто треба да види.
Парот одговори ја одлучува интерфејсот. Потоа сето е имплементација, а повеќето расправии за шифрирањето се всушност расправии за тоа кој интерфејс е избран.
Три контроли, три одлуки
Автентифицираниот TLS ја штити врската и одлучува кои TLS идентитети се прифаќаат. Мрежниот пристап одлучува кои извори воопшто можат да стигнат до слушателот. Авторизацијата во базата на податоци одлучува кои објекти и дејства смее да ги користи една улога.
Ниту една од трите не ги заменува другите, што табелата го покажува експлицитно.
| 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 |
Прочитајте го редот на кој се потпирате пред да отстраните друг. Повеќето од овие проекти пропаѓаат затоа што контролата била претпоставена, а не конфигурирана.
Директниот SQL ја остава политиката на базата одговорна
Со одобрена директна врска задржете ја и проверката на идентитетот на услугата и предвидената политика за пристап. Вклучувањето на TLS ги прави шифрираните врски достапни; тоа не ги одбива нешифрираните, освен ако конфигурацијата за пристап тоа не го бара преку записи hostssl.
Таа разлика вреди да се провери во конфигурацијата што работи, а не во образец. Серверот што нуди TLS и прифаќа отворен текст не е проектот што повеќето мислат дека го распоредиле. Прочитајте ги правилата за пристап и видете кои записи навистина го бараат тоа. Таа една проверка го дели серверот способен за шифрирање од серверот само со шифрирање.
Користете улоги само со привилегиите што му се потребни на работата и прегледајте сопственост, наследено членство и широко доделени дозволи. Моделот на привилегии на PostgreSQL е границата на овластување за објектите во базата на податоци.
VPN може да ограничи кои уреди стигнуваат до услугата пред да се случи автентикацијата во базата, а пристапниот портал може да направи нешто слично. Ниту едно од двете не ја отстранува потребата да се одржува изложената компонента, да се управува со акредитиви и да се ограничи користењето ресурси.
Клиентските сертификати се акредитив, а не ACL
Клиентски сертификат може да додаде услов при поврзувањето. Поставката clientcert може да бара доверлив сертификат и, во построгиот режим, врска меѓу името на сертификатот и корисникот на базата.
Тоа е посилен акредитив. Тоа не е список за авторизација и не го прави серверот невидлив, бидејќи компонентата што ја прифаќа врската и понатаму обработува мрежен сообраќај и ракување. Третирањето на сертификатот како список за пристап ги остава вистинските дозволи недопрени. Исто така, има тенденција да ја прошири дистрибуцијата на сертификати, што го создава следниот проблем.
Силен сертификат прикачен на улога со прекумерни привилегии дава добро автентифициран администратор. Проверете ја улогата пред да го славите сертификатот.
Изберете го потесниот интерфејс кога одговара
За барање за трошок, крајната точка на апликацијата што го прифаќа барањето, ги спроведува деловните правила и го враќа дозволениот резултат на тој корисник ја претставува операцијата подобро од општа сметка SQL.
Потоа апликацијата го користи својот ограничен идентитет во базата, а клиентот никогаш не добива јазик за прашалници како функција. Тоа е помала површина со помалку начини да се згреши.
Ова е опција за дизајн, а не тврдење дека кодот на апликацијата е автоматски побезбеден. Тој код мора да ги автентицира своите повикувачи, да го овласти секое дејство и да го валидира својот влез, а неговите сопствени дозволи во базата и понатаму се важни.
Директниот SQL останува точен за луѓето и алатките чија одобрена работа го бара тоа. Ограничете го тој дизајн со улоги, мрежен опфат и оперативни граници и оставете ги другите клиенти да го задржат потесниот интерфејс. Мешањето на двете групи во една улога е местото каде што почнуваат расправиите.