Laptopi i një zhvilluesi skadon kur lidhet me pikën fundore private RDS, ndërsa të njëjtat kredenciale punojnë nga një host bastion. Asgjë nuk ka rënë. Rrugës midis atij laptopi dhe bazës së të dhënave i mungon një nga tri gjëra: një emër që zgjidhet, një rrugë që mban trafikun, ose një rregull në grupin e sigurisë që lejon burimin që baza e të dhënave sheh vërtet. Zbuloni cila mungon përpara se të ndryshoni dy të tjerat.

Lexoni dështimin në shtresën e duhur

Skadimi nuk është një gabim i vetëm. Një emër që nuk zgjidhet dështon përpara se një paketë të largohet nga makina. Një adresë pa rrugë i dërgon paketat në një vrimë të zezë. Një port i filtruar prodhon një pritje që duket saktësisht si host i gabuar. Ekzekutoni hapat sipas radhës dhe ndaloni te i pari që dështon.

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

Nëse emri kthen një adresë publike, ose asgjë, tuneli nuk është ende problemi.

Nëse emri zgjidhet dhe testi i portit varet, krahasoni adresën që zgjidhët me adresën që raporton baza e të dhënave. Një pikë fundore e menaxhuar mund të zgjidhet në një adresë private brenda VPC-së dhe në asgjë të dobishme jashtë saj, dhe një adresë e kopjuar nga një kërkim i vjetër do të tregojë një host që nuk përgjigjet më.

Ndani tunelin nga rruga

Lidhja me një VPN klienti nuk e drejton automatikisht çdo interval privat. Profili mbart rrugët që shtyn shërbimi, dhe klienti mund të instalojë vetëm disa prej tyre. Shikoni cilat intervale shtoi vërtet klienti dhe nëse adresa e bazës së të dhënave bie brenda njërit prej tyre.

ip route get 10.20.40.15
ip addr show tun0

Një rrugë që tregon ndërfaqen e tunelit është e nevojshme; nuk është e mjaftueshme, sepse ana tjetër duhet të pranojë ende trafikun.

Profilet e tunelit të ndarë janë burimi i zakonshëm i këtij dështimi gjysmak. Ato funksionojnë për aplikacionin për të cilin u projektua profili dhe e lënë intervalin e bazës së të dhënave jashtë tunelit, gjë që prodhon saktësisht skadimin që do të prodhonte një firewall.

Përshtatni grupin e sigurisë me burimin real

Grupi i sigurisë RDS lejon burime, jo njerëz. Në varësi të arkitekturës, burimi mund të jetë pishina e klientëve VPN, adresa private e një bastioni ose një adresë NAT në të cilën përkthehet trafiku. Lexoni rregullin dhe burimin real të paketës së bashku.

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

Një rregull për adresën e shtëpisë së një laptopi të vetëm është problem mirëmbajtjeje, jo projektim aksesi.

Kur në rrugë qëndron një VPN klienti ose një portë NAT, baza e të dhënave mund të shohë adresën e përkthyesit në vend të adresës së tunelit të zhvilluesit. Kjo është arsyeja pse një rregull i kopjuar nga një konfigurim bastioni që funksionon mund të dështojë për një laptop: dy rrugët vijnë nga burime të ndryshme ndonëse të dyja duken të brendshme.

Preferoni një rrugë të ngushtë ndaj një të gjerë

Kur një zhvillues ka nevojë për një bazë të dhënash, përcjellja e bazuar në sesion është shpesh më e lirë për t'u operuar sesa një tunel i plotë rrjeti. Klienti lokal lidhet me një port të përcjellë, dhe komponenti i largët e krijon lidhjen me bazën e të dhënave nga brenda rrjetit.

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

Mbajeni verifikimin TLS të paprekur në atë projektim. Klienti duhet ende të verifikojë certifikatën e serverit kundrejt emrit që pret; një port i përcjellë lokal nuk është arsye për të çaktivizuar verifikimin, dhe çaktivizimi i tij fsheh pikërisht problemin e identitetit që ia vlen të kapet.

Zgjedhja midis një tuneli të plotë dhe një përcjelljeje të ngushtë është vendim për shtrirjen, jo për teatër sigurie.

Lini pas një rrugë që mund të përsëritet

Dokumentoni emrin e pikës fundore në vend të një adrese të zgjidhur, intervalin e burimit që lejon grupi i sigurisë, dhe rolin e bazës së të dhënave që përdor zhvilluesi. Këto tri fakte shpjegojnë shumicën e dështimeve të ardhshme pa një telefonatë. Shtoni edhe versionin e profilit të klientit, sepse një ndryshim profili mund të heqë një rrugë që mbante ai i vjetri.

Pastaj provoni një herë rastin negativ: një klient jashtë burimit të miratuar duhet të refuzohet ende.

Një bazë e të dhënave private që punon vetëm për personin që e konfiguroi nuk është akses privat; është një përjashtim i padokumentuar që pret të rizbuluar. Shkruani rrugën, dhe zhvilluesi i ardhshëm trashëgon një metodë në vend të një misteri.

Artikuj të ngjashëm