Utilisation d’Azure Content Delivery Network avec SAS

Quand vous configurez un compte de stockage pour Azure Content Delivery Network en vue de l’utiliser comme cache de contenu, par défaut toute personne connaissant les URL de vos conteneurs de stockage peut accéder aux fichiers que vous avez chargés. Pour protéger les fichiers dans votre compte de stockage, vous pouvez rendre privé l’accès à vos conteneurs de stockage. Toutefois, si vous le faites, personne ne peut accéder à vos fichiers.

Si vous souhaitez accorder un accès limité à des conteneurs de stockage privé, vous pouvez utiliser la fonctionnalité de signature d’accès partagé (SAP) de votre compte de stockage Azure. Une SAP est un URI qui octroie des droits d’accès restreints à vos ressources Stockage Azure sans exposer votre clé de compte. Vous pouvez fournir une SAP aux clients auxquels vous préférez ne pas donner votre clé de compte de stockage, mais auxquels vous souhaitez déléguer l’accès à certaines ressources de compte de stockage. Quand vous distribuez un URI de signature d’accès partagé à ces clients, vous leur accordez l’accès à une ressource pour une période spécifiée.

Avec une signature SAP, vous pouvez définir différents paramètres d’accès à un objet blob, tels que les heures de début et d’expiration, les autorisations (lecture/écriture) et les plages d’adresses IP. Cet article décrit comment utiliser la signature SAS avec Azure Content Delivery Network. Pour plus d’informations sur les SAP, notamment sur la création de leurs options de paramètre, consultez Utilisation des signatures d’accès partagé (SAP).

Configuration d’Azure Content Delivery Network pour qu’il fonctionne avec la signature SAS de stockage

Les deux options suivantes sont recommandées pour l’utilisation de la signature SAS avec Azure Content Delivery Network. Toutes les options partent du principe que vous avez déjà créé une SAP opérationnelle (voir les prérequis).

Prérequis

Pour commencer, créez un compte de stockage, puis générez une SAP pour votre ressource. Vous pouvez générer deux types de signatures d’accès partagé : une SAP de service ou une SAP de compte. Pour plus d’informations, consultez Types de signatures d’accès partagé.

Après avoir généré un jeton SAP, vous pouvez accéder à votre fichier de stockage d’objets blob en ajoutant ?sv=<SAS token> à l’URL. Cette URL a le format suivant :

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

Par exemple :

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

Pour plus d’informations sur la définition des paramètres, consultez Considérations relatives aux paramètres SAS et Paramètres de la signature d’accès partagé (SAS).

Capture d’écran des paramètres SAS du réseau de distribution de contenu.

Option 1 : Utilisation de SAS avec transfert direct vers le stockage blob à partir d’Azure Content Delivery Network

Cette option est la plus simple et utilise un jeton SAS unique, qui est passé d’Azure Content Delivery Network au serveur d’origine.

  1. Sélectionnez un point de terminaison, sélectionnez Règles de mise en cache, puis sélectionnez Mettre en cache chaque URL unique dans la liste Mise en cache de chaîne de requête.

    Capture d’écran des règles de mise en cache du réseau de distribution de contenu.

  2. Après avoir configuré SAS sur votre compte de stockage, vous devez utiliser le jeton SAS avec les URL du point de terminaison du réseau de distribution de contenu et du serveur d’origine pour accéder au fichier.

    L’URL du point de terminaison du réseau de distribution de contenu qui en résulte a le format suivant : https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>

    Par exemple :

    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. Affinez la durée du cache à l’aide de règles de mise en cache ou en ajoutant des en-têtes Cache-Control au serveur d’origine. Étant donné qu’Azure Content Delivery Network traite le jeton SAS comme une chaîne de requête simple, la bonne pratique consiste à définir une durée de mise en cache qui expire au plus tard au moment de l’expiration de la signature SAS. Dans le cas contraire, si un fichier est mis en cache pour une durée plus longue que celle pendant laquelle la signature SAS est active, le fichier peut être accessible à partir du serveur d’origine Azure Content Delivery Network après l’expiration de la signature SAS. Si ce cas se produit et que vous souhaitez rendre votre fichier de mise en cache inaccessible, vous devez effectuer une opération de vidage sur le fichier afin de le supprimer du cache. Pour plus d’informations sur la définition de la durée du cache sur Azure Content Delivery Network, consultez Contrôler le comportement de mise en cache d’Azure Content Delivery Network au moyen de règles de mise en cache.

