Angeben eines Standardstammobjekts - Amazon CloudFront

Angeben eines Standardstammobjekts

Sie können CloudFront so konfigurieren, dass ein bestimmtes Objekt (das Standardstammobjekt) zurückgegeben wird, wenn ein Benutzer die Stamm-URL für Ihre Verteilung anfragt, anstatt ein Objekt in Ihrer Verteilung anzufragen. Durch die Festlegung eines Standardstammobjekt können Sie vermeiden, dass die Inhalte Ihrer Verteilung preisgegeben werden.

So geben Sie ein Standardstammobjekt an

Um zu verhindern, dass die Inhalte Ihrer Verteilung offengelegt werden oder dass ein Fehler zurückgegeben wird, führen Sie die folgenden Schritte aus, um ein Standardstammobjekt für Ihre Verteilung anzugeben.

So geben Sie ein Standardstammobjekt für Ihre Verteilung an

  1. Laden Sie das Standardstammobjekt auf den Ursprung hoch, auf den Ihre Verteilung zeigt.

    Der Dateityp kann jeder von CloudFront unterstützte Typ sein. Eine Liste mit Einschränkungen in Bezug auf den Dateinamen finden Sie in der Beschreibung des DefaultRootObject-Elements in DistributionConfig.

    Anmerkung

    Wenn der Dateiname des Standardstammobjekts zu lang ist oder ein ungültiges Zeichen enthält, gibt CloudFront den Fehler zurüc HTTP 400 Bad Request - InvalidDefaultRootObject. Darüber hinaus wird der Code für 10 Sekunden von CloudFront zwischengespeichert (standardmäßig) und die Ergebnisse werden in die Zugriffsprotokolle geschrieben.

  2. Vergewissern Sie sich, dass die Berechtigungen für das Objekt CloudFront mindestens read-Zugriff gewähren.

    Weitere Informationen zu Amazon-S3-Berechtigungen finden Sie unter Zugriffskontrolle im Benutzerhandbuch zu Amazon Simple Storage Service. Informationen zur Verwendung der Amazon S3-Konsole zum Aktualisieren von Berechtigungen finden Sie im Amazon Simple Storage Service Console-Benutzerhandbuch.

  3. Aktualisieren Sie Ihre Verteilung mithilfe der CloudFront-Konsole oder der CloudFront-API so, dass auf das Standardstammobjekt verwiesen wird.

    So geben Sie ein Standardstammobjekt mithilfe der CloudFront-Konsole an:

    1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CloudFront-Konsole unter https://console.aws.amazon.com/cloudfront/v3/home.

    2. Wählen Sie in der Liste der Verteilungen im oberen Bereich die zu aktualisierende Verteilung aus.

    3. Klicken Sie im Bereich Distribution Details auf der Registerkarte General auf Edit.

    4. Geben Sie im Dialogfeld Edit Distribution im Feld Default Root Object den Dateinamen des Standardstammobjekts ein.

      Geben Sie nur den Objektnamen ein, z. B, index.html. Fügen Sie keinen / vor dem Objektnamen hinzu.

    5. Wählen Sie Yes, Edit aus, um Ihre Änderungen zu speichern.

    Um Ihre Konfiguration mithilfe der CloudFront-API zu aktualisieren, geben Sie einen Wert für das DefaultRootObject-Element in Ihrer Verteilung an. Informationen zur Verwendung der CloudFront-API zum Angeben eines Standardobjekts finden Sie unter UpdateDistribution in der Amazon-CloudFront-API-Referenz.

  4. Vergewissern Sie sich, dass Sie das Standardstammobjekt aktiviert haben, indem Ihre Stamm-URL anfragen. Wenn Ihr Standardstammobjekt im Browser nicht angezeigt wird, führen Sie die folgenden Schritte aus:

    1. Vergewissern Sie sich, dass Ihre Verteilung vollständig bereitgestellt wird, indem Sie den Status Ihrer Verteilung in der CloudFront-Konsole anzeigen.

    2. Wiederholen Sie die Schritte 2 und 3, um sicherzustellen, dass Sie die richtigen Berechtigungen erteilt und die Konfiguration Ihrer Verteilung ordnungsgemäß aktualisiert haben, um das Standardstammobjekt anzugeben.

So funktioniert das Standardstammobjekt

Angenommen, die folgende Anfrage zeigt beispielsweise auf das Objekt image.jpg:

https://d111111abcdef8.cloudfront.net/image.jpg

Im Gegensatz dazu zeigt die folgende Anfrage auf die Stamm-URL derselben Verteilung anstatt auf ein bestimmtes Objekt, wie im ersten Beispiel:

https://d111111abcdef8.cloudfront.net/

