Verwenden des Azure Content Delivery Network mit SAS

Wenn Sie ein Speicherkonto für Azure Content Delivery Network zum Zwischenspeichern von Inhalten einrichten, kann standardmäßig jeder Benutzer, der die URLs für Ihre Speichercontainer kennt, auf die hochgeladenen Dateien zugreifen. Um die Dateien in Ihrem Speicherkonto zu schützen, könnten Sie den Zugriff auf Ihre Speichercontainer von öffentlich auf privat ändern. Allerdings könnte dann niemand auf Ihre Dateien zugreifen.

Wenn Sie eingeschränkten Zugriff auf private Speichercontainer gewähren möchten, können Sie die SAS-Funktion (Shared Access Signature) Ihres Azure Storage-Kontos verwenden. Eine SAS ist ein URI, der eingeschränkte Zugriffsrechte auf Ihre Azure Storage-Ressourcen erteilt, ohne Ihren Kontoschlüssel verfügbar zu machen. Sie können eine SAS für Clients bereitstellen, denen Sie zwar Ihren Speicherkontoschlüssel nicht anvertrauen, aber an die Sie den Zugriff auf bestimmte Speicherkontoressourcen delegieren möchten. Durch das Bereitstellen eines Shared Access Signature-URI für diese Clients wird ihnen für einen bestimmten Zeitraum Zugriff auf eine Ressource gewährt.

Mit SAS können Sie verschiedene Parameter für den Zugriff auf ein Blob definieren, z.B. Start- und Ablaufzeiten, Berechtigungen (Lesen/Schreiben) und IP-Bereiche. In diesem Artikel wird beschrieben, wie Sie SAS mit Azure Content Delivery Network verwenden. Weitere Informationen zu SAS – einschließlich Erstellung und Parameteroptionen – finden Sie unter Verwenden von Shared Access Signatures (SAS).

Einrichten von Azure Content Delivery Network für die Arbeit mit Speicher-SAS

Für die Verwendung von SAS mit Azure Content Delivery Network werden die folgenden beiden Optionen empfohlen. Bei allen Optionen wird vorausgesetzt, dass Sie bereits eine funktionierende SAS erstellt haben (siehe „Voraussetzungen“).

Voraussetzungen

Erstellen Sie zunächst ein Speicherkonto, und generieren Sie dann eine SAS für Ihr Asset. Sie können zwei Arten von SAS erstellen: eine Dienst-SAS oder eine Konto-SAS. Weitere Informationen finden Sie unter Arten von Shared Access Signatures.

Nachdem Sie ein SAS-Token generiert haben, können Sie auf die BLOB-Speicherdatei zugreifen, indem Sie ?sv=<SAS token> an die URL anfügen. Diese URL weist das folgende Format auf:

https://<account name>.blob.core.windows.net/<container>/<file>?sv=<SAS token>

Beispiel:

https://democdnstorage1.blob.core.windows.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=co&sp=r&se=2038-01-02T21:30:49Z&st=2018-01-02T13:30:49Z&spr=https&sig=QehoetQFWUEd1lhU5iOMGrHBmE727xYAbKJl5ohSiWI%3D

Weitere Informationen zum Festlegen von Parametern finden Sie unter Überlegungen zu SAS-Parametern und Shared Access Signature-Parameter.

Screenshot der SAS-Einstellungen in Content Delivery Network

Option 1: Verwenden von SAS mit Passthrough an Blobspeicher über Azure Content Delivery Network

Diese Option ist die einfachste und verwendet nur ein einziges SAS-Token, das von Azure Content Delivery Network an den Ursprungsserver übergeben wird.

  1. Wählen Sie einen Endpunkt aus, wählen Sie Cacheregeln aus, und wählen Sie dann in der Liste Zwischenspeichern von Abfragezeichenfolgen die Einstellung Jede eindeutige URL zwischenspeichern aus.

    Screenshot der Cacheregeln von Content Delivery Network

  2. Nachdem Sie die SAS für Ihr Speicherkonto eingerichtet haben, müssen Sie für den Zugriff auf die Datei das SAS-Token mit der Content Delivery Network-Endpunkt-URL und der URL des Ursprungsservers verwenden.

    Die resultierende Content Delivery Network-Endpunkt-URL weist das folgende Format auf: https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>

    Zum Beispiel:

    https://demoendpoint.azureedge.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

  3. Optimieren Sie die Dauer der Zwischenspeicherung entweder mithilfe von Cacheregeln oder durch das Hinzufügen von Cache-Control-Headern am Ursprungsserver. Da Azure Content Delivery Network das SAS-Token als einfache Abfragezeichenfolge betrachtet, besteht die bewährte Methode darin, eine Cachedauer festzulegen, die mit oder vor dem SAS-Ablauf endet. Wenn eine Datei länger zwischengespeichert wird, als die SAS aktiv ist, ist die Datei vom Azure Content Delivery Network-Ursprungsserver möglicherweise auch nach dem SAS-Ablauf weiter zugänglich. Wenn dieser Fall eintritt und Sie den Zugriff auf die Datei unterbinden möchten, müssen Sie einen Bereinigungsvorgang für die Datei durchführen, um sie aus dem Cache zu löschen. Informationen zum Festlegen der Cachedauer in Azure Content Delivery Network finden Sie unter Steuern des Verhaltens beim Zwischenspeichern in Azure Content Delivery Network mit Cacheregeln.

