Pasiekti S3 iš biuro tinklo per svetainės VPN nėra maršrutizavimo problema, kurią statinis maršrutas galėtų išspręsti vienas. Tarpinės sistemos galinis taškas prijungiamas prie maršrutų lentelių ir aptarnauja užklausas, kylančias VPC viduje. Sąsajos galinis taškas jūsų potinkliuose įdeda elastines tinklo sąsajas su privačiais adresais, ir šiuos adresus galima pasiekti iš vietos per VPN arba Direct Connect. Nuo to, kur prasideda užklausa, priklauso, kurio iš dviejų jums iš tikrųjų reikia, o DNS, saugos grupės ir politikos darbas kyla iš to atsakymo.

Atskirkite galinių taškų tipus pagal tai, kur prasideda užklausa

Tarpinės sistemos galinis taškas pasirodo kaip maršrutų lentelės įrašas, nurodantis į valdomą priešdėlių sąrašą. Jis neturi tinklo sąsajos, saugos grupės ir savo privataus adreso, ir būtent todėl vietinis mazgas negali į jį maršrutizuoti: kitoje pusėje nėra ko maršrutizuoti. Srautas iš VPC vidaus pasiekia S3, nes potinklio maršrutų lentelė siunčia tą priešdėlį galiniam taškui. Srautas iš bet kur kitur neturi tokio įrašo, kuriuo galėtų sekti.

Sąsajos galinis taškas yra tinklo sąsajų rinkinys jūsų pasirinktuose potinkliuose, kiekviena su privačiu adresu iš to potinklio ir prijungta saugos grupe. Tai forma, kurią gali naudoti hibridinis klientas, nes tai įprasta paskirties vieta, į kurią jūsų tunelis gali nešti paketus. Tai taip pat reiškia, kad galinis taškas naudoja potinklio adresus ir jų gali pritrūkti.

aws ec2 describe-vpc-endpoints --query "VpcEndpoints[].{Id:VpcEndpointId,Type:VpcEndpointType,Service:ServiceName,State:State}" --output table

Skaitykite Type stulpelį, o ne pavadinimą. Viename VPC dažnai būna abiejų tipų tai pačiai paslaugai, o įrašas, kurio reikia jūsų vietinei programai, yra sąsajos įrašas.

Nutieskite kelią iki sąsajos adreso prieš testuodami S3

Trys dalykai turi būti teisingi vienu metu: vietinis maršrutizatorius turi maršrutą į galinio taško potinklį, grįžtamasis kelias iš to potinklio pasiekia kliento tinklą, o galinio taško saugos grupė leidžia kliento šaltinio diapazoną. Potinklio tinklo ACL vis tiek gali atmesti paketą po to, kai visi trys įvykdyti, todėl patikrinkite jį kaip ketvirtą punktą, o ne kaip vėlyvą mintį.

Veikiantis maršrutas į kokią nors EC2 instanciją VPC viduje nieko iš to neįrodo. Jis rodo, kad tunelis pakeltas, o tai vienintelė kelio dalis, kurią jau žinojote. Įrodykite galinio taško adresą atskirai, tada įrodykite, kad vardas į jį išsprendžiamas.

ip route get 10.60.4.37
nc -vz 10.60.4.37 443
openssl s_client -connect 10.60.4.37:443 -servername bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com </dev/null

Pirmoji komanda parodo, kurią sąsają klientas naudotų. Antroji įrodo TCP rankos paspaudimą. Trečioji įrodo, kad TLS baigiasi galinio taško vardui galiojančiu sertifikatu, ir būtent šis patikrinimas pagauna neteisingą adresą prieš kaltinant leidimus.

Nuspręskite, kokį DNS atsakymą gauna programa

Sąsajos galinio taško buvimas VPC viduje savaime neperadresuoja vietinio SDK. Klientas naudoja arba galiniam taškui būdingą vardą, kurį AWS paskelbia tam taškui, arba privačią talpinamąją zoną, kurią sąmoningai padarėte išsprendžiamą iš biuro.

Hibridiniam sprendimui vietiniam sprendėjui reikia palaikomo kelio į VPC DNS vaizdą, dažniausiai per Resolver įeinantį galinį tašką. Privačiojo DNS įjungimas nesuprantant, kuriuos užklausų šaltinius jis veikia, yra būdas, kuriuo paieška pradeda grąžinti adresą, į kurį biuras negali patekti. Nustatymas keičia atsakymus užklausoms, ateinančioms per VPC sprendėją, o ne kiekvienam klientui visur.

dig +short bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com
aws s3api head-bucket --bucket example-artifacts --endpoint-url https://bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com

Paleiskite abi programos mazge, o ne šuolio dėžėje VPC viduje. Ten atsakantis sprendėjas yra tas, kurį naudoja jūsų darbo krūvis, o kitoks atsakymas iš kito mazgo yra dažniausia painiavos priežastis šiame projekte.

Pasiekiamumas nėra autorizacija

Užklausai, pasiekusiai galinį tašką, vis dar reikia įgalioto subjekto ir taikomo kaušo leidimo. Galinio taško politika gali susiaurinti, ką galinis taškas leidžia, o kaušo politika gali tai dar labiau susiaurinti. Pasiekti sąsają nieko nesako apie tai, kuriuos objektus kvietėjas gali skaityti.

Išbandykite abi kryptis: vieną nekenksmingą įgaliotą kvietimą į numatytą kaušą ir vieną kvietimą, kuris turėtų būti atmestas dėl tapatybės ar ištekliaus už politikos ribų. Išsaugokite galinio taško vardą, išspręstą adresą ir politikos kontekstą kartu su rezultatu, kad kitas žmogus galėtų tai atkartoti. Atmetimas, įvardijantis politikos tipą, sutaupo valandą spėliojimų.

Galiausiai įvertinkite abiejų variantų kainą prieš diegdami. Sąsajos galinis taškas apmokestinamas už sąsajos valandą ir už gigabaitą, o tarpinės sistemos galinis taškas ne, ir šis skirtumas nulemia atsakymą daugeliui mažos apimties darbo krūvių, kuriems reikia tik prieigos iš VPC pusės.

Susiję straipsniai