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.
Définissez des cookies signés à l'aide d'une politique prédéfinie
Pour définir un cookie signé à l’aide d’une politique prédéfinie, procédez comme suit. Pour créer la signature, consultez Création d'une signature pour un cookie signé qui utilise une politique prédéfinie.
Pour définir un cookie signé à l’aide d’une politique prédéfinie
-
Si vous utilisez. NETou Java pour créer des cookies signés, et si vous n'avez pas reformaté la clé privée de votre paire de clés du format .pem par défaut à un format compatible avec. NETou avec Java, faites-le maintenant. Pour de plus amples informations, veuillez consulter Reformatez la clé privée (. NETet Java uniquement).
-
Programmez votre application pour qu’elle envoie trois en-têtes
Set-Cookie
aux utilisateurs approuvées. Vous avez besoin de troisSet-Cookie
en-têtes car chaqueSet-Cookie
en-tête ne peut contenir qu'une seule paire nom-valeur, et un cookie CloudFront signé nécessite trois paires nom-valeur. Les paires nom-valeur sont :CloudFront-Expires
,CloudFront-Signature
etCloudFront-Key-Pair-Id
. Les valeurs doivent être présentes sur la visionneuse avant qu’un utilisateur ne puisse faire la requête d’un fichier dont vous voulez contrôler l’accès.Note
En règle générale, nous recommandons d’exclure les attributs
Expires
etMax-Age
. L’exclusion des attributs conduit le navigateur à supprimer le cookie quand l’utilisateur ferme le navigateur, ce qui réduit la possibilité qu’une personne obtienne un accès non autorisé à votre contenu. Pour de plus amples informations, veuillez consulter Empêcher l'utilisation abusive des cookies signés.Les noms des attributs de cookie sont sensibles à la casse.
Les sauts de ligne ne sont inclus que pour rendre les attributs plus lisibles.
Set-Cookie: CloudFront-Expires=
date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly Set-Cookie: CloudFront-Signature=hashed and signed version of the policy statement
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly- (Facultatif)
Domain
-
Nom de domaine du fichier demandé. Si vous ne spécifiez aucun
Domain
attribut, la valeur par défaut est le nom de domaine dans leURL, et elle s'applique uniquement au nom de domaine spécifié, pas aux sous-domaines. Si vous spécifiez un attributDomain
, il s’applique aussi aux sous-domaines. Un point devant le nom de domaine (par exemple,Domain=.example.com
) est facultatif. En outre, si vous spécifiez unDomain
attribut, le nom de domaine URL et la valeur de l'Domain
attribut doivent correspondre.Vous pouvez spécifier le nom de domaine CloudFront attribué à votre distribution, par exemple d111111abcdef8.cloudfront.net, mais vous ne pouvez pas spécifier*.cloudfront.net pour le nom de domaine.
Si vous souhaitez utiliser un autre nom de domaine tel que exemple.com dansURLs, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez ou non l'
Domain
attribut. Pour plus d’informations, consultez Noms de domaine alternatifs (CNAMEs) dans la rubrique Référence des paramètres de distribution. - (Facultatif)
Path
-
Chemin d’accès du fichier demandé. Si vous ne spécifiez aucun
Path
attribut, la valeur par défaut est le chemin dans leURL. Secure
-
Nécessite que l’utilisateur chiffre les cookies avant d’envoyer une demande. Nous vous recommandons d'envoyer l'
Set-Cookie
en-tête via une HTTPS connexion pour vous assurer que les attributs du cookie sont protégés contre man-in-the-middle les attaques. HttpOnly
-
Définit la manière dont le navigateur (lorsqu'il est pris en charge) interagit avec la valeur du cookie. Avec
HttpOnly
, les valeurs des cookies ne sont pas accessibles à JavaScript. Cette précaution peut contribuer à atténuer les attaques par script intersite ()XSS. Pour plus d'informations, consultez la section Utilisation de HTTP cookies. CloudFront-Expires
-
Spécifiez la date et l'heure d'expiration au format Unix (en secondes) et en temps universel coordonné (UTC). Par exemple, le 1er janvier 2013 à 10 h est UTC converti en 1357034400 au format horaire Unix. Pour utiliser l'heure de l'époque, utilisez un entier de 32 bits pour une date qui n'est pas postérieure à 2147483647 (19 janvier 2038 à 03:14:07). UTC Pour plus d'informations surUTC, voir RFC3339, Date et heure sur Internet : horodatages,. https://tools.ietf.org/html/rfc3339
CloudFront-Signature
-
Version hachée, signée et codée en base64 d'une JSON déclaration de politique. Pour de plus amples informations, veuillez consulter Création d'une signature pour un cookie signé qui utilise une politique prédéfinie.
CloudFront-Key-Pair-Id
-
L'ID d'une clé CloudFront publique, par exemple,
K2JCJMDEHXQW5F
. L'ID de clé publique indique CloudFront la clé publique à utiliser pour valider le document signéURL. CloudFront compare les informations de la signature avec celles de la déclaration de politique pour vérifier qu'elles n'ont pas URL été falsifiées.Cette clé publique doit appartenir à un groupe de clés qui est un signataire approuvé dans la distribution. Pour de plus amples informations, veuillez consulter Spécifiez les signataires autorisés à créer des cookies signés URLs et signés.
- (Facultatif)
L'exemple suivant montre Set-Cookie
les en-têtes d'un cookie signé lorsque vous utilisez le nom de domaine associé à votre distribution dans URLs vos fichiers :
Set-Cookie: CloudFront-Expires=1426500000; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
L'exemple suivant montre Set-Cookie
les en-têtes d'un cookie signé lorsque vous utilisez le nom de domaine alternatif exemple.org URLs pour vos fichiers :
Set-Cookie: CloudFront-Expires=1426500000; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/images/*; Secure; HttpOnly
Si vous souhaitez utiliser un autre nom de domaine tel que exemple.com dansURLs, vous devez ajouter le nom de domaine alternatif à votre distribution, que vous spécifiiez ou non l'Domain
attribut. Pour plus d’informations, consultez Noms de domaine alternatifs (CNAMEs) dans la rubrique Référence des paramètres de distribution.
Création d'une signature pour un cookie signé qui utilise une politique prédéfinie
Pour créer la signature d'un cookie signé qui utilise une politique prédéfinie, procédez comme suit.
Rubriques
Création d'une déclaration de politique pour un cookie signé qui utilise une politique prédéfinie
Lorsque vous définissez un cookie signé qui utilise une politique prédéfinie, l’attribut CloudFront-Signature
est une version hachée et signée d’une déclaration de politique. Pour les cookies signés qui utilisent une politique prédéfinie, vous n’incluez pas la déclaration de politique dans l’en-tête Set-Cookie
, comme vous le faites pour les cookies signés qui utilisent une politique personnalisée. Pour créer l’a déclaration de politique, procédez comme suit.
Pour créer une déclaration de politique pour un cookie signé qui utilise une politique prédéfinie
-
Construisez la déclaration de politique en utilisant le JSON format suivant et en utilisant un codage de UTF -8 caractères. Incluez la ponctuation et les autres valeurs littérales exactement comme spécifié. Pour plus d’informations sur les paramètres
Resource
etDateLessThan
, consultez Valeurs que vous spécifiez dans la déclaration de politique d’une politique prédéfinie pour les cookies signés.{ "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
-
Supprimez tous les espaces vides (y compris les tabulations et les caractères de nouvelle ligne) de la déclaration de politique. Il se peut que vous ayez à inclure des caractères d’échappement dans la chaîne du code d’application.
Valeurs que vous spécifiez dans la déclaration de politique d’une politique prédéfinie pour les cookies signés
Lorsque vous créez une déclaration de politique pour une politique prédéfinie, vous spécifiez les valeurs suivantes :
- Ressource
-
La base URL incluant vos chaînes de requête, le cas échéant, par exemple :
https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes
Vous ne pouvez spécifier qu’une seule valeur pour
Resource
.Remarques :
-
Protocole : la valeur doit commencer par
http://
ouhttps://
. -
Paramètres de chaîne de requête : si vous n’avez aucun paramètre de chaîne de requête, omettez le point d’interrogation.
-
Noms de domaine alternatifs : si vous spécifiez un autre nom de domaine (CNAME) dans leURL, vous devez le spécifier lorsque vous référencez le fichier sur votre page Web ou votre application. Ne spécifiez pas l'Amazon S3 URL pour le fichier.
-
- DateLessThan
-
Date et heure d'expiration du URL format Unix (en secondes) et du temps universel coordonné (UTC). N’entourez pas la valeur de points d’interrogation.
Par exemple, le 16 mars 2015 à 10 h est UTC converti en 1426500000 au format horaire Unix.
Cette valeur doit correspondre à la valeur de l’attribut
CloudFront-Expires
de l’en-têteSet-Cookie
. N’entourez pas la valeur de points d’interrogation.Pour de plus amples informations, veuillez consulter Quand CloudFront vérifie la date et l'heure d'expiration dans un cookie signé.
Exemple de déclaration de politique pour une politique prédéfinie
Lorsque vous utilisez l'exemple de déclaration de politique suivant dans un cookie signé, un utilisateur peut accéder au fichier https://d111111abcdef8.cloudfront.net/horizon.jpg
jusqu'au 16 mars 2015 à 10 h 00 UTC :
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes", "Condition": { "DateLessThan": { "AWS:EpochTime": 1426500000 } } } ] }
Signez la déclaration de politique pour créer une signature pour un cookie signé qui utilise une politique prédéfinie
Pour créer la valeur de l’attribut CloudFront-Signature
d’un en-tête Set-Cookie
, vous hachez et signez la déclaration de politique que vous avez créée dans Pour créer une déclaration de politique pour un cookie signé qui utilise une politique prédéfinie.
Pour plus d’informations et d’exemples sur la façon de hacher, signer et encoder la déclaration de politique, consultez les rubriques suivantes :
Pour créer une signature pour un cookie signé qui utilise une politique prédéfinie
-
Utilisez la fonction de hachage SHA -1 RSA pour hacher et signer la déclaration de politique que vous avez créée dans la procédure. Pour créer une déclaration de politique pour un cookie signé qui utilise une politique prédéfinie Utilisez la version de la déclaration de politique qui ne contient plus d'espaces vides.
Pour la clé privée requise par la fonction de hachage, utilisez une clé privée dont la clé publique se trouve dans un groupe de clés approuvé actif pour la distribution.
Note
La méthode que vous utilisez pour hacher et signer la déclaration de politique dépend du langage de programmation et de la plateforme. Pour un exemple de code, consultez Exemples de code pour créer une signature pour un document signé URL.
-
Supprimez les espaces vides (y compris les tabulations et les caractères de nouvelle ligne) de la chaîne hachée et signée.
-
Encodez la chaîne en base64 en utilisant MIME le codage base64. Pour plus d'informations, voir Section 6.8, Base64 Content-Transfer-Encoding
en RFC2045, MIME (Extensions de messagerie Internet polyvalentes) Première partie : Format des corps de messages Internet. -
Remplacez les caractères non valides dans une chaîne de URL requête par des caractères valides. Le tableau suivant répertorie les caractères valides et non valides.
Remplacer ces caractères non valides Par ces caractères valides +
- (trait d’union)
=
_ (soulignement)
/
~ (tilde)
-
Incluez la valeur obtenue dans l’en-tête
Set-Cookie
de la paire nom-valeurCloudFront-Signature
. Puis retournez à Pour définir un cookie signé à l’aide d’une politique prédéfinie pour ajouter l’en-têteSet-Cookie
deCloudFront-Key-Pair-Id
.