Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS) - Amazon Simple Storage Service

Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS)

La funzionalità CORS (Cross-Origin Resource Sharing, condivisione delle risorse multiorigine) definisce un metodo con cui le applicazioni Web dei clienti caricate in un dominio possono interagire con le risorse situate in un dominio differente. Con il supporto della funzionalità CORS, è possibile creare applicazioni Web lato client complete con Amazon S3 e concedere l'accesso multiorigine alle risorse di Amazon S3 in modo selettivo.

In questa sezione viene fornita una panoramica della funzionalità CORS. Negli argomenti secondari viene descritto come abilitare la funzionalità CORS con la console Amazon S3 oppure, in modo programmatico, con REST API di Amazon S3 e gli SDK AWS.

Cross Origin Resource Sharing (CORS): scenari dei casi d'uso

Di seguito sono riportati alcuni scenari di esempio per l'uso della funzionalità CORS.

Scenario 1

Si supponga di ospitare un sito Web in un bucket Amazon S3 denominato website, come descritto in Hosting di un sito Web statico tramite Amazon S3. Gli utenti caricano l'endpoint del sito Web:

http://website.s3-website.us-east-1.amazonaws.com

A questo punto è possibile utilizzare JavaScript nelle pagine Web archiviate in questo bucket per poter eseguire richieste GET e PUT autenticate nello stesso bucket utilizzando l'endpoint dell'API di Amazon S3 per il bucket, website.s3.us-east-1.amazonaws.com. Normalmente un browser impedirebbe a JavaScript di consentire queste richieste, ma grazie alla funzionalità CORS è possibile configurare il bucket in modo da consentire esplicitamente le richieste multiorigine da website.s3-website.us-east-1.amazonaws.com.

Scenario 2

Si supponga di voler ospitare un font Web dal bucket S3. Anche in questo caso, i browser richiedono un controllo della funzionalità CORS (anche denominato "controllo preliminare") per il caricamento dei font Web. È necessario configurare il bucket che ospita il font Web in modo da consentire a qualsiasi origine di eseguire queste richieste.

In che modo Amazon S3 valuta la configurazione CORS in un bucket?

Quando Amazon S3 riceve una richiesta preliminare da un browser, valuta la configurazione CORS per il bucket e utilizza la prima regola CORSRule corrispondente alla richiesta del browser in entrata per abilitare una richiesta multiorigine. Per garantire la corrispondenza tra la regola e la richiesta, è necessario che siano soddisfatte le condizioni elencate di seguito.

  • L'intestazione Origin della richiesta deve corrispondere a un elemento AllowedOrigin.

  • Il metodo della richiesta (ad esempio, GET o PUT) o l'intestazione Access-Control-Request-Method in caso di richiesta OPTIONS preliminare deve essere uno degli elementi AllowedMethod.

  • Ogni intestazione elencata nell'intestazione Access-Control-Request-Headers nella richiesta preliminare deve corrispondere a un elemento AllowedHeader.

Nota

Le ACL e le policy continuano a essere valide quando si abilita la funzionalità CORS nel bucket.

Per ulteriori informazioni sull'uso di CORS, consulta gli argomenti riportati di seguito.