AWS Client VPN alebo bastion na prístup k peerskému VPC
Obe cesty fungujú, ale lámu sa na rôznych miestach. Porovnajte trasy endpointu, spätné smerovanie a tri prípady, keď je bastion čestnou hranicou.
Jeden endpoint Client VPN sa dostane k VPC, ktorý je v peeringu s jeho pridruženým VPC, a na to, aby to bolo legitímne, bastion nepotrebujete. Voľba, ktorá stojí za to, je, kde prevádzka mení ruky: trasa endpointu, ktorá pristane v podsieti pridruženia a prekročí peeringové spojenie, alebo host v peerskom VPC, ktorý ukončí reláciu. Obe cesty fungujú a zlyhávajú na rôznych miestach, takže rozhodnutie je o vlastníctve a audite, nie o tom, čo dovoľuje AWS. Tu je, ako medzi nimi vyberám, a štyri záznamy, ktoré dostanú smerovanú cestu do prevádzky.
Dve cesty, jeden endpoint, rôzni vlastníci
Na smerovanej ceste sa klientska prevádzka dostane k endpointu, preloží sa na adresu sieťového rozhrania Client VPN v podsieti pridruženia a opustí túto podsieť cez peeringové spojenie z A do B. VPC B neukončuje žiadnu VPN reláciu; vidí bežnú prevádzku z VPC A, preto jeho spätná trasa ukazuje na VPC A, nie na klientov pool.
Na ceste cez bastion sa klient dostane najprv na host. Bastion v A stále necháva posledný skok prekročiť peeringové spojenie, takže si ponecháte peeringovú prácu a pridáte reláciu. Bastion v B tiež potrebuje cestu od klienta, a keď je touto cestou tá istá trasa endpointu, máte smerovaný návrh plus jeden skok. Bastion uberá prácu len vtedy, keď už existuje, už je schválený a vec za ním potrebuje hranicu relácie, nie sieťovú hranicu.
Štyri záznamy dostanú smerovanú cestu do prevádzky
AWS tento scenár dokumentuje na stránke Client VPN how-it-works a v praxi ide o štyri záznamy, ktoré vlastnia dva alebo tri tímy. Rozsahy sú ilustratívne; peerský rozsah musí byť jedinečný a spätný rozsah musí zodpovedať vášmu plánu.
| Control | What it must say |
|---|---|
| Endpoint route | 10.70.0.0/16 targets the association subnet |
| Authorization rule | The approved group may reach 10.70.0.0/16 |
| VPC A association-subnet table | 10.70.0.0/16 targets the peering connection |
| VPC B resource-subnet table | VPC A's range targets the same peering connection |
Trasa a oprávnenie sú samostatné kontroly. Správna trasa endpointu bez zodpovedajúceho autorizačného pravidla klientovi nič nedá; autorizačné pravidlo pre cieľ, ktorý endpoint nevie smerovať, mu dá čiernu dieru. Obe musia uviesť rovnaký rozsah.
Trasa endpointu ukazuje na podsieť vo vlastnom VPC endpointu, nikdy na peeringové spojenie. Smerovacie tabuľky VPC ukazujú na peeringové spojenie, nikdy na inštanciu alebo rozhranie. Skopírovanie hodnoty medzi nimi sa uloží bez námietky a nič nesmeruje.
Pretože podsieť pridruženia prekladá zdroj klienta, B musí smerovať späť do VPC A, nie do klientovho poolu. Posielať klientsky rozsah cez peeringové spojenie vyzerá symetricky, prejde revíziou a ticho zlyhá, pretože B nikdy nevidí paket so zdrojom klienta.
Bezpečnostné skupiny a posledný meter oprávnenia
Smerovanie dostane pakety do B; B stále rozhoduje. Pre aktívne peeringové spojenie v tom istom regióne môže bezpečnostná skupina v B odkazovať na skupinu použitú na pridruženie Client VPN, čo drží pravidlo úzke a prežije zmeny adries. Kde odkaz na skupinu nie je uskutočniteľný, povoľte rozsah podsiete pridruženia výslovne namiesto rozšírenia na 0.0.0.0/0, ktoré mení chybu smerovania na nevysvetliteľný časový limit.
Potom skontrolujte, čoho sa smerovanie nikdy nedotkne: sieťové ACL na oboch podsietiach, zoznam povolených alebo publikum tokenu aplikácie, a DNS. Peering nekopíruje privátne hostované zóny, takže notebook môže mať funkčnú trasu na adresu, ktorú nevie preložiť, a peeringové spojenie nepridáva dôveru certifikátu. Namieste endpoint na resolver, ktorý odpovedá za B, a potom potvrďte, že privátne meno a certifikát sedia.
Kedy je bastion čestná odpoveď
Držím tri spúšťače pre zámerný výber bastionu. Peerské VPC patrí tímu, ktorý pre váš rozsah nepridá spätnú trasu alebo neprijme odkaz na skupinu. Prístup musí byť schválený alebo zaznamenaný pre každú reláciu a aplikácia to nevie niesť sama. Alebo posledný skok musí zostať v B, pretože služba sa prekladá len tam a jej identita TLS je pripnutá k internému menu.
Nič z toho nie je obchádzkou faktu, že peering nie je tranzitívny. Netranzitívnosť obmedzuje, čo smú robiť zdroje v B: nemôžu použiť A ako tranzit do tretieho VPC, s ktorým je A v peeringu. Nikdy to neznamenalo, že používateľ VPN nemôže dosiahnuť priamo peerské VPC, a bastion postavený na obídenie tohto nesprávneho čítania je host, ktorý sa záplatuje bez dôvodu.
Opačná chyba časom stojí viac: pretlačte každý tím jediným už existujúcim bastionom a potom zistite, že jeho bezpečnostná skupina, smerovacia tabuľka a okno záplatovania sú produkčná závislosť. Zapíšte, ktorému spúšťaču host slúži, a vyraďte ho, keď spúšťač zmizne.
Transit Gateway a niekoľko pridružení menia aritmetiku
Ak je endpoint pripojený priamo k Transit Gateway namiesto k podsieti, model sa mení: klienti sa už neprekladajú na adresu rozhrania v podsieti pridruženia a smerovacie tabuľky brány musia niesť klientsky rozsah plus pripojenie vedúce k peerskému VPC. Vo veľkom je to čistejšie, ale práca sa presúva zo štyroch záznamov do smerovacích tabuliek brány.
Niekoľko pridružení násobí kontroly. Trasa endpointu patrí endpointu, ale každá podsieť pridruženia potrebuje smerovaciu tabuľku so skutočným peeringovým ďalším skokom. Relácia môže prejsť cez jedno pridruženie, kým iné nemá spätnú cestu, takže testujte každé.
Poradie overenia, ktoré rýchlo nájde zlom
Vykonávajte ich v poradí; každý krok môže prejsť, kým ďalší zlyhá, a časový limit klienta takmer nikdy nepovie, ktorý sa zlomil.
- Preložte názov aplikácie z klienta a skontrolujte, že adresa je v peerskom rozsahu.
- Pripojte sa a potom si prečítajte log spojení endpointu pre pridruženie, ktoré ukončilo reláciu.
- Na tej podsieti pridruženia potvrďte, že smerovacia tabuľka ukazuje peerský rozsah na aktívne peeringové spojenie.
- Na podsieti zdrojov v B potvrďte spätný záznam pre rozsah rozhrania a zodpovedajúce pravidlá skupiny.
- Otestujte jednu povolenú operáciu a jeden zdroj, ktorý musí zostať nedostupný; druhý zachytí zvyšky ladenia.
- Po každej zmene trasy split-tunnel sa pripojte znova, pretože bežiaci tunel neprevezme novú sadu trás.
Dva príznaky stoja za zapamätanie. SYN, ktorý dorazí do B bez odpovede, je takmer vždy chýbajúca spätná trasa. Spojenie, ktoré sa dokončí a potom resetuje, je zvyčajne skupina, ACL alebo aplikácia. Ani jedno sa v logu endpointu neobjaví ako príčina, takže držte štyri záznamy s vlastníkom pri každom.
Ak neplatí žiadny z troch spúšťačov, dokončite smerovanú cestu a zapíšte tie štyri záznamy. Ak platí jeden, držte bastion len pre tú hranicu a nechajte trasu endpointu službám, ktoré pred sebou nepotrebujú reláciu.