6

Sto tentando di accedere a un file html che risiede nell'S3 da una richiesta Ajax e ho ottenuto l'errore 403.AWS S3 CORS 403 Errore con richiesta OPZIONI

Ho letto l'AWS online che, se faccio qualcosa del genere, ho bisogno di impostare le regole AWS CORS per correggere l'errore 403.

Tuttavia, ho provato due giorni e non ho fortuna. Qui è la mia configurazione CORS:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>*</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <ExposeHeader>XMLHttpRequest</ExposeHeader> 
    <AllowedHeader>x-csrftoken</AllowedHeader> 
</CORSRule> 
</CORSConfiguration> 

E la mia richiesta HTTP assomiglia:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Access-Control-Request-He... x-csrftoken 
Access-Control-Request-Me... GET 
Connection keep-alive 
Host xxxxxxxxx.cloudfront.net 
Origin http://localhost:8000 
User-Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 

Qualcuno mi può aiutare a vedere che cosa ho mancato?

Grazie!

+0

Risulta che il problema non è S3 ma cloudfront. Qualcuno ha provato a inoltrare la configurazione CORS da S3 a cloudfront? –

risposta

0

HTTP 403 (Frobidden) non significa necessariamente che è necessario CORS. Un'opzione è avere tutte le richieste di cloudfront (stessa origine) e, nella tua distribuzione, diverse origini e comportamenti. Es:

Beavior -> Origin 

/api/* -> my.api.com 
/static/* -> my.s3.bucket 

Ma se effettivamente bisogno le richieste cross-origine, Le intestazioni CORS devono essere trasmessi dalla CloudFront e avere lo stesso comportamento, nel tuo esempio che probabilmente vuole essere più permissiva con le intestazioni che si permettono (<AllowedHeader>*</AllowedHeader> ?). Ma questo sarebbe più correlato al comportamento del browser rispetto a CLoudFront o S3.

Problemi correlati