Dostizanje S3 sa kancelarijske mreže preko site VPN-a nije rutni problem koji statična ruta može sama riješiti. Krajnja tačka mrežnog prolaza se priključuje na rutne tabele i služi zahtjeve koji nastaju unutar VPC-a. Interfejsna krajnja tačka postavlja elastične mrežne interfejse sa privatnim adresama u vaše podmreže, a te adrese su dostupne sa lokacije preko VPN-a ili Direct Connect-a. Gdje zahtjev počinje odlučuje koja od dvije stvarno trebate, a rad na DNS-u, sigurnosnoj grupi i politici slijedi iz tog odgovora.

Razdvojite tipove krajnjih tačaka prema tome gdje zahtjev počinje

Krajnja tačka mrežnog prolaza se pojavljuje kao unos u rutnoj tabeli koji pokazuje na upravljanu listu prefiksa. Nema mrežni interfejs, sigurnosnu grupu ni vlastitu privatnu adresu, i upravo zato host na lokaciji ne može rutirati do nje: na drugoj strani nema ničega ka čemu bi se rutiralo. Saobraćaj iz VPC-a stiže do S3 jer rutna tabela podmreže šalje taj prefiks na krajnju tačku. Saobraćaj sa bilo kojeg drugog mjesta nema takav unos da ga prati.

Interfejsna krajnja tačka je skup mrežnih interfejsa u podmrežama koje odaberete, svaki sa privatnom adresom iz te podmreže i priključenom sigurnosnom grupom. To je oblik koji hibridni klijent može koristiti, jer je to obično odredište do kojeg vaš tunel može nositi pakete. To također znači da krajnja tačka troši adrese u podmreži i može ih iscrpiti.

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

Čitajte kolonu Type, a ne ime. Jedan VPC obično drži oba tipa za istu uslugu, a unos koji vaša aplikacija na lokaciji treba je interfejsni.

Izgradite put do adrese interfejsa prije testiranja S3

Tri stvari moraju biti istovremeno tačne: ruter na lokaciji ima rutu do podmreže krajnje tačke, povratni put iz te podmreže stiže do klijentske mreže, i sigurnosna grupa krajnje tačke prima izvorni opseg klijenta. Mrežni ACL podmreže i dalje može odbaciti paket nakon što sva tri prođu, pa ga provjerite kao četvrtu stavku, a ne kao odgođenu misao.

Ruta koja radi do nekog EC2 instance u VPC-u ne dokazuje ništa od ovoga. Ona pokazuje da je tunel podignut, što je jedini dio puta koji ste već znali. Dokažite adresu krajnje tačke odvojeno, a zatim dokažite da se ime razrješava na nju.

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

Prva komanda pokazuje koji bi interfejs klijent koristio. Druga dokazuje TCP rukovanje. Treća dokazuje da se TLS završava sa certifikatom važećim za ime krajnje tačke, i to je provjera koja hvata pogrešnu adresu prije nego okrivite dozvole.

Odlučite koji DNS odgovor aplikacija prima

Postojanje interfejsne krajnje tačke u VPC-u ne preusmjerava SDK na lokaciji samo po sebi. Klijent ili koristi ime specifično za krajnju tačku koje AWS objavljuje za nju, ili privatnu hostovanu zonu koju ste namjerno učinili razrješivom iz kancelarije.

Za hibridno razrješavanje, razrješivaču na lokaciji treba podržan put u DNS prikaz VPC-a, obično kroz dolaznu krajnju tačku Resolvera. Uključivanje privatnog DNS-a bez razumijevanja na koje izvore upita utiče je način na koji pretraga počne vraćati adresu do koje kancelarija ne može doći. Postavka mijenja odgovore za upite koji dolaze kroz razrješivač VPC-a, ne za svakog klijenta svuda.

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

Pokrenite obje na hostu aplikacije, ne na skakačkoj kutiji u VPC-u. Razrješivač koji tamo odgovara je onaj koji vaš posao koristi, a drugačiji odgovor sa drugog hosta je najčešći izvor zabune u ovom dizajnu.

Dostupnost nije autorizacija

Zahtjev koji stigne do krajnje tačke i dalje treba ovlašteni principijal i primjenjivu dozvolu za bucket. Politika krajnje tačke može suziti šta tačka dozvoljava, a politika bucketa može to ponovo suziti. Dostizanje interfejsa ne govori ništa o tome koje objekte pozivalac smije čitati.

Testirajte oba smjera: jedan bezopasni ovlašteni poziv prema predviđenom bucketu i jedan poziv za koji se očekuje odbijanje za identitet ili resurs izvan politike. Čuvajte ime krajnje tačke, razriješenu adresu i kontekst politike uz rezultat da ga sljedeća osoba može reproducirati. Odbijanje koje imenuje tip politike štedi sat nagađanja.

Na kraju, procijenite cijenu obje opcije prije postavljanja. Interfejsna krajnja tačka se naplaćuje po satu interfejsa i po gigabajtu, dok se mrežni prolaz ne naplaćuje tako, i ta razlika odlučuje pitanje za mnoga opterećenja malog obima kojima treba samo pristup sa VPC strane.

Povezani članci