Utiliser des URL signées - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des URL signées

Une URL signée inclut des informations supplémentaires, par exemple une heure et date d’expiration, qui vous donnent un meilleur contrôle de l’accès à votre contenu. Ces informations supplémentaires apparaissent dans une déclaration de politique, basée sur une politique prédéfinie ou une politique personnalisée. Les différences entre les politiques prédéfinies et les politiques personnalisées sont expliquées dans les deux prochaines sections.

Note

Vous pouvez créer certaines URL signées à l’aide de politiques prédéfinies et d’autres à l’aide de politiques personnalisées pour la même distribution.

Décidez d'utiliser des politiques prédéfinies ou personnalisées pour les URL signées

Lorsque vous créez une URL signée, vous écrivez une instruction de politique au format JSON qui spécifie les restrictions sur l’URL signée : par exemple, la durée de validité de l’URL. Vous pouvez utiliser une politique prédéfinie ou une politique personnalisée. Comparaison des politiques prédéfinies et des politiques personnalisées :

Description Politique prédéfinie Politique personnalisée

Vous pouvez réutiliser la déclaration de politique pour plusieurs fichiers. Pour ce faire, vous devez utiliser les caractères génériques de l’objet Resource. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez dans la déclaration de politique d’une URL signée utilisant une politique personnalisée.)

Non

Oui

Vous pouvez indiquer la date et l’heure auxquelles les utilisateurs peuvent commencer à accéder à votre contenu.

Non

Oui (facultatif)

Vous pouvez indiquer la date et l’heure auxquelles les utilisateurs ne peuvent plus accéder à votre contenu.

Oui

Oui

Vous pouvez spécifier l’adresse IP ou la plage d’adresses IP des utilisateurs qui peuvent accéder à votre contenu.

Non

Oui (facultatif)

L’URL signée inclut une version encodée base 64 de la politique, ce qui se traduit par une URL plus longue.

Non

Oui

Pour plus d’informations sur la création d’URL signées à l’aide d’une politique prédéfinie, consultez Création d'une URL signée à l'aide d'une politique prédéfinie.

Pour plus d’informations sur la création d’URL signées à l’aide d’une politique personnalisée, consultez Création d'une URL signée à l'aide d'une politique personnalisée.

Fonctionnement des URL signées

Voici un aperçu de la façon dont vous configurez CloudFront et Amazon S3 pour les URL signées et de la façon dont un utilisateur CloudFront répond lorsqu'un utilisateur utilise une URL signée pour demander un fichier.

  1. Dans votre CloudFront distribution, spécifiez un ou plusieurs groupes de clés fiables, qui contiennent les clés publiques CloudFront pouvant être utilisées pour vérifier la signature de l'URL. Vous utilisez les clés privées correspondantes pour signer les URL.

    Pour plus d’informations, consultez Spécifiez les signataires autorisés à créer des URL signées et des cookies signés.

  2. Développez votre application pour déterminer si un utilisateur doit avoir accès à votre contenu et pour créer des URL signées pour les fichiers ou parties de votre application auxquels vous voulez limiter l’accès. Pour plus d’informations, consultez les rubriques suivantes :

  3. Un utilisateur demande un fichier pour lequel vous voulez requérir des URL signées.

  4. Votre application vérifie que l’utilisateur est autorisé à accéder au fichier : il est abonné, il a payé pour accéder au contenu ou il a satisfait à quelque autre condition pour accéder.

  5. Votre application crée et renvoie une URL signée à l’utilisateur.

  6. L’URL signée autorise l’utilisateur à télécharger ou diffuser le contenu.

    Cette étape est automatique ; l’utilisateur n’a généralement rien à faire de plus pour accéder au contenu. Pa exemple, si un utilisateur accède à votre contenu dans un navigateur web, votre application renvoie l’URL signée au navigateur. Le navigateur utilise immédiatement l'URL signée pour accéder au fichier dans le cache CloudFront périphérique sans aucune intervention de l'utilisateur.

  7. CloudFront utilise la clé publique pour valider la signature et confirmer que l'URL n'a pas été falsifiée. Si la signature n’est pas valide, la demande est rejetée.

    Si la signature est valide, CloudFront examine la déclaration de politique contenue dans l'URL (ou en crée une si vous utilisez une politique prédéfinie) pour confirmer que la demande est toujours valide. Par exemple, si vous avez spécifié une date et une heure de début et de fin pour l'URL, cela CloudFront confirme que l'utilisateur essaie d'accéder à votre contenu pendant la période pendant laquelle vous souhaitez autoriser l'accès.

    Si la demande répond aux exigences de la déclaration de politique, CloudFront effectue les opérations standard : détermine si le fichier se trouve déjà dans le cache périphérique, transmet la demande à l'origine si nécessaire et renvoie le fichier à l'utilisateur.

Note

Si une URL non signée contient des paramètres de chaîne de requête, assurez-vous de les inclure dans la partie de l’URL que vous signez. Si vous ajoutez une chaîne de requête à une URL signée après l’avoir signée, l’URL renvoie un code d’état HTTP 403.

Décidez de la durée de validité des URL signées

Vous pouvez distribuer le contenu privé à l’aide d’une URL signée qui est valide pendant une brève durée, de quelques minutes au plus. Les URL signées qui sont valides pour une période aussi courte sont utiles pour distribuer du contenu on-the-fly à un utilisateur dans un but précis, comme la location de films ou le téléchargement de musique aux clients à la demande. Si vos URL signées sont valides pour une brève période, vous voudrez probablement les générer automatiquement à l’aide d’une application que vous développez. Lorsque l'utilisateur commence à télécharger un fichier ou à lire un fichier multimédia, CloudFront compare le délai d'expiration indiqué dans l'URL avec l'heure actuelle pour déterminer si l'URL est toujours valide.

Vous pouvez aussi distribuer le contenu privé à l’aide d’une URL signée qui est valide pour une durée plus longue, quelques années peut-être. Les URL signées qui sont valides pendant une période plus longue sont utiles pour distribuer un contenu privé aux utilisateurs connus, comme la distribution d’un business plan aux investisseurs ou de documents de formation aux employés. Vous pouvez développer une application pour générer ces URL signées à plus long terme pour vous.

Quand CloudFront vérifie la date et l'heure d'expiration dans une URL signée

CloudFront vérifie la date et l'heure d'expiration d'une URL signée au moment de la requête HTTP. Si un client commence à télécharger un fichier volumineux immédiatement avant la date d’expiration, le téléchargement se termine même si la date d’expiration intervient pendant le téléchargement. Si la connexion TCP cesse et que le client essaie de redémarrer le téléchargement une fois la date d’expiration passée, le téléchargement échoue.

Si un client utilise des intervalles GET pour obtenir un fichier en parties plus petites, toute requête GET qui intervient après la date d’expiration échoue. Pour plus d’informations sur Range GET, consultez Comment CloudFront traite les demandes partielles pour un objet (plage GETS).

Exemple de code et outils tiers

Pour obtenir un exemple de code qui crée la partie hachée et signée des URL signées, consultez les rubriques suivantes :