Dostizanje S3 sa kancelarijske mreže preko site VPN-a nije rutni problem koji statična ruta može sama da reši. Krajnja tačka mrežnog prolaza priključuje se na rutne tabele i služi zahtevima 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. Gde zahtev počinje odlučuje koja od dve stvarno treba, a rad na DNS-u, sigurnosnoj grupi i politici sledi iz tog odgovora.

Razdvojite tipove krajnjih tačaka prema tome gde zahtev počinje

Krajnja tačka mrežnog prolaza pojavljuje se kao unos u rutnoj tabeli koji pokazuje na upravljanu listu prefiksa. Nema mrežni interfejs, sigurnosnu grupu ni sopstvenu privatnu adresu, i upravo zato host na lokaciji ne može da rutira 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 kog drugog mesta 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 da koristi, jer je to obično odredište do kog vaš tunel može da nosi pakete. To takođe znači da krajnja tačka troši adrese u podmreži i može da ih iscrpi.

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 pre 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 da odbaci paket nakon što sva tri prođu, pa ga proverite kao četvrtu stavku, a ne kao odloženu misao.

Ruta koja radi do neke EC2 instance u VPC-u ne dokazuje ništa od ovoga. Ona pokazuje da je tunel podignut, što je jedini deo puta koji ste već znali. Dokažite adresu krajnje tačke odvojeno, a zatim dokažite da se ime razreš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 sertifikatom važećim za ime krajnje tačke, i to je provera koja hvata pogrešnu adresu pre nego što okrivite dozvole.

Odlučite koji DNS odgovor aplikacija prima

Postojanje interfejsne krajnje tačke u VPC-u ne preusmerava 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 namerno učinili razrešivom iz kancelarije.

Za hibridno razrešavanje, razreš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 razumevanja na koje izvore upita utiče je način na koji pretraga počne da vraća adresu do koje kancelarija ne može da dođe. Postavka menja odgovore za upite koji dolaze kroz razreš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 obe na hostu aplikacije, ne na skakačkoj kutiji u VPC-u. Razreš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

Zahtev koji stigne do krajnje tačke i dalje treba ovlašćeni principijal i primenjivu dozvolu za bucket. Politika krajnje tačke može da suzi šta tačka dozvoljava, a politika bucketa može to ponovo da suzi. Dostizanje interfejsa ne govori ništa o tome koje objekte pozivalac sme da čita.

Testirajte oba smera: jedan bezopasan ovlašćeni 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, razrešenu adresu i kontekst politike uz rezultat da ga sledeća osoba može da reprodukuje. Odbijanje koje imenuje tip politike štedi sat nagađanja.

Na kraju, procenite cenu obe opcije pre 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