S3-poarte of ynterface-einpunt foar in kliïnt op it plak?
Poarte-einpunten libje yn ruttetabellen en tsjinje VPC-ferkear. Ynterface-einpunten jouwe it paad op it plak in privee-adres, plus DNS en belied.
S3 berikke fan in kantoarnetwurk oer in site-VPN is gjin ruttingsprobleem dat in statyske rûte allinne oplosse kin. In poarte-einpunt is oan ruttetabellen fêstmakke en tsjinnet oanfragen dy’t binnen de VPC ûntsteane. In ynterface-einpunt set elastyske netwurkynterfaces mei privee-adressen yn jo subnetten, en dy adressen binne fan it plak ôf berikber oer VPN of Direct Connect. Wêr’t de oanfraach begjint, beslist hokker fan de twa jo echt nedich hawwe, en it DNS-, befeiligingsgroep- en beliedswurk folget út dat antwurd.
Skied de einpunttypen nei wêr’t de oanfraach begjint
In poarte-einpunt ferskynt as in ruttetabel-yngong dy’t nei in beheard foarheaksel-list wiist. It hat gjin netwurkynterface, gjin befeiligingsgroep en gjin eigen privee-adres, en dêrom krekt kin in host op it plak der net nei route: oan de oare kant is neat om nei te route. Ferkea fan binnen de VPC berikt S3 om’t de ruttetabel fan it subnet dat foarheaksel nei it einpunt stjoert. Ferkea fan earne oars hat sa’n yngong net om te folgjen.
In ynterface-einpunt is in set netwurkynterfaces yn subnetten dy’t jo kieze, elk mei in privee-adres út dat subnet en in oanheakte befeiligingsgroep. Dat is de foarm dy’t in hybride kliïnt brûke kin, om’t it in gewoane bestimming is wêr’t jo tunnel pakketten hinne drage kin. It betsjut ek dat it einpunt adressen yn it subnet ferbrûkt en se opreitsje kin.
aws ec2 describe-vpc-endpoints --query "VpcEndpoints[].{Id:VpcEndpointId,Type:VpcEndpointType,Service:ServiceName,State:State}" --output table
Lês de Type-kolom ynstee fan de namme. Ien VPC befettet faak beide soarten foar deselde tsjinst, en de yngong dy’t jo applicaasje op it plak nedich hat, is de ynterface-yngong.
Bou it paad nei it ynterface-adres foar’t jo S3 test
Trije dingen moatte tagelyk wier wêze: de router op it plak hat in rûte nei it subnet fan it einpunt, it werompaad fan dat subnet berikt it kliïntnetwurk, en de befeiligingsgroep fan it einpunt lit it boarnespektrum fan de kliïnt troch. De netwurk-ACL fan it subnet kin it pakket noch altyd falle litte nei’t alle trije slagge binne, dus kontrolearje it as fjirde punt en net as in neitins.
In wurkjend paad nei in EC2-ynstânsje yn de VPC bewiist hjir neat fan. It lit sjen dat de tunnel oan is, wat it iene part fan it paad is dat jo al wisten. Bewiis it einpuntadres apart, en bewiis dêrnei dat de namme dêrnei oplost.
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
It earste kommando lit sjen hokker ynterface de kliïnt brûke soe. It twadde bewiist in TCP-hânprint. It tredde bewiist dat TLS foltôget mei in sertifikaat dat jildich is foar de einpuntnamme, en dat is de kontrôle dy’t in ferkeard adres fangt foar’t jo de tastimmingen de skuld jouwe.
Beslis hokker DNS-antwurd de applicaasje kriget
It bestean fan in ynterface-einpunt yn de VPC ferwiisd in SDK op it plak net fan sels. De kliïnt brûkt óf de einpuntspecifike namme dy’t AWS foar dat einpunt publisearret, óf in privee hoste sône dy’t jo bewust fan it kantoar ôf oplosber makke hawwe.
Foar hybride oplossing hat de oplosser op it plak in stipe paad nedich nei de DNS-finster fan de VPC, meastentiids fia in ynkommend Resolver-einpunt. Privee DNS ynskeakelje sûnder te begripen hokker oanfraachboarnen it rekket, is hoe’t in sykjen in adres begjint werom te jaan dat it kantoar net berikke kin. De ynstelling feroaret antwurden foar oanfragen dy’t fia de VPC-oplosser komme, net foar elke kliïnt oeral.
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
Rin beide op de host fan de applicaasje, net op in springkast yn de VPC. De oplosser dy’t dêr antwurdet is dejinge dy’t jo wurklêst brûkt, en in oar antwurd fan in oare host is de meast foarkommende boarne fan betizing yn dit ûntwerp.
Berikberens is gjin autorysasje
In oanfraach dy’t by it einpunt oankomt hat noch hieltyd in autorisearre prinsipaal en in tapaslike boarne-tastimming nedich. In einpuntbelied kin beheine wat it einpunt tastiet, en in boarnebelied kin it nochris beheine. It ynterface berikke seit neat oer hokker objekten de oanropper lêze mei.
Test beide rjochtingen: ien ûnskiedlik autorisearre oprop tsjin de bedoelde boarne, en ien oprop dy’t nei ferwachting wegere wurdt foar in identiteit of boarne bûten it belied. Bewarje de einpuntnamme, it oploste adres en de beliedskontekst by it resultaat, sadat de folgjende persoan it reprodusearje kin. In wegering dy’t it beliedstype neamt, sparret in oere rieden.
Prysje úteinlik de twa opsjes foar’t jo se ynrjochtsje. In ynterface-einpunt fakturearret per ynterface-oere en per gigabyte, wylst in poarte-einpunt dat net docht, en dat ferskil beslist de fraach foar in protte wurklêsten mei leech folume dy’t allinnich tagong fan de VPC-kant nedich hawwe.