Wenn Sie ein Standardstammobjekt definieren, gibt eine Endbenutzeranfrage, welche den Stamm Ihrer Verteilung aufruft, das Standardstammobjekt zurück. Wenn Sie beispielsweise die Datei index.html als Standardstammobjekt bestimmen, gibt eine Anfrage für:

https://d111111abcdef8.cloudfront.net/

Rückgabe:

https://d111111abcdef8.cloudfront.net/index.html

Wenn Sie jedoch ein Standardstammobjekt definieren, gibt eine Endbenutzeranfrage für ein Unterverzeichnis Ihrer Verteilung nicht das Standardstammobjekt zurück. Nehmen wir beispielsweise an, index.html ist Ihr Standardstammobjekt und CloudFront erhält eine Endbenutzeranfrage für das Verzeichnis install in Ihrer CloudFront-Verteilung:

https://d111111abcdef8.cloudfront.net/install/

CloudFront gibt das Standardstammobjekt nicht zurück, selbst wenn eine Kopie von index.html im Verzeichnis install-Verzeichnis angezeigt wird.

Wenn Sie Ihre Verteilung so konfigurieren, dass alle HTTP-Methoden, die CloudFront unterstützt, zulässig sind, gilt das Standardstammobjekt für alle Methoden. Wenn Ihr Standardstammobjekt beispielsweise index.php ist und Sie Ihre Anwendung so schreiben, dass eine POST-Anfrage an den Stamm Ihrer Domäne (http://example.com) übermittelt wird, sendet CloudFront die Anfrage an http://example.com/index.php.

Das Verhalten von CloudFront-Standardstammobjekten unterscheidet sich vom Verhalten von Amazon S3-Indexdokumenten. Wenn Sie einen Amazon S3-Bucket als Website konfigurieren und das Indexdokument angeben, gibt Amazon S3 das Indexdokument auch dann zurück, wenn ein Benutzer ein Unterverzeichnis im Bucket anfragt. (Eine Kopie des Indexdokuments muss in allen Unterverzeichnissen angezeigt werden.) Weitere Informationen zum Konfigurieren von Amazon-S3-Buckets als Websites und zu Indexdokumenten finden Sie im Kapitel Hosting von Websites auf Amazon S3 im Benutzerhandbuch zu Amazon Simple Storage Service.

Wichtig

Denken Sie daran, dass ein Standardstammobjekt nur für Ihre CloudFront-Verteilung gilt. Sie müssen noch die Sicherheit für Ihren Ursprung verwalten. Wenn Sie beispielsweise einen Amazon S3-Ursprung verwenden, müssen Sie noch Ihre Amazon S3-Bucket-ACLs richtig einrichten, um die Zugriffsebene für Ihren Bucket zu gewährleisten.

Wie CloudFront funktioniert, wenn Sie kein Stammobjekt definieren

Wenn Sie kein Standardstammobjekt definieren, werden Anfragen für den Stamm Ihrer Verteilung an Ihren Ursprungs-Server weitergeleitet. Wenn Sie einen Amazon S3-Ursprung verwenden, kann Folgendes zurückgegeben werden:

  • Eine Liste der Inhalte Ihres Amazon-S3-Buckets – Wenn eine der folgenden Bedingungen zutrifft, können alle Benutzer, die CloudFront für den Zugriff auf Ihre Verteilung verwenden, die Inhalte Ihres Ursprungs sehen:

    • Ihr Bucket ist nicht ordnungsgemäß konfiguriert.

    • Die Amazon S3-Berechtigungen für den mit Ihrer Verteilung verknüpften Bucket und für die Objekte im Bucket gewähren allen Benutzern den Zugriff.

    • Ein Endbenutzer greift mit der Stamm-URL Ihres Ursprungs auf den Ursprung zu.

  • Eine Liste der privaten Inhalte Ihres Ursprungs – Wenn Sie Ihren Ursprung als private Verteilung konfigurieren (d. h. nur Sie und CloudFront haben Zugriff), sind die Inhalte des mit Ihrer Verteilung verknüpften Amazon S3-Buckets für alle Benutzer sichtbar, die über Anmeldeinformationen für den Zugriff auf Ihre Verteilung über CloudFront verfügen. In diesem Fall können Benutzer nicht über die Stamm-URL Ihres Ursprungs auf Ihre Inhalte zugreifen. Weitere Informationen zum Verteilen von privaten Inhalten finden Sie unter Bereitstellen privater Inhalte mit signierten URLs und signierten Cookies.

  • Error 403 Forbidden – CloudFront gibt diesen Fehler zurück, wenn die Berechtigungen für den mit Ihrer Verteilung verknüpften Amazon S3-Bucket oder die Berechtigungen für die Objekte in diesem Bucket CloudFront und allen Benutzern den Zugriff verweigern.