Option 2: Verwenden der Sicherheitstokenauthentifizierung von Content Delivery Network mit einer Rewriteregel

Um die Azure Content Delivery Network-Sicherheitstokenauthentifizierung zu verwenden, müssen Sie über das Profil Azure CDN Premium von Edgio verfügen. Diese Option bietet die höchste Sicherheit und die meisten Anpassungsmöglichkeiten. Der Clientzugriff basiert auf den Sicherheitsparametern, die Sie für das CDN-Sicherheitstoken festlegen. Nachdem Sie das Sicherheitstoken erstellt und eingerichtet haben, wird es in allen Content Delivery Network-Endpunkt-URLs benötigt. Aufgrund der URL-Rewriteregel wird das SAS-Token am Content Delivery Network-Endpunkt jedoch nicht benötigt. Wenn das SAS-Token später ungültig wird, kann Azure Content Delivery Network den Inhalt vom Ursprungsserver aus nicht erneut validieren.

  1. Erstellen Sie ein Azure Content Delivery Network-Sicherheitstoken, und aktivieren Sie es mithilfe des Regelmoduls für den Content Delivery Network-Endpunkt und -Pfad, über die Ihre Benutzer auf die Datei zugreifen können.

    Eine Endpunkt-URL mit Sicherheitstoken hat das folgende Format:

    https://<endpoint hostname>.azureedge.net/<container>/<file>?<security_token>

    Beispiel:

    https://sasstoragedemo.azureedge.net/container1/demo.jpg?a4fbc3710fd3449a7c99986bkquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

    Die Parameteroptionen für eine Sicherheitstokenauthentifizierung unterscheiden sich von den Parameteroptionen für ein SAS-Token. Wenn Sie beim Erstellen eines Sicherheitstokens eine Ablaufzeit festlegen, müssen Sie denselben Ablaufzeitpunkt verwenden wie für das SAS-Token. So ist sichergestellt, dass der Ablaufzeitpunkt vorhersehbar ist.

  2. Verwenden Sie die Regel-Engine, um eine URL-Rewriteregel zu erstellen, mit welcher der Tokenzugriff auf alle Blobs im Container aktiviert wird. Das Verteilen von neuen Regeln kann bis zu 4 Stunden dauern.

    Im folgenden Beispiel für eine URL-Rewriteregel wird ein Muster für einen regulären Ausdruck mit einer Erfassungsgruppe und einem Endpunkt namens sasstoragedemo verwendet:

    Quelle:

    (container1/.*)

    Ziel:

    $1&sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3DScreenshot der Rewriteregel für die Content Delivery Network-URL – linksScreenshot der Rewriteregel für die Content Delivery Network-URL – rechts

  3. Wenn Sie die SAS verlängern, müssen Sie die URL-Rewriteregel mit dem neuen SAS-Token aktualisieren.

Überlegungen zu SAS-Parametern

Da SAS-Parameter für Azure Content Delivery Network nicht sichtbar sind, kann Azure Content Delivery Network das Übermittlungsverhalten basierend auf diesen nicht ändern. Die definierten Parametereinschränkungen gelten nur für Anforderungen, die Azure Content Delivery Network an den Ursprungsserver sendet, nicht für Anforderungen vom Client an Azure Content Delivery Network. Diese Unterscheidung muss beim Festlegen von SAS-Parametern berücksichtigt werden. Wenn diese erweiterten Funktionen benötigt werden und Sie Option 2 verwenden, legen Sie die entsprechenden Einschränkungen für das Azure Content Delivery Network-Sicherheitstoken fest.

Name des SAS-Parameters BESCHREIBUNG
Starten Der Zeitpunkt, zu dem Azure Content Delivery Network mit dem Zugriff auf die Blobdatei beginnen kann. Wählen Sie aufgrund von Uhrabweichungen (Signaleingang für verschiedene Komponenten zu unterschiedlichen Zeiten) einen 15 Minuten früheren Zeitpunkt, wenn Sie möchten, dass das Asset sofort verfügbar ist.
Ende Die Zeit, nach der Azure Content Delivery Network nicht mehr auf die Blobdatei zugreifen kann. Zuvor zwischengespeicherte Dateien in Azure Content Delivery Network sind weiterhin verfügbar. Um die Dateiablaufzeit zu steuern, legen Sie entweder die geeignete Ablaufzeit im Azure Content Delivery Network-Sicherheitstoken fest, oder löschen Sie die Ressource.
Zulässige IP-Adressen Optional. Wenn Sie Azure CDN von Edgio verwenden, können Sie diesen Parameter auf die Bereiche festlegen, die in Edgeserver-IP-Adressen für Azure Content Delivery Network von Edgio definiert wurden.
Zulässige Protokolle Die zugelassenen Protokolle für eine Anforderung mit der Konto-SAS. Als Einstellung wird HTTPS empfohlen.

Nächste Schritte

Weitere Informationen zur SAS finden Sie in den folgenden Artikeln:

Weitere Informationen zum Einrichten der Tokenauthentifizierung finden Sie unter Schützen von Azure Content Delivery Network-Assets mit Tokenauthentifizierung.