Puncte:0

Site-ul static AWS S3 vs CloudFront OIA

drapel si

Se pare că există două moduri de a găzdui un site web static pe S3/CloudFront.

  1. Creați găleată S3 cu acces public complet și site-ul static setat la Activat + configurație CloudFront
  2. Creați compartiment S3 fără acces public și site-ul static setat la Dezactivat + configurație CloudFront

Ceea ce nu îmi place la (1) este textul roșu „NU FACEȚI ASTA” pentru acces public. Dar funcționează perfect.

Ceea ce nu îmi place la (2) este că pierd site-ul static setat la Beneficii activate, cum ar fi tot ce este redirecționat automat către index.html. Acum văd că există o originea rădăcinii obiect în setările CloudFront, dar acest lucru funcționează numai pentru domeniul meu de bază (de ex mysite.com). Site-ul meu este un SPA și cu (1) dacă merg la mysite.com/profile ar merge corect la mysite.com/index.html Cred că din cauza redirecționării 404 am configurat-o. Dar cu (2) mergând la mysite.com/profile nu este un 404, ci mai degrabă un acces 403 refuzat, ceea ce nu cred că este inteligent să îl redirecționezi ca 404.

Deci ar trebui să rămân cu opțiunea (1) chiar și cu textul roșu strălucitor despre accesul public? Sau există o modalitate adecvată de a face un SPA fără acces public/găzduire statică a site-ului web?

Puncte:1
drapel gp
Tim

Avertismentul de acces public poate fi ignorat în siguranță pentru site-urile web găzduite pe S3. Bucheta/fișierele sunt în mod deliberat publice. AWS ar trebui probabil să dezactiveze acel avertisment atunci când găzduirea site-ului este activată.

O distribuție CloudFront va oferi, în mod evident, performanțe mai bune, dar pentru o aplicație cu o singură pagină s-ar putea să nu fie suficient de semnificativă pentru a vă deranja apelul pe baza cunoștințelor utilizatorilor / aplicației dvs. În loc să vă bazați pe serverul web pentru a emite redirecționări, nu o puteți codifica în aplicația dvs., astfel încât linkurile să fie așa cum doriți? Puteți face redirecționări cu CloudFront@Edge, dar asta necesită muncă suplimentară și adaugă un anumit nivel de costuri suplimentare.

pbuzz007 avatar
drapel si
Bănuiesc că celălalt „nu-mi place” despre găzduirea publică S3 este că oamenii pot accesa printr-o adresă URL cum ar fi `https://mything.s3.us-east-2.amazonaws.com/index.html`. Dar asta e mare lucru? chiar nu stiu.
Tim avatar
drapel gp
Tim
Nu văd cum ar fi o problemă a doua adresă URL. Puteți exclude roboți folosind robots.txt.
pbuzz007 avatar
drapel si
Bine. Mi-am petrecut toată ziua cu asta și am un sentiment rău că acordarea accesului public înseamnă, de asemenea, că oricine are un cont AWS poate scrie într-o găleată? Cred că asta pentru că am creat un al doilea bucket pentru a fi unul „securizat” în care doar unul dintre utilizatorii mei IAM poate scrie. Dar am găsit că singura modalitate de a folosi SDK-ul AWS era să activez accesul public la găleată! Ahhh.. poate cineva să scrie la o găleată publică?
Tim avatar
drapel gp
Tim
Controlați accesul cu politica dvs. de compartiment https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html
Puncte:0
drapel cn

Eu as opta pentru a doua varianta. Bucket-ul S3 rămâne privat, cu acces numai pentru citire acordat identității de acces la origine cloudfront (OAI). Și vă asigurați că solicitările sunt optimizate prin cloudfront, spre deosebire de punctul final al site-ului s3.

Pentru a ocoli rezolvarea index.html, puteți folosi fie funcțiile lambda@edge, fie funcțiile cloudfront. Există un exemplu pentru acesta din urmă în documentele AWS:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/example-function-add-index.html

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.