CORS-Konfiguration - Amazon Simple Storage Service

CORS-Konfiguration

Um Ihren Bucket so zu konfigurieren, dass er ursprungsübergreifende Anfragen zulässt, erstellen Sie eine CORS-Konfiguration. Die CORS-Konfiguration ist ein XML-Dokument mit Regeln, die die Ursprünge, die auf Ihren Bucket zugreifen dürfen, die Vorgänge (HTTP-Methoden), die die einzelnen Ursprünge unterstützen, sowie weitere operationsspezifische Informationen identifizieren. Sie können der Konfiguration bis zu 100 Regeln hinzufügen. Sie können dem Bucket die CORS-Konfiguration als cors-Subressource hinzufügen.

Wenn Sie CORS in der S3-Konsole konfigurieren, müssen Sie JSON verwenden, um eine CORS-Konfiguration zu erstellen. Die neue S3-Konsole unterstützt nur JSON CORS-Konfigurationen.

Weitere Informationen über die CORS-Konfiguration und die darin enthaltenen Elemente finden Sie in den folgenden Themen. Anweisungen zum Hinzufügen einer CORS-Konfiguration finden Sie unter Cross-Origin Resource Sharing (CORS) konfigurieren.

Wichtig

In der S3-Konsole muss die CORS-Konfiguration JSON sein.

Beispiel 1

Statt über einen Amazon-S3-Website-Endpunkt auf eine Website zuzugreifen, können Sie Ihre eigen Domäne verwenden, wie beispielsweise example1.com, um Ihren Inhalt bereitzustellen. Weitere Informationen zur Verwendung Ihrer eigenen Domäne finden Sie unter Konfigurieren einer statischen Website mithilfe einer benutzerdefinierten bei Route 53 registrierten Domäne.

Die folgende Beispielkonfiguration für cors umfasst drei Regeln, die als CORSRule-Elemente angegeben sind:

  • Die erste Regel gestattet ursprungsübergreifende PUT-, POST- und DELETE-Anfragen vom Ursprung http://www.example1.com. Die Regel gestattet auch alle Header in einer Preflight-OPTIONS-Anfrage durch den Access-Control-Request-Headers-Header. Als Antwort auf Preflight-OPTIONS-Anfragen gibt Amazon S3 angeforderte Header zurück.

  • Die zweite Regel gestattet dieselben ursprungsübergreifenden Anfragen wie die erste Regel, aber sie bezieht sich auf einen anderen Ursprung, http://www.example2.com.

  • Die dritte Regel gestattet ursprungsübergreifende GET-Anfragen von allen Ursprüngen. Das Platzhalterzeichen * bezieht sich auf alle Ursprünge.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example2.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example1.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>http://www.example2.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

Beispiel 2

Die CORS-Konfiguration unterstützt auch optionale Konfigurationsparameter, wie in der folgenden CORS-Konfiguration gezeigt. In diesem Beispiel gestattet die folgende CORS-Konfiguration ursprungsübergreifende PUT-, POST- und DELETE-Anfragen vom Ursprung http://www.example.com.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example.com" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>x-amz-server-side-encryption</ExposeHeader> <ExposeHeader>x-amz-request-id</ExposeHeader> <ExposeHeader>x-amz-id-2</ExposeHeader> </CORSRule> </CORSConfiguration>

Das CORSRule-Element in der obigen Konfiguration beinhaltet die folgenden optionalen Elemente:

  • MaxAgeSeconds – Gibt den Zeitraum in Sekunden an (in diesem Beispiel 3000), für den der Browser eine Amazon-S3-Antwort auf eine Preflight-OPTIONS-Anfrage für die angegebene Ressource zwischenspeichert. Durch die Zwischenspeicherung der Antwort muss der Browser keine Preflight-Anfragen an Amazon S3 senden, wenn die ursprüngliche Anfrage wiederholt werden soll.

  • ExposeHeader – Identifiziert die Antwort-Header (in diesem Beispiel x-amz-server-side-encryption, x-amz-request-id und x-amz-id-2), auf die Kunden von ihren Anwendungen aus zugreifen können (z. B. von einem JavaScript XMLHttpRequest-Objekt).

AllowedMethod-Element

In der CORS-Konfiguration können Sie die folgenden Werte für das AllowedMethod-Element angeben.

  • GET

  • PUT

  • POST

  • DELETE

  • HEAD

AllowedOrigin-Element

Im AllowedOrigin-Element geben Sie die Ursprünge an, über die Sie domänenübergreifende Anfragen erlauben möchten, z. B. http://www.example.com. Die Ursprungszeichenfolge darf nur ein *-Platzhalterzeichen enthalten, wie beispielsweise http://*.example.com. Optional können Sie * als Ursprung angeben, sodass alle Ursprünge ursprungsübergreifende Anfragen senden dürfen. Sie können auch https angeben, um nur sichere Ursprünge zuzulassen.

AllowedHeader-Element

Das AllowedHeader-Element gibt an, welche Header in einer Preflight-Anfrage durch den Access-Control-Request-Headers-Header erlaubt sind. Jeder Header-Name im Access-Control-Request-Headers-Header muss mit einem entsprechenden Eintrag in der Regel übereinstimmen. Amazon S3 sendet nur die zulässigen angeforderten Header in einer Antwort. Eine Liste mit Beispielen für Header, die in Anfragen an Amazon S3 verwendet werden können, finden Sie unter Häufig verwendete Anforderungsheader im API-Referenzhandbuch zum Amazon Simple Storage Service.

Jede AllowedHeader-Zeichenkette in der Regel darf höchstens einmal das Wildcard-Zeichen * enthalten. Beispielsweise aktiviert <AllowedHeader>x-amz-*</AllowedHeader> alle für Amazon spezifischen Header.

ExposeHeader-Element

Jedes ExposeHeader-Element identifiziert die Antwort-Header, auf die Kunden von ihren Anwendungen aus zugreifen können sollen (z. B. von einem JavaScript XMLHttpRequest-Objekt). Eine Liste der gängigen Amazon-S3-Antwortheader finden Sie unter Häufig verwendete Anforderungsheader im API-Referenzhandbuch zum Amazon Simple Storage Service.

MaxAgeSeconds-Element

Das MaxAgeSeconds-Element gibt die Zeit in Sekunden an, wie lange Ihr Browser die Antwort auf eine Preflight-Anfrage zwischenspeichern kann, wie nach der Ressource, der HTTP-Methode und dem Ursprung identifiziert.