Prenosniku razvijalca poteče čas pri povezovanju z zasebno končno točko RDS, medtem ko iste poverilnice delujejo z gostitelja bastion. Nič ni padlo. Poti med tem prenosnikom in bazo podatkov manjka ena od treh stvari: ime, ki se razreši, pot, ki nosi promet, ali pravilo v varnostni skupini, ki prepusti vir, ki ga baza podatkov dejansko vidi. Ugotovite, katera manjka, preden spremenite drugi dve.

Preberite napako na pravi plasti

Potek časa ni ena napaka. Ime, ki se ne razreši, odpove, preden paket zapusti stroj. Naslov brez poti pošilja pakete v črno luknjo. Filtrirana vrata ustvarijo čakanje, ki je videti natanko kot napačen gostitelj. Izvedite korake po vrsti in ustavite se pri prvem, ki odpove.

dig +short db.internal.example
nc -vz db.internal.example 5432

Če ime vrne javni naslov ali nič, predor še ni težava.

Če se ime razreši in test vrat obvisi, primerjajte razrešeni naslov z naslovom, ki ga poroča baza podatkov. Upravljana končna točka se lahko razreši v zasebni naslov znotraj VPC in v nič uporabnega zunaj njega, naslov, kopiran iz starega iskanja, pa bo kazal na gostitelja, ki se ne odziva več.

Ločite predor od poti

Povezava z odjemalskim VPN ne usmerja samodejno vsakega zasebnega obsega. Profil nosi poti, ki jih potiska storitev, in odjemalec lahko namesti le nekatere od njih. Poglejte, katere obsege je odjemalec zares dodal in ali naslov baze podatkov pade v enega od njih.

ip route get 10.20.40.15
ip addr show tun0

Pot, ki kaže na vmesnik predora, je nujna; ni zadostna, ker mora druga stran promet še vedno sprejeti.

Profili razdeljenega predora so običajen vir te polovične napake. Delujejo za aplikacijo, za katero je bil profil zasnovan, in pustijo obseg baze podatkov zunaj predora, kar ustvari natanko tisti potek časa, kot bi ga ustvaril požarni zid.

Prilagodite varnostno skupino dejanskemu viru

Varnostna skupina RDS prepusti vire, ne ljudi. Glede na arhitekturo je vir lahko bazen odjemalcev VPN, zasebni naslov bastiona ali naslov NAT, v katerega se promet prevaja. Berite pravilo in dejanski vir paketa skupaj.

aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
  --query 'SecurityGroups[].IpPermissions'

Pravilo za domači naslov enega prenosnika je vzdrževalna težava, ne zasnova dostopa.

Ko je na poti odjemalski VPN ali prehod NAT, baza podatkov lahko vidi naslov prevajalnika namesto naslova predora razvijalca. Zato lahko pravilo, kopirano iz delujoče nastavitve bastiona, pri prenosniku odpove: obe poti prihajata iz različnih virov, čeprav sta obe videti notranji.

Dajte prednost ozki poti pred široko

Ko en razvijalec potrebuje eno bazo podatkov, je posredovanje na podlagi seje pogosto cenejše za upravljanje kot poln omrežni predor. Lokalni odjemalec se poveže s posredovanimi vrati, oddaljena komponenta pa vzpostavi povezavo z bazo podatkov znotraj omrežja.

ssh -N -L 5432:db.internal.example:5432 bastion.internal.example

V tej zasnovi ohranite preverjanje TLS nedotaknjeno. Odjemalec mora še vedno preveriti strežniško potrdilo glede na ime, ki ga pričakuje; lokalna posredovana vrata niso razlog za izklop preverjanja, izklop pa skrije natanko tisto težavo identitete, ki se jo splača ujeti.

Izbira med polnim predorom in ozkim posredovanjem je odločitev o obsegu, ne o varnostnem teatru.

Za seboj pustite ponovljivo pot

Dokumentirajte ime končne točke namesto razrešenega naslova, obseg vira, ki ga varnostna skupina prepusti, in vlogo baze podatkov, ki jo uporablja razvijalec. Ta tri dejstva pojasnijo večino prihodnjih napak brez klica. Dodajte še različico odjemalskega profila, ker lahko sprememba profila odstrani pot, ki jo je nosil stari.

Nato enkrat preizkusite negativni primer: odjemalec zunaj odobrenega vira mora biti še vedno zavrnjen.

Zasebna baza podatkov, ki deluje le za osebo, ki jo je nastavila, ni zaseben dostop; je nedokumentirana izjema, ki čaka, da jo znova odkrijejo. Zapišite pot in naslednji razvijalec bo podedoval metodo namesto uganke.

Sorodni članki