Próbuję skonfigurować prostą stronę internetową opartą na Amazon AWS S3, jak wyjaśniono tutaj .
Skonfigurowałem wiadro S3 (simples3websitetest.com), nadałem mu (mam nadzieję) odpowiednie uprawnienia:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::simples3websitetest.com/*"
]
}
]
}
Przesłałem index.html, skonfigurowałem dostęp do strony internetowej i jest on dostępny przez http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html
Jak dotąd tak dobrze, teraz chcę skonfigurować dostęp do Amazon Route53 i właśnie tam utknąłem.
Skonfigurowałem strefę hostowaną w domenie, którą jestem właścicielem (resourcesbox.net), i kliknąłem „utwórz zestaw rekordów” i przeszedłem do kroku „alias konfiguracji”, ale gdy „ spróbuj ustawić cel aliasu.
Co mnie ominęło??
amazon-web-services
website
amazon-s3
alias
amazon-route53
Amir Zucker
źródło
źródło
Odpowiedzi:
Utworzony alias rekordu A musi być taki sam jak nazwa segmentu, ponieważ wirtualny hosting segmentów w S3 wymaga, aby
Host:
nagłówek wysłany przez przeglądarkę pasował do nazwy segmentu. Tak naprawdę nie ma innego praktycznego sposobu, w jaki można osiągnąć wirtualny hosting wiader ... wiadro musi być identyfikowane przez jakiś mechanizm, a tym mechanizmem są nagłówki http.Aby utworzyć alias do segmentu w domenie „przyklad.com”, nazwa segmentu musi być także nazwą hosta, którą można legalnie zadeklarować w tej domenie ... testbucket trasy 53. przykład .com ”, na przykład, można aliasować tylko do segmentu o nazwie„ testbucket.example.com ”... i żadnego innego segmentu.
W swoim pytaniu łamiesz to ograniczenie ... ale możesz tylko utworzyć alias do segmentu o nazwie „simples3websitetest.com” w (i na szczycie) domeny „simples3websitetest.com”.
Jest to zgodne z projektem i nie jest to dokładnie ograniczenie Trasy 53 ani S3. Uniemożliwiają ci robienie czegoś, co nie może działać. Serwery sieciowe nie są świadome aliasingu, nazw CNAME ani niczego innego wykonanego w DNS - otrzymują tylko oryginalną nazwę hosta, z którą przeglądarka podejrzewa, że próbuje się połączyć, w nagłówkach http wysyłanych przez przeglądarkę ... i S3 używa tego informacje identyfikujące nazwę segmentu, do którego odnosi się wirtualne żądanie hostowane.
Pamiętaj jednak, że to ograniczenie obowiązuje tylko wtedy, gdy nie używasz CloudFront przed wiadrem.
Dzięki CloudFront istnieje większa elastyczność, ponieważ
Host:
nagłówek może zostać przepisany (przez sam CloudFront) przed przekazaniem żądania do S3. Konfigurujesz „hosta początkowego” w swojej dystrybucji CloudFront jakoyour-bucket.s3-website-xx-yyyy-n.amazonaws.com
gdzie xx-rrrr-n to region AWS S3, w którym został utworzony Twój segment. Ten punkt końcowy jest pokazany w konsoli S3 dla każdego segmentu.źródło
alias
rekordów Route 53 wskazujących na segmenty S3 z włączonym hostowaniem witryn internetowych, co powoduje, że DNS rozpoznaje punkt końcowy strony internetowej, a nie punkt końcowy REST. Punkty końcowe witryny sieci Web w ogóle nie obsługują protokołu SSL ; robią to tylko punkty końcowe REST. Ponadto wszystkie certyfikaty z symbolami wieloznacznymi obsługują tylko maksymalnie jeden*
i mogą pojawiać się tylko w lewym polu nazwy hosta, więc tak naprawdę nie jest to ograniczenie S3.https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
. Zły regionalny punkt końcowy = błąd przekierowania.Załóżmy, że masz strefę hostowaną abc.com. i tworzysz segment abc.com (który nie pojawia się na liście w aliasach tras) - możesz myśleć, że to. po nazwie - za pomocą której nie można nazwać wiader
Spróbuj tego również. Ponieważ po raz pierwszy utworzyłem wiadro z poprawną nazwą i nadal nie działało. Uwierz mi, że mam OCD, więc nie przegapiłem kropki ani przecinka.
Pomogło mi to wypróbować prawie wszystko - niektóre sugestie, które widzę, to wylogowanie i zalogowanie się w celu wyczyszczenia pamięci podręcznej - nie jestem pewien
źródło