Cross-Origin Resource Sharing (CORS) verwenden - Amazon Simple Storage Service

Cross-Origin Resource Sharing (CORS) verwenden

Cross-Origin Resource Sharing (CORS) bestimmt für Client-Webanwendungen, die in einer Domain geladen sind, eine Möglichkeit zur Interaktion mit Ressourcen in einer anderen Domain. Mit CORS-Unterstützung können Sie umfassende clientseitige Webanwendungen mit Amazon S3 erstellen und selektiven ursprungsübergreifenden Zugriff auf Ihre Amazon S3-Ressourcen zulassen.

Dieser Abschnitt bietet eine Übersicht über CORS. Die Unterthemen beschreiben, wie Sie CORS über die Amazon S3-Konsole aktivieren können, oder programmgesteuert unter Verwendung der Amazon S3-REST-API und der AWS-SDKs.

Cross-Origin Resource Sharing: Szenarien in Anwendungsfällen

Es folgen typische Beispielszenarien für den Einsatz von CORS.

Szenario 1

Szenario 1: Angenommen, Sie hosten eine Website in einem Amazon S3-Bucket mit dem Namen website, wie in Hosten einer statischen Website mit Amazon S3 beschrieben. Ihre Benutzer laden den Website-Endpunkt:

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

Jetzt wollen Sie JavaScript auf den Webseiten verwenden, die in diesem Bucket gespeichert sind, um authentifizierte GET- und PUT-Anfragen für denselben Bucket unter Verwendung des API-Endpunkts von Amazon S3 für den Bucket erstellen zu können, website.s3.us-east-1.amazonaws.com. Ein Browser würde normalerweise verhindern, dass JavaScript diese Anfragen erstellt, aber mit CORS können Sie Ihren Bucket konfigurieren, um explizit ursprungsübergreifende Anfragen von website.s3-website.us-east-1.amazonaws.com zu aktivieren.

Szenario 2

Angenommen, Sie möchten eine Web-Schriftart aus Ihrem S3-Bucket hosten. Auch hier erfordern Browser eine CORS-Prüfung (auch als Preflight-Check bezeichnet) für das Laden von Web-Schriftarten. Sie würden den Bucket, der die Web-Schriftart hostet, deshalb so konfigurieren, dass jeder Ursprung diese Anfragen machen kann.

Wie wertet Amazon S3 die CORS-Konfiguration für einen Bucket aus?

Wenn Amazon S3 eine Preflight-Anfrage von einem Browser erhält, wertet es die CORS-Konfiguration für den Bucket aus und verwendet die erste CORSRule-Regel, die mit der eingehenden Browser-Anfrage übereinstimmt, um eine ursprungsübergreifende Anfrage zuzulassen. Für die Übereinstimmung mit einer Regel müssen die folgenden Bedingungen erfüllt sei:

  • Der Origin-Header der Anfrage muss mit einem AllowedOrigin-Element übereinstimmen.

  • Die Anfragemethode (z. B. GET oder PUT) oder der Access-Control-Request-Method-Header bei einer Preflight-OPTIONS-Anfrage muss eines der AllowedMethod-Elemente sein.

  • Jeder im Access-Control-Request-Headers-Header der Preflight-Anfrage muss mit einem AllowedHeader-Element übereinstimmen.

Anmerkung

Alle ACLs und Richtlinien gelten weiterhin, wenn Sie CORS für den Bucket aktivieren.

Weitere Informationen zur Verwendung von CORS finden Sie in den folgenden Themen.