Кеңсе желісінен site VPN арқылы S3-ке жету статикалық маршрут жалғыз шеше алатын маршруттау мәселесі емес. Шлюз соңғы нүктесі маршрут кестелеріне тіркеледі және VPC ішінде пайда болатын сұраныстарға қызмет етеді. Интерфейс соңғы нүктесі сіздің ішкі желілеріңізде жеке мекенжайлары бар серпімді желілік интерфейстерді орналастырады және бұл мекенжайларға жергілікті жерден VPN немесе Direct Connect арқылы жетуге болады. Сұраныс қайдан басталатыны қайсысы шын мәнінде керек екенін анықтайды, ал DNS, қауіпсіздік тобы мен саясат жұмысы осы жауаптан туындайды.

Соңғы нүкте түрлерін сұраныстың қайдан басталатынына қарай бөліңіз

Шлюз соңғы нүктесі басқарылатын префикстер тізіміне нұсқайтын маршрут кестесінің жазбасы ретінде көрінеді. Оның желілік интерфейсі, қауіпсіздік тобы және өзінің жеке мекенжайы жоқ, сондықтан жергілікті хост оған маршруттай алмайды: арғы жағында маршруттайтын ештеңе жоқ. VPC ішінен келетін трафик S3-ке жетеді, өйткені ішкі желінің маршрут кестесі сол префиксті соңғы нүктеге жібереді. Басқа кез келген жерден келетін трафиктің ұстанатын мұндай жазбасы жоқ.

Интерфейс соңғы нүктесі — сіз таңдаған ішкі желілердегі желілік интерфейстер жиынтығы, әрқайсысында сол ішкі желіден жеке мекенжай және тіркелген қауіпсіздік тобы бар. Бұл гибридті клиент қолдана алатын пішін, өйткені бұл сіздің туннеліңіз пакеттерді жеткізе алатын қарапайым межелі орын. Бұл сонымен қатар соңғы нүкте ішкі желідегі мекенжайларды тұтынады және олар таусылуы мүмкін дегенді білдіреді.

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

Атауды емес, Type бағанын оқыңыз. Бір VPC әдетте бір қызмет үшін екі түрді де ұстайды, ал сіздің жергілікті қосымшаңызға қажет жазба — интерфейс жазбасы.

S3-ті сынамас бұрын интерфейс мекенжайына жол салыңыз

Үш нәрсе бір уақытта дұрыс болуы керек: жергілікті маршрутизатордың соңғы нүктенің ішкі желісіне маршруты бар, сол ішкі желіден қайтатын жол клиент желісіне жетеді және соңғы нүктенің қауіпсіздік тобы клиенттің бастау ауқымын жібереді. Үшеуі өткеннен кейін де ішкі желінің желілік ACL-і пакетті тастай алады, сондықтан оны кейінгі ой емес, төртінші тармақ ретінде тексеріңіз.

VPC-тегі қандай да бір EC2 данасына жұмыс істейтін маршрут бұның ешқайсысын дәлелдемейді. Ол туннельдің көтерілгенін көрсетеді, бұл сіз бұрыннан білетін жолдың бір бөлігі ғана. Соңғы нүктенің мекенжайын бөлек дәлелдеңіз, содан кейін атаудың сол мекенжайға шешілетінін дәлелдеңіз.

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

Бірінші пәрмен клиент қандай интерфейсті қолданатынын көрсетеді. Екіншісі TCP қол алысуын дәлелдейді. Үшіншісі TLS-тің соңғы нүкте атауына жарамды сертификатпен аяқталатынын дәлелдейді, ал рұқсаттарды кінәламас бұрын қате мекенжайды ұстайтын тексеру — осы.

Қосымша қандай DNS жауабын алатынын шешіңіз

VPC-те интерфейс соңғы нүктесінің болуы жергілікті SDK-ны өздігінен бағыттамайды. Клиент не AWS сол соңғы нүкте үшін жариялайтын соңғы нүктеге тән атауды, не сіз офисден шешілетін етіп әдейі жасаған жеке хостинг аймағын пайдаланады.

Гибридті шешу үшін жергілікті шешушіге VPC-нің DNS көрінісіне қолдау көрсетілетін жол қажет, әдетте Resolver кіріс соңғы нүктесі арқылы. Жеке DNS-ті қандай сұраныс көздеріне әсер ететінін түсінбей қосу — іздеу офис жете алмайтын мекенжайды қайтара бастайтын жол. Параметр VPC шешушісі арқылы келетін сұраныстардың жауаптарын өзгертеді, барлық жердегі әр клиенттің жауабын емес.

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

Екеуін де қосымша хостында іске қосыңыз, VPC ішіндегі секіру жәшігінде емес. Онда жауап беретін шешуші — сіздің жүктемеңіз қолданатын шешуші, ал басқа хосттан өзгеше жауап осы дизайндағы шатасудың ең көп тараған көзі.

Қолжетімділік — авторизация емес

Соңғы нүктеге жеткен сұраныс әлі де өкілеттілігі бар субъектіні және қолданылатын шелек рұқсатын қажет етеді. Соңғы нүкте саясаты нүктенің рұқсат ететінін тарылта алады, ал шелек саясаты оны тағы тарылта алады. Интерфейске жету шақырушының қандай нысандарды оқи алатыны туралы ештеңе айтпайды.

Екі бағытты да тексеріңіз: мақсатты шелекке бір зиянсыз өкілетті шақыру және саясаттан тыс сәйкестік немесе ресурс үшін қабылдамау күтілетін бір шақыру. Соңғы нүкте атауын, шешілген мекенжайды және саясат контекстін нәтижемен бірге сақтаңыз, келесі адам оны қайталай алуы үшін. Саясат түрін атайтын бас тарту бір сағат болжамды үнемдейді.

Соңында, дайындамас бұрын екі нұсқаның бағасын есептеңіз. Интерфейс соңғы нүктесі интерфейс сағаты мен гигабайт бойынша есептеледі, ал шлюз соңғы нүктесі олай емес, және бұл айырмашылық тек VPC жағынан қатынас қажет көптеген төмен көлемді жүктемелер үшін мәселені шешеді.

Қатысты мақалалар