Übersicht über das Bereitstellen privater Inhalte - Amazon CloudFront

Übersicht über das Bereitstellen privater Inhalte

Sie können den Benutzerzugriff auf Ihre privaten Inhalte auf zwei Arten steuern:

Beschränken des Zugriffs auf Dateien in CloudFront-Caches

Sie können CloudFront so konfigurieren, dass von Benutzern verlangt wird, entweder über signierte URLs oder über signierte Cookies auf Ihre Dateien zuzugreifen. Anschließend entwickeln Sie Ihre Anwendung entweder so, dass signierte URLs erstellt und an authentifizierte Benutzer verteilt werden, oder so, dass Set-Cookie-Header gesendet werden, die signierte Cookies für authentifizierte Benutzer setzen. (Wenn Sie einigen Benutzern langfristigen Zugriff auf eine geringe Anzahl von Dateien gewähren möchten, können Sie auch manuell signierte URLs erstellen.)

Wenn Sie signierte URLs oder signierte Cookies erstellen, um den Zugriff auf Ihre Dateien zu kontrollieren, können Sie die folgenden Einschränkungen angeben:

  • Ein Enddatum und eine Endzeit, nach welchen die URL nicht mehr gültig ist.

  • (Optional) Das Datum und die Zeit, an welchen die URL gültig wird.

  • (Optional) Die IP-Adresse oder der IP-Adressbereich der Computer, die für den Zugriff auf Ihre Inhalte verwendet werden können.

Ein Teil einer signierten URL oder eines signierten Cookies wird gehasht und mit dem privaten Schlüssel von einem Schlüsselpaar aus einem privaten und einem öffentlichen Schlüssel signiert. Wenn ein Benutzer eine signierte URL oder ein signiertes Cookie für den Zugriff auf eine Datei verwendet, vergleicht CloudFront die signierten und nicht signierten Teile der URL oder des Cookies. Wenn sie nicht übereinstimmen, stellt CloudFront die Datei nicht bereit.

Sie müssen RSA-SHA1 für das Signieren von URLs oder Cookies verwenden. CloudFront akzeptiert keine anderen Algorithmen.

Beschränken des Zugriffs auf Dateien in Amazon S3 Buckets

Optional können Sie die Inhalte in Ihrem Amazon S3 Bucket sichern, damit Benutzer über CloudFront, nicht jedoch direkt über Amazon S3-URLs, darauf zugreifen können. Dies verhindert, dass ein Benutzer CloudFront umgeht und die Amazon S3-URL verwendet, um Inhalte abzurufen, für die Sie den Zugriff einschränken möchten. Dieser Schritt ist für die Verwendung signierter URLs nicht notwendig, wird jedoch empfohlen.

Um es erforderlich zu machen, dass Benutzer über CloudFront-URLs auf Ihre Inhalte zugreifen, führen Sie die folgenden Schritte aus:

  • Erstellen Sie einen speziellen CloudFront-Benutzer, eine sog. Ursprungszugriffsidentität (Origin Access Identity, OAI), und verknüpfen Sie ihn mit Ihrer CloudFront-Verteilung.

  • Erteilen Sie der Ursprungszugriffsidentität die Berechtigung, die Dateien in Ihrem Bucket zu lesen.

  • Entfernen Sie die Berechtigung, Amazon S3-URLs zum Lesen der Dateien zu verwenden, für alle anderen Benutzer.

Weitere Informationen finden Sie unter Beschränken des Zugriffs auf Amazon-S3-Inhalte durch Verwenden einer Ursprungszugriffsidentität.

Beschränken des Zugriffs auf Dateien auf benutzerdefinierten Ursprungsservern

Wenn Sie einen benutzerdefinierten Ursprungsserver verwenden, können Sie optional benutzerdefinierte Header einrichten, um den Zugriff einzuschränken. Damit Ihre Dateien von einem benutzerdefinierten Ursprung abgerufen werden können, muss CloudFront auf die Dateien mithilfe einer Standard-HTTP-Anforderung (oder HTTPS) zugreifen können. Mithilfe von benutzerdefinierten Headern können Sie aber den Zugriff auf Ihre Inhalte einschränken, sodass Benutzer nicht direkt, sondern nur über CloudFront darauf zugreifen können. Dieser Schritt ist für die Verwendung signierter URLs nicht notwendig, wird jedoch empfohlen.

Um zu verlangen, dass Benutzer über CloudFront auf Ihre Inhalte zugreifen, ändern Sie die folgenden Einstellungen in Ihren CloudFront-Verteilungen:

Angepasste Ursprungs-Header

Konfigurieren Sie CloudFront so, dass angepasste Header an Ihren Ursprung weitergeleitet werden. Siehe Konfigurieren von CloudFront zum Hinzufügen von benutzerdefinierten Headern zu Ursprungsanforderungen.

Viewer-Protokollrichtlinien

Konfigurieren Sie Ihre Verteilung so, dass Viewer für den Zugriff auf Ihre CloudFront HTTPS verwenden müssen. Siehe Viewer-Protokollrichtlinien.

Ursprungsprotokollrichtlinien

Konfigurieren Sie die Verteilung so, dass CloudFront für die Weiterleitung von Anforderungen an den Ursprung dasselbe Protokoll wie die Viewer verwendet. Siehe Ursprungsprotokollrichtlinien.

Nachdem Sie diese Änderungen vorgenommen haben, aktualisieren Sie Ihre Anwendung auf dem benutzerdefinierten Ursprung, um nur Anforderungen zu akzeptieren, die die benutzerdefinierten Header enthalten, die Sie für das Senden durch CloudFront konfiguriert haben.

Die Kombination aus Viewer Protocol Policy (Viewer-Protokollrichtlinie) und Origin Protocol Policy (Ursprungs-Protokollrichtlinie) stellt sicher, dass die benutzerdefinierten Header während der Übertragung verschlüsselt werden. Allerdings empfehlen wir, dass Sie regelmäßig die folgenden Aufgaben ausführen, um die angepassten Header, die CloudFront an Ihren Ursprung weiterleitet, zu rotieren:

  1. Aktualisieren Sie Ihre CloudFront-Verteilung, damit die neuen Header an Ihren angepassten Ursprung weitergeleitet werden.

  2. Aktualisieren Sie Ihre Anwendung so, dass sie die neuen Header als Bestätigung annehmen, dass die Anforderung von CloudFront kommt.

  3. Wenn Anforderungen nicht mehr den Header enthalten, den Sie ersetzen, aktualisieren Sie Ihre Anwendung so, dass der alte Header nicht mehr akzeptiert wird, um zu bestätigen, dass die Anforderung von CloudFront stammt.