La tekkomputilo de programisto finiĝas per tempolimo dum ĝi konektas al la privata RDS-finpunkto, dum la samaj akreditaĵoj funkcias de bastiona gastiganto. Nenio estas paneinta. Al la vojo inter tiu tekkomputilo kaj la datumbazo mankas unu el tri aferoj: nomo, kiu solviĝas, vojo, kiu portas la trafikon, aŭ regulo de sekurgrupo, kiu permesas la fonton, kiun la datumbazo efektive vidas. Eltrovu, kiu mankas, antaŭ ol ŝanĝi la aliajn du.

Legu la malsukceson sur la ĝusta tavolo

Tempolimo ne estas unu eraro. Nomo, kiu ne solviĝas, malsukcesas antaŭ ol paketo forlasas la maŝinon. Adreso sen vojo sendas paketojn en nigran truon. Filtrita pordo kaŭzas atendon, kiu aspektas ekzakte kiel malĝusta gastiganto. Plenumu la paŝojn laŭorde kaj haltu ĉe la unua, kiu malsukcesas.

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

Se la nomo redonas publikan adreson, aŭ redonas nenion, la tunelo ankoraŭ ne estas la problemo.

Se la nomo solviĝas kaj la pordotesto pendas, komparu la adreson, kiun vi solvis, kun la adreso, kiun la datumbazo raportas. Administrata finpunkto povas solviĝi al privata adreso ene de la VPC kaj al nenio utila ekster ĝi, kaj adreso kopiita el malnova serĉo montros al gastiganto, kiu ne plu respondas.

Apartigu la tunelon de la vojo

Konekti klientan VPN ne aŭtomate enkursigas ĉiun privatan gamon. La profilo portas la vojojn, kiujn la servo puŝas, kaj la kliento eble instalas nur kelkajn el ili. Rigardu, kiujn gamojn la kliento efektive aldonis kaj ĉu la datumbaza adreso falas en unu el ili.

ip route get 10.20.40.15
ip addr show tun0

Vojo, kiu montras al la tunela interfaco, estas necesa; ĝi ne sufiĉas, ĉar la kontraŭa flanko ankoraŭ devas akcepti la trafikon.

Profiloj de dividita tunelo estas la kutima fonto de ĉi tiu duona malsukceso. Ili funkcias por la aplikaĵo, por kiu la profilo estis desegnita, kaj lasas la datumbazan gamon ekster la tunelo, kio produktas ekzakte la tempolimon, kiun fajroŝirmilo produktus.

Alĝustigu la sekurgrupon al la reala fonto

La RDS-sekurgrupo permesas fontojn, ne homojn. Depende de la arkitekturo, la fonto povas esti la klienta VPN-pool, la privata adreso de bastiono, aŭ NAT-adreso, al kiu la trafiko tradukiĝas. Legu la regulon kaj la efektivan paketfonton kune.

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

Regulo por la hejma adreso de unu tekkomputilo estas prizorga problemo, ne alirdesegno.

Kiam klienta VPN aŭ NAT-enirejo staras sur la vojo, la datumbazo povas vidi la adreson de la tradukilo anstataŭ la tunelan adreson de la programisto. Tial regulo kopiita de funkcianta bastiona agordo povas malsukcesi por tekkomputilo: la du vojoj alvenas de malsamaj fontoj, kvankam ambaŭ aspektas internaj.

Preferu mallarĝan vojon al larĝa

Kiam unu programisto bezonas unu datumbazon, sesibaza plusendo ofte estas malpli multekosta por funkciigi ol plena reta tunelo. La loka kliento konektas al plusendita pordo, kaj la fora komponanto faras la datumbazan konekton de interne de la reto.

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

Konservu la TLS-kontrolon sendifekta en tiu desegno. La kliento ankoraŭ devus validigi la servilan atestilon kontraŭ la nomo, kiun ĝi atendas; loka plusendita pordo ne estas kialo malŝalti la kontrolon, kaj malŝalti ĝin kaŝas ekzakte la identecproblemon, kiun indas kapti.

La elekto inter plena tunelo kaj mallarĝa plusendo estas decido pri amplekso, ne pri sekureca teatro.

Lasu post vi ripeteblan vojon

Dokumentu la finpunktan nomon anstataŭ solvitan adreson, la fontan gamon, kiun la sekurgrupo permesas, kaj la datumbazan rolon, kiun la programisto uzas. Tiuj tri faktoj klarigas la plej multajn estontajn paneojn sen telefonalvoko. Aldonu ankaŭ la version de la klienta profilo, ĉar profila ŝanĝo povas forigi vojon, kiun la malnova portis.

Poste testu la negativan kazon unufoje: kliento ekster la aprobita fonto ankoraŭ devus esti rifuzata.

Privata datumbazo, kiu funkcias nur por la persono, kiu ĝin agordis, ne estas privata aliro; ĝi estas nedokumentita escepto atendanta malkovron denove. Skribu la vojon, kaj la sekva programisto heredos metodon anstataŭ misteron.

Rilataj artikoloj