View a markdown version of this page

Cross-origin supporto per la condivisione delle risorse e Amazon EC2 - Amazon Elastic Compute Cloud

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à.

Cross-origin supporto per la condivisione delle risorse e Amazon EC2

L'API Amazon EC2 supporta la condivisione di risorse tra origini (CORS). CORS definisce un modo per le applicazioni web dei client caricate in un dominio di interagire con le risorse di un dominio diverso. Per ulteriori informazioni, consulta la raccomandazione del W3C sulla condivisione Cross-Origin delle risorse. Con il supporto CORS per Amazon EC2, puoi creare ricche applicazioni web lato client che utilizzano l'API Amazon EC2. Ad esempio, supponiamo che tu stia ospitando un sito Web e desideri utilizzarlo JavaScript sulle tue pagine Web per effettuare richieste all'API Amazon EC2. mywebsite.example.com Normalmente, un browser JavaScript impedisce l'autorizzazione di queste richieste, ma con CORS puoi effettuare chiamate API Amazon EC2 tra diverse origini da. mywebsite.example.com

CORS è già abilitato per l'API Amazon EC2 ed è pronto all'uso. Non è necessario eseguire alcuna procedura di configurazione aggiuntiva per iniziare a utilizzare questa funzionalità. Il modo in cui effettui le chiamate all'API Amazon EC2 non è modificato; devono comunque essere firmate con AWS credenziali valide per garantire che AWS possano autenticare il richiedente. Per ulteriori informazioni, consulta Signing AWS API requests nella IAM User Guide.

L'implementazione di CORS nell'API Amazon EC2 è standardizzata. La tua applicazione può inviare una semplice richiesta all'API Amazon EC2 o, a seconda del contenuto della richiesta, una richiesta di preflight seguita da una richiesta effettiva. Amazon EC2 consente la richiesta da qualsiasi origine

Per ulteriori informazioni su CORS ed esempi di come funziona, consulta il seguente articolo su Mozilla Developer Network: HTTP access control (CORS).

Richieste semplici

Di seguito sono riportati i criteri che definiscono una richiesta semplice o effettiva:

  • Le richieste utilizzano solo i metodi GET o POST HTTP. Se viene utilizzato il POST metodo, Content-Type può essere solo uno dei seguenti:application/x-www-form-urlencoded,multipart/form-data, otext/plain.

  • Le richieste non impostano intestazioni personalizzate, ad esempioX-Other-Header.

Amazon EC2 consente la richiesta da qualsiasi origine. Qualsiasi GET POST richiesta che tenti di utilizzare le credenziali del browser impostando il Access-Control-Allow-Credentials valore su true (doveXMLHttpRequest.withCredentials = true) avrà esito negativo.

Le seguenti informazioni descrivono le intestazioni delle richieste ad Amazon EC2:

Valori semplici delle intestazioni delle richieste
  • Origin: specifica il dominio che desidera accedere alla risorsa (in questo caso, la risorsa è Amazon EC2). Viene inserito dal browser in una richiesta tra origini diverse.

Le seguenti informazioni descrivono le intestazioni di risposta che Amazon EC2 restituisce (o non restituisce) dopo una richiesta semplice o effettiva:

Valori di intestazione di risposta semplici
  • Access-Control-Allow-Origin: specifica il dominio che può accedere alla risorsa (in questo caso, la risorsa è Amazon EC2). Viene sempre restituito con un valore *. Pertanto, Amazon EC2 consente qualsiasi origine tra domini e non consente mai le credenziali del browser, come i cookie.

  • Access-Control-Allow-Credentials: indica se le credenziali del browser possono essere utilizzate per effettuare la richiesta effettiva. Questo valore non viene mai restituito. Pertanto, il browser deve interpretare il valore comeAccess-Control-Allow-Credentials: false.

Richieste di preflight

Se il contenuto della richiesta soddisfa i criteri seguenti, viene verificato se la richiesta effettiva debba essere inviata. Una richiesta di preflight invia innanzitutto una richiesta HTTP alla risorsa (in questo caso, Amazon EC2) utilizzando il OPTIONS metodo.

Di seguito sono riportati i criteri che definiscono una richiesta di preflight:

  • Le richieste utilizzano metodi HTTP diversi da GET oPOST. Tuttavia, se viene utilizzato il POST metodo, non Content-Type è uno dei seguenti:application/x-www-form-urlencoded,multipart/form-data, otext/plain.

  • Le richieste impostano intestazioni personalizzate, X-Other-Header ad esempio.

L'implementazione CORS di Amazon EC2 consente qualsiasi intestazione e consente qualsiasi origine nella richiesta effettiva.

Le seguenti informazioni descrivono le intestazioni delle richieste per una richiesta di preflight ad Amazon EC2:

Valori dell'intestazione della richiesta di preflight
  • Origin: specifica il dominio che desidera accedere alla risorsa (in questo caso, la risorsa è Amazon EC2). Viene inserito dal browser in una richiesta tra origini diverse.

  • Access-Control-Request-Method: il metodo HTTP da utilizzare nella richiesta effettiva dal browser.

  • Access-Control-Request-Headers: le intestazioni personalizzate da inviare nella richiesta cross-origin effettiva.

Le seguenti informazioni riguardano le intestazioni di risposta che Amazon EC2 restituisce (o non restituisce) dopo una richiesta di verifica preliminare:

Valori delle intestazioni delle risposte Preflight
  • Access-Control-Allow-Origin: specifica il dominio che può accedere alla risorsa (in questo caso, la risorsa è Amazon EC2). Viene sempre restituito con un valore *. Pertanto, Amazon EC2 consente qualsiasi origine tra domini e non consente mai le credenziali del browser, come i cookie.

  • Access-Control-Allow-Credentials: indica se le credenziali del browser possono essere utilizzate per effettuare la richiesta effettiva. Questo non viene mai restituito da Amazon EC2. Pertanto, il browser deve interpretare il valore comeAccess-Control-Allow-Credentials: false.

  • Access-Control-Expose-Headers: consente di esporre le intestazioni al browser. Questo valore non viene mai restituito da Amazon EC2. Pertanto, nessuna intestazione di ritorno da Amazon EC2 può essere letta dal dominio richiedente.

  • Access-Control-Max-Age: specifica per quanto tempo i risultati delle richieste di preflight possono essere memorizzati nella cache. Il valore è impostato su 1800 secondi (30 minuti).

  • Access-Control-Allow-Methods: indica quali metodi sono consentiti quando si effettua una richiesta effettiva. Sono consentiti i seguenti metodi: GETPOST,OPTIONS,DELETE, ePUT. Ciò dipende anche da come si chiama l'API Amazon EC2; ad esempio, utilizzando l'API Query o utilizzando REST.

  • Access-Control-Allow-Headers: indica quali intestazioni possono essere utilizzate nella richiesta effettiva. Amazon EC2 accetta qualsiasi intestazione nelle richieste di preflight. Se le intestazioni HTTP non sono pertinenti nella richiesta effettiva, vengono ignorate.