S3 мрежни пролаз или интерфејсна крајња тачка за клијента на локацији?
Крајње тачке мрежног пролаза живе у рутним табелама и служе VPC саобраћај. Интерфејсне крајње тачке дају путу са локације приватну адресу, плус DNS и политику.
Достизање S3 са канцеларијске мреже преко site VPN-а није рутни проблем који статична рута може сама да реши. Крајња тачка мрежног пролаза прикључује се на рутне табеле и служи захтевима који настају унутар 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 подмреже и даље може да одбаци пакет након што сва три прођу, па га проверите као четврту ставку, а не као одложену мисао.
Рута која ради до неке EC2 инстанце у VPC-у не доказује ништа од овога. Она показује да је тунел подигнут, што је једини део пута који сте већ знали. Докажите адресу крајње тачке одвојено, а затим докажите да се име разрешава на њу.
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 објављује за њу, или приватну хостовану зону коју сте намерно учинили разрешивом из канцеларије.
За хибридно разрешавање, разрешивачу на локацији треба подржан пут у DNS приказ VPC-а, обично кроз долазну крајњу тачку 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 стране.