Loka datumbaza kliento kaj privata RDS: kial la konekto tempolimas
Loka kliento ne povas atingi privatan RDS-instancon pro tri apartaj kaŭzoj. Kontrolu la dividitan DNS, la vojon kaj la pruvojn de la sekurgrupo antaŭ ol ŝanĝi ion.
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.