Option 2 : Utilisation de l’authentification par jeton de sécurité du réseau de distribution de contenu avec une règle de réécriture

Pour utiliser l’authentification par jeton de sécurité Azure Content Delivery Network, vous devez disposer d’un profil Azure CDN Premium d’Edgio. Cette option est la plus sécurisée et personnalisable. L’accès du client est basé sur les paramètres de sécurité que vous avez définis sur le jeton de sécurité. Une fois que vous avez créé et configuré le jeton de sécurité, celui-ci est nécessaire sur toutes les URL du point de terminaison du réseau de distribution de contenu. Toutefois, en raison de la règle de réécriture d’URL, le jeton SAS n’est pas nécessaire sur le point de terminaison du réseau de distribution de contenu. Si le jeton SAS devient non valide, Azure Content Delivery Network ne peut plus revalider le contenu à partir du serveur d’origine.

  1. Créez un jeton de sécurité Azure Content Delivery Network et activez-le à l’aide du moteur de règles pour le point de terminaison du réseau de distribution de contenu et le chemin où les utilisateurs peuvent accéder au fichier.

    Une URL de point de terminaison de jeton de sécurité a le format suivant :

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

    Par exemple :

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

    Les options de paramètres pour l’authentification de jeton de sécurité diffèrent de celles pour un jeton SAP. Si vous choisissez d’utiliser un délai d’expiration quand vous créez un jeton de sécurité, vous devez lui affecter la même valeur que le délai d’expiration du jeton SAP. Cela garantit le caractère prévisible du délai d’expiration.

  2. Utilisez le moteur de règles pour créer une règle de réécriture d’URL visant à activer l’accès du jeton SAP à tous les objets blob dans le conteneur. La propagation de nouvelles règles peut prendre jusqu’à 4 heures.

    L’exemple de règle de réécriture d’URL suivant utilise un modèle d’expression régulière avec un groupe de capture et un point de terminaison nommé sasstoragedemo :

    Source :

    (container1/.*)

    Destination :

    $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%3DCapture d’écran de la règle de réécriture de l’URL du réseau de distribution de contenu - gauche.Capture d’écran de la règle de réécriture de l’URL du réseau de distribution de contenu - droite.

  3. Si vous renouvelez la signature SAS, n’oubliez pas de mettre à jour la règle de réécriture d’URL avec le nouveau jeton SAS.

Considérations relatives aux paramètres SAP

Azure Content Delivery Network ne peut pas changer son comportement de distribution en se basant sur les paramètres SAS, car il ne les voit pas. Les restrictions de paramètres définies s’appliquent uniquement aux requêtes envoyées par Azure Content Delivery Network au serveur d’origine, et non aux requêtes du client sur Azure Content Delivery Network. Cette distinction est importante quand vous définissez des paramètres SAP. Si ces fonctionnalités avancées sont nécessaires et que vous utilisez l’Option 2, définissez les restrictions appropriées sur le jeton de sécurité Azure Content Delivery Network.

Nom du paramètre SAP Description
Démarrer Heure à laquelle Azure Content Delivery Network peut commencer à accéder au fichier blob. En raison des variations d’horloges (quand un signal d’horloge arrive à des moments différents pour différents composants), vous devez choisir une heure 15 minutes plus tôt si vous souhaitez que la ressource soit disponible immédiatement.
End Heure après laquelle Azure Content Delivery Network ne peut plus accéder au fichier blob. Les fichiers précédemment mis en cache sur Azure Content Delivery Network sont toujours accessibles. Pour contrôler le délai d’expiration des fichiers, définissez le délai d’expiration approprié sur le jeton de sécurité Azure Content Delivery Network ou nettoyez la ressource.
Adresses IP autorisées facultatif. Si vous utilisez Azure CDN depuis Edgio, vous pouvez définir ce paramètre sur les plages définies dans Azure Content Delivery Network à partir des plages IP de serveur de périphérie Edgio.
Protocoles autorisés Protocoles autorisés pour une requête effectuée avec la signature SAS de compte. Le paramètre HTTPS est recommandé.

Étapes suivantes

Pour plus d'informations sur les SAP, voir les articles suivants :

Pour plus d’informations sur la configuration de l’authentification par jeton, voir Sécuriser des ressources Azure Content Delivery Network avec l’authentification par jeton.