Vietējais datu bāzes klients un privātais RDS: kāpēc savienojuma laiks beidzas
Vietējais klients nevar sasniegt privātu RDS instanci trīs atsevišķu iemeslu dēļ. Pirms kaut ko mainīt pārbaudiet sadalīto DNS, maršrutu un drošības grupas pierādījumus.
Izstrādātāja portatīvais dators saņem taimautu, pieslēdzoties privātajam RDS galapunktam, kamēr tie paši akreditācijas dati darbojas no bastiona resursdatora. Nekas nav kritusi. Ceļam starp šo portatīvo datoru un datu bāzi trūkst vienas no trim lietām: vārda, kas atrisinās, maršruta, kas nes datplūsmu, vai drošības grupas kārtulas, kas pielaiž avotu, ko datu bāze patiešām redz. Noskaidrojiet, kas trūkst, pirms maināt pārējās divas.
Lasiet neveiksmi pareizajā slānī
Taimauts nav viena kļūda. Vārds, kas neatrisinās, neizdodas, pirms pakete atstāj mašīnu. Adrese bez maršruta sūta paketes melnajā caurumā. Filtrēts ports rada gaidīšanu, kas izskatās tieši kā nepareizs resursdators. Izpildiet soļus secībā un apstājieties pie pirmā, kas neizdodas.
dig +short db.internal.example
nc -vz db.internal.example 5432
Ja vārds atgriež publisku adresi vai neko, tunelis vēl nav problēma.
Ja vārds atrisinās un porta tests iekaras, salīdziniet atrisināto adresi ar adresi, ko ziņo datu bāze. Pārvaldīts galapunkts var atrisināties uz privātu adresi VPC iekšienē un uz neko lietderīgu ārpus tā, un adrese, kas nokopēta no vecas meklēšanas, norādīs uz resursdatoru, kas vairs neatbild.
Atdaliet tuneli no maršruta
Klienta VPN pieslēgšana automātiski nemaršrutē katru privāto diapazonu. Profils nes maršrutus, ko pakalpojums grūž, un klients var instalēt tikai dažus no tiem. Apskatiet, kādus diapazonus klients patiešām pievienoja, un vai datu bāzes adrese iekrīt kādā no tiem.
ip route get 10.20.40.15
ip addr show tun0
Maršruts, kas norāda uz tuneļa saskarni, ir nepieciešams; ar to nepietiek, jo pretējai pusei datplūsma vēl jāpieņem.
Sadalītā tuneļa profili ir parastais šī puslīdz neveiksmes avots. Tie darbojas lietojumprogrammai, kam profils bija paredzēts, un atstāj datu bāzes diapazonu ārpus tuneļa, kas rada tieši tādu taimautu, kādu radītu ugunsmūris.
Saskaņojiet drošības grupu ar īsto avotu
RDS drošības grupa pielaiž avotus, nevis cilvēkus. Atkarībā no arhitektūras avots var būt VPN klientu pūls, bastiona privātā adrese vai NAT adrese, uz kuru datplūsma tiek tulkota. Lasiet kārtulu un faktisko paketes avotu kopā.
aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
--query 'SecurityGroups[].IpPermissions'
Kārtula viena portatīvā datora mājas adresei ir uzturēšanas problēma, nevis piekļuves dizains.
Kad ceļā ir klienta VPN vai NAT vārteja, datu bāze var redzēt tulkotāja adresi, nevis izstrādātāja tuneļa adresi. Tāpēc kārtula, kas nokopēta no strādājošas bastiona iestatījuma, var neizdoties portatīvajam datoram: divi ceļi nāk no dažādiem avotiem, lai gan abi izskatās iekšēji.
Dodiet priekšroku šauram ceļam pār platu
Kad vienam izstrādātājam vajag vienu datu bāzi, sesijā balstīta pāradresācija bieži ir lētāka ekspluatācijā nekā pilns tīkla tunelis. Vietējais klients pieslēdzas pāradresētajam portam, un attālinātā komponente izveido datu bāzes savienojumu no tīkla iekšpuses.
ssh -N -L 5432:db.internal.example:5432 bastion.internal.example
Saglabājiet TLS pārbaudi neskartu šajā dizainā. Klientam joprojām jāvalidē servera sertifikāts pret vārdu, ko tas sagaida; vietējais pāradresētais ports nav iemesls izslēgt pārbaudi, un tās izslēgšana paslēpj tieši to identitātes problēmu, ko ir vērts noķert.
Izvēle starp pilnu tuneli un šauru pāradresāciju ir lēmums par apjomu, nevis par drošības teātri.
Atstājiet aiz sevis atkārtojamu ceļu
Dokumentējiet galapunkta vārdu, nevis atrisināto adresi, avota diapazonu, ko pielaiž drošības grupa, un datu bāzes lomu, ko izmanto izstrādātājs. Šie trīs fakti izskaidro lielāko daļu nākotnes neveiksmju bez zvana. Pievienojiet arī klienta profila versiju, jo profila izmaiņas var noņemt maršrutu, ko nesa vecais.
Pēc tam vienreiz pārbaudiet negatīvo gadījumu: klientam ārpus apstiprinātā avota joprojām jābūt noraidītam.
Privāta datu bāze, kas darbojas tikai tam cilvēkam, kurš to iestatīja, nav privāta piekļuve; tā ir nedokumentēts izņēmums, kas gaida no jauna atklāšanu. Pierakstiet ceļu, un nākamais izstrādātājs mantos metodi, nevis noslēpumu.