Ich verwende CloudFront mit einer Amazon-S3-Quelle. Warum kann ich nicht auf meine Dateien zugreifen?

Lesedauer: 3 Minute
0

Ich verwende einen Bucket aus dem Amazon Simple Storage Service (Amazon S3) als Quelle meiner Amazon CloudFront-Verteilung, kann aber nicht auf Dateien in meinem S3-Bucket zugreifen oder diese herunterladen. Wie kann ich dieses Problem beheben?

Auflösung

Beheben von 403-Fehlern „Access Denied“ (Zugriff verweigert)

Wenn CloudFront 403-Fehler Access Denied (Zugriff verweigert) zurückgibt, lesen Sie die folgenden Anleitungen basierend auf Ihrem Anwendungsfall:

Prüfen Sie die geografischen Beschränkungen von CloudFront

Wenn Ihre Verteilung geografische Beschränkungen verwendet, stellen Sie sicher, dass Sie die Länder, aus denen Ihre Anforderungen stammen, nicht einschränken.

Weitere Informationen finden Sie unter Beschränken der geografischen Verteilung Ihrer Inhalte.

Stellen Sie sicher, dass Sie HTTPS nicht mit S3-Website-Endpunkten durchsetzen

Amazon-S3-Website-Endpunkte unterstützen kein HTTPS. Wenn Sie eine CloudFront-Verteilung mit der CLI, API oder dem SDK konfiguriert haben, stellen Sie sicher, dass Sie HTTPS nicht mit Ihrer S3-Website-Endpunkquelle durchsetzen.

Um zu überprüfen, ob Sie HTTPS verwenden, können Sie mit der API GetDistributionConfig oder dem CLI-Befehl get-distribution-config die Verteilungskonfiguration abrufen. Wenn OriginProtocolPolicy auf https-only festgelegt ist, ändern Sie die OriginProtocolPolicy so, dass sie http-only verwendet.

Zur Verwendung von HTTPS müssen Sie CloudFront mit einer S3-REST-API-Endpunktquelle verwenden. Weitere Informationen finden Sie unter Wie verwende ich CloudFront, um HTTPS-Anforderungen für meinen Amazon-S3-Bucket zu verarbeiten?

Stellen Sie sicher, dass Ihre S3-Objekte weniger 30 GB haben

Die maximal zulässige Dateigröße für HTTP-GET-, POST- und PUT-Anforderungen beträgt 30 GB. Wenn eine Datei größer als 30 GB ist, wird ein „BadRequest“-Fehler 400 angezeigt.

Weitere Informationen finden Sie unter Allgemeine Kontingente für Verteilungen.

Suchen Sie nach Sonderzeichen in S3-Objektschlüsselnamen

Wenn Sie in Ihrem S3-Objektschlüsselnamen Sonderzeichen verwenden, erfordern diese möglicherweise eine besondere Behandlung. Weitere Informationen finden Sie unter Benennungsrichtlinien für Objektschlüssel.

Vergewissern Sie sich, dass Sie keine Standard-Root-Objekte aus einem Unterverzeichnis verwenden

Eine CloudFront-Verteilung gibt keine Standard-Root-Objekte aus einem Unterverzeichnis zurück, auch wenn das Objekt in Ihrer Verteilung konfiguriert ist. Weitere Informationen finden Sie unter Festlegen eines Standard-Root-Objekts.

Als Problemumgehung können Sie das Standard-Root-Objekt mithilfe von Lambda@Edge aus einem Unterverzeichnis zurückgeben. Weitere Informationen finden Sie unter Implementieren von Standardverzeichnisindizes in Amazon-S3-gestützten Amazon CloudFront-Quellen mithilfe von Lambda @Edge.

Stellen Sie sicher, dass Sie keine Host-Header mit einer S3-Quelle verwenden

Für Amazon-S3-Quellen wird das Caching basierend auf dem Host-Header oder das Weiterleiten des Host-Headers nicht unterstützt. Weitere Informationen finden Sie unter Auswählen der Header, auf denen das Caching basieren soll.

Beheben des Fehlers „No 'Access-Control-Allow-Origin' header is present on the requested resource“ (Kein 'Access-Control-Allow-Origin'-Header in angeforderter Ressource vorhanden)

Die Schritte zur Behebung finden Sie in Wie behebe ich den Fehler „No 'Access-Control-Allow-Origin' header is present on the requested resource“ (Kein 'Access-Control-Allow-Origin'-Header in angeforderter Ressource vorhanden) in CloudFront?


Relevante Informationen

Beheben von Fehlerantworten von Ihrer Quelle

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren