Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi relativi a CORS
I seguenti argomenti possono aiutarti a risolvere alcuni problemi comuni CORS relativi a S3.
Argomenti
403 Errore proibito: non CORS è abilitato per questo bucket
Il seguente 403 Forbidden
errore si verifica quando una richiesta multiorigine viene inviata ad Amazon S3 CORS ma non è configurata sul bucket S3.
Errore: HTTP/1.1 403 Forbidden CORS Response: non abilitato per CORS questo
bucket.
La CORS configurazione è un documento o una policy con regole che identificano le origini a cui consentirai l'accesso al tuo bucket, le operazioni (HTTPmetodi) che supporterai per ciascuna origine e altre informazioni specifiche sull'operazione. Scopri come configurare CORS su S3 utilizzando la console AWS SDKs Amazon S3 e. REST API Per ulteriori informazioni CORS ed esempi di CORS configurazione, consulta Elements of. CORS
403 Errore proibito: questa CORS richiesta non è consentita
Il seguente 403 Forbidden
errore viene ricevuto quando una CORS regola nella CORS configurazione non corrisponde ai dati della richiesta.
Errore: HTTP/1.1 403 CORS Risposta proibita: questa CORS richiesta non è
consentita.
Di conseguenza, questo 403 Forbidden
errore può verificarsi per diversi motivi:
-
L'origine non è consentita.
-
I metodi non sono consentiti.
-
Le intestazioni richieste non sono consentite.
Per ogni richiesta ricevuta da Amazon S3, è necessario disporre di una CORS regola nella CORS configurazione che corrisponda ai dati contenuti nella richiesta.
L'origine non è consentita
L'Origin
intestazione di una CORS richiesta al tuo bucket deve corrispondere alle origini dell'AllowedOrigins
elemento nella tua CORS configurazione. Un carattere jolly ("*"
) nell'AllowedOrigins
elemento corrisponderebbe a tutti i metodi. HTTP Per ulteriori informazioni su come aggiornare l'AllowedOrigins
elemento, vedete Configurazione della condivisione di risorse tra origini diverse (). CORS
Ad esempio, se nell'AllowedOrigins
elemento è incluso solo il http://www.example1.com
dominio, una CORS richiesta inviata dal http://www.example2.com
dominio riceverà l'errore. 403
Forbidden
L'esempio seguente mostra parte di una CORS configurazione che include il http://www.example1.com
dominio nell'AllowedOrigins
elemento.
"AllowedOrigins":[ "http://www.example1.com" ]
CORSAffinché una richiesta inviata dal http://www.example2.com
dominio abbia esito positivo, il http://www.example2.com
dominio deve essere incluso nell'AllowedOrigins
elemento di CORS configurazione.
"AllowedOrigins":[ "http://www.example1.com" "http://www.example2.com" ]
I metodi non sono consentiti
I HTTP metodi specificati Access-Control-Request-Method
in una CORS richiesta al bucket devono corrispondere al metodo o ai metodi elencati nell'AllowedMethods
elemento della CORS configurazione. Un carattere jolly ("*"
) in AllowedMethods
corrisponderebbe a tutti i HTTP metodi. Per ulteriori informazioni su come aggiornare l'AllowedOrigins
elemento, vedete Configurazione della condivisione di risorse tra origini diverse (). CORS
In una CORS configurazione, è possibile specificare i seguenti metodi nell'AllowedMethods
elemento:
-
GET
-
PUT
POST
-
DELETE
-
HEAD
L'esempio seguente mostra parte di una CORS configurazione che include il GET
metodo nell'AllowedMethods
elemento. Solo le richieste che includono il GET
metodo avrebbero esito positivo.
"AllowedMethods":[ "GET" ]
Se un HTTP metodo (ad esempio,PUT
) è stato utilizzato in una CORS richiesta o incluso in una CORS richiesta preliminare al bucket ma il metodo non è presente nella CORS configurazione, la richiesta genererebbe un 403 Forbidden
errore. Per consentire questa CORS richiesta o richiesta CORS prima del volo, il PUT
metodo deve essere aggiunto alla configurazione. CORS
"AllowedMethods":[ "GET" "PUT" ]
Le intestazioni richieste non sono consentite
Le intestazioni elencate nell'Access-Control-Request-Headers
intestazione in una richiesta precedente al volo devono corrispondere alle intestazioni dell'elemento della AllowedHeaders
configurazione. CORS Per un elenco di intestazioni comuni che possono essere utilizzate nelle richieste ad Amazon S3, consulta Common Request Headers. Per ulteriori informazioni su come aggiornare l'AllowedHeaders
elemento, consulta Configurazione della condivisione delle risorse tra le origini (). CORS
L'esempio seguente mostra parte di una CORS configurazione che include l'Authorization
intestazione nell'elemento. AllowedHeaders
Solo le richieste per l'Authorization
intestazione avrebbero esito positivo.
"AllowedHeaders": [ "Authorization" ]
Se un'intestazione (ad esempio) Content-MD5
è stata inclusa in una CORS richiesta ma l'intestazione non è presente nella CORS configurazione, la richiesta genererebbe un errore. 403 Forbidden
Per consentire questa CORS richiesta, l'Content-MD5
intestazione deve essere aggiunta alla configurazione. CORS Se vuoi passare entrambe Authorization
le Content-MD5
intestazioni di una CORS richiesta al tuo bucket, conferma che entrambe le intestazioni siano incluse nell'AllowedHeaders
elemento della tua configurazione. CORS
"AllowedHeaders": [ "Authorization" "Content-MD5" ]
Intestazioni non trovate in risposta CORS
L'ExposeHeaders
elemento della CORS configurazione identifica le intestazioni di risposta che si desidera rendere accessibili agli script e alle applicazioni in esecuzione nei browser, in risposta a una richiesta. CORS
Se gli oggetti archiviati nel bucket S3 contengono metadati definiti dall'utente (ad esempiox-amz-meta-custom-header
) oltre ai dati di risposta, questa intestazione personalizzata potrebbe contenere metadati o informazioni aggiuntivi a cui desideri accedere dal codice lato client. JavaScript Tuttavia, per impostazione predefinita, i browser bloccano l'accesso alle intestazioni personalizzate per motivi di sicurezza. Per consentire al lato client di accedere JavaScript alle intestazioni personalizzate, è necessario includere l'intestazione nella configurazione. CORS
Nell'esempio seguente, l'x-amz-meta-custom-header1
intestazione è inclusa nell'elemento. ExposeHeaders
x-amz-meta-custom-header2
Non è incluso nell'ExposeHeaders
elemento e manca nella CORS configurazione. Nella risposta, verranno restituiti solo i valori inclusi nell'ExposeHeaders
elemento. Se la richiesta includesse l'x-amz-meta-custom-header2
intestazione nell'Access-Control-Expose-Headers
intestazione, la risposta restituirebbe comunque a. 200 OK
Tuttavia, solo l'intestazione consentita, ad esempio, x-amz-meta-custom-header
verrebbe restituita e mostrata nella risposta.
"ExposeHeaders": [ "x-amz-meta-custom-header1" ]
Per assicurarti che tutte le intestazioni compaiano nella risposta, aggiungi tutte le intestazioni consentite all'ExposeHeaders
elemento nella tua CORS configurazione come mostrato di seguito.
"ExposeHeaders": [ "x-amz-meta-custom-header1", "x-amz-meta-custom-header2" ]
Considerazioni sulle integrazioni proxy CORS S3
Se riscontri errori e hai già controllato la CORS configurazione sul tuo bucket S3 e la richiesta multiorigine viene inviata a proxy come, prova quanto segue: AWS CloudFront
-
Configura le impostazioni per consentire il metodo per le richieste.
OPTIONS
HTTP -
Configura il proxy per inoltrare le seguenti intestazioni:
Origin
Access-Control-Request-Headers
, eAccess-Control-Request-Method
.
Alcuni proxy forniscono funzionalità predefinite per le richieste. CORS Ad esempio, in CloudFront, puoi configurare una policy che includa le intestazioni che abilitano le CORS richieste quando l'origine è un bucket S3. Per ulteriori informazioni, consulta Controllare le richieste di origine con una policy e Use managed Origin Request policy nella Developer Guide. CloudFront