Spécifiez les signataires autorisés à créer des cookies signés URLs et signés - 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.

Spécifiez les signataires autorisés à créer des cookies signés URLs et signés

Pour créer des cookies signés URLs ou signés, vous avez besoin d'un signataire. Un signataire est soit un groupe de clés fiables dans lequel vous créez CloudFront, soit un AWS compte contenant une paire de CloudFront clés. Nous vous recommandons d'utiliser des groupes de clés fiables avec des cookies signés URLs et signés. Pour de plus amples informations, veuillez consulter Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS.

Le signataire a deux finalités :

  • Dès que vous ajoutez le signataire à votre distribution, CloudFront les spectateurs doivent désormais utiliser des cookies signés URLs ou signés pour accéder à vos fichiers.

  • Lorsque vous créez des cookies signés URLs ou signés, vous utilisez la clé privée de la paire de clés du signataire pour signer une partie du cookie URL ou du cookie. Lorsque quelqu'un demande l'accès à un fichier restreint, CloudFront compare la signature du cookie URL ou du cookie non signé URL avec celle du cookie non signé, afin de vérifier qu'il n'a pas été falsifié. CloudFront vérifie également que le cookie URL ou est valide, ce qui signifie, par exemple, que la date et l'heure d'expiration ne sont pas dépassées.

Lorsque vous spécifiez un signataire, vous spécifiez également indirectement les fichiers qui nécessitent des cookies signés URLs ou signés en ajoutant le signataire à un comportement de cache. Si votre distribution n'a qu'un seul comportement de cache, les utilisateurs doivent utiliser des cookies signés URLs ou signés pour accéder à tous les fichiers de la distribution. Si vous créez plusieurs comportements de cache et que vous ajoutez des signataires à certains comportements de cache et pas à d'autres, vous pouvez demander aux utilisateurs d'utiliser des cookies signés URLs ou signés pour accéder à certains fichiers et pas à d'autres.

Pour spécifier les signataires (les clés privées) autorisés à créer des cookies signés URLs ou signés, et pour ajouter les signataires à votre CloudFront distribution, effectuez les tâches suivantes :

  1. Décidez si vous souhaitez utiliser un groupe de clés approuvé ou un Compte AWS en tant que signataire. Nous vous recommandons d’utiliser un groupe de clés approuvé. Pour de plus amples informations, veuillez consulter Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS.

  2. Pour le signataire que vous avez choisi à l’étape 1, créez une paire de clés privées/publiques. Pour de plus amples informations, veuillez consulter Créez des paires de clés pour vos signataires.

  3. Si vous utilisez. NETou Java pour créer des cookies signés URLs ou signés, reformatez la clé privée. Pour de plus amples informations, veuillez consulter Reformatez la clé privée (. NETet Java uniquement).

  4. Dans la distribution pour laquelle vous créez des cookies signés URLs ou signés, spécifiez le signataire. Pour de plus amples informations, veuillez consulter Ajouter un signataire à une distribution.

Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS

Pour utiliser des cookies signés URLs ou signés, vous avez besoin d'un signataire. Un signataire est soit un groupe de clés fiables dans lequel vous créez CloudFront, soit un groupe Compte AWS contenant une paire de CloudFront clés. Nous vous recommandons d’utiliser des groupes de clés approuvés, pour les raisons suivantes :

  • Avec les groupes de CloudFront clés, il n'est pas nécessaire d'utiliser l'utilisateur root du AWS compte pour gérer les clés publiques des cookies CloudFront signés URLs et signés. AWS les meilleures pratiques recommandent de ne pas utiliser l'utilisateur root lorsque ce n'est pas nécessaire.

  • Avec les groupes de CloudFront clés, vous pouvez gérer les clés publiques, les groupes de clés et les signataires de confiance à l'aide du CloudFront API. Vous pouvez utiliser le API pour automatiser la création et la rotation des clés. Lorsque vous utilisez l'utilisateur AWS root, vous devez utiliser le AWS Management Console pour gérer les paires de CloudFront clés. Vous ne pouvez donc pas automatiser le processus.

  • Comme vous pouvez gérer les groupes de clés avec le CloudFront API, vous pouvez également utiliser les politiques d'autorisation AWS Identity and Access Management (IAM) pour limiter ce que les différents utilisateurs sont autorisés à faire. Par exemple, vous pouvez autoriser les utilisateurs à télécharger des clés publiques, mais pas à les supprimer. Vous pouvez également autoriser les utilisateurs à supprimer des clés publiques, mais uniquement lorsque certaines conditions sont remplies, telles que l’utilisation d’une authentification à plusieurs facteurs, l’envoi de la demande à partir d’un réseau particulier ou dans une plage de dates et d’heures spécifiques.

  • Avec les groupes de CloudFront clés, vous pouvez associer un plus grand nombre de clés publiques à votre CloudFront distribution, ce qui vous donne plus de flexibilité dans la manière dont vous utilisez et gérez les clés publiques. Par défaut, vous pouvez associer jusqu’à quatre groupes de clés avec une seule distribution, et vous pouvez avoir jusqu’à cinq clés publiques dans un groupe de clés.

    Lorsque vous utilisez l'utilisateur root du AWS compte pour gérer les paires de CloudFront clés, vous ne pouvez avoir que deux paires de CloudFront clés actives par AWS compte.

Créez des paires de clés pour vos signataires

Chaque signataire que vous utilisez pour créer des cookies CloudFront signés URLs ou signés doit posséder une paire de clés publique-privée. Le signataire utilise sa clé privée pour signer les URL cookies, et CloudFront utilise la clé publique pour vérifier la signature.

La façon dont vous créez une paire de clés varie selon que vous utilisez un groupe de clés approuvé comme signataire (recommandé) ou une paire de CloudFront clés. Pour plus d’informations, consultez les sections suivantes. La paire de clés que vous créez doit satisfaire aux exigences suivantes :

  • Il doit s'agir d'une paire de RSA clés SSH -2.

  • Il doit être au format codé en base64PEM.

  • Il doit s’agir d’une paire de clés 2048 bits.

Pour aider à sécuriser vos applications, nous vous recommandons d’effectuer une rotation périodique des paires de clés. Pour de plus amples informations, veuillez consulter Rotation de paires de clés.

Création d’une paire de clés pour un groupe de clés approuvé (recommandé)

Pour créer une paire de clés pour un groupe de clés approuvé, effectuez les opérations suivantes :

  1. Créez la paire de clés privées/publiques.

  2. Téléchargez la clé publique sur CloudFront.

  3. Ajoutez la clé publique à un groupe de CloudFront clés.

Pour plus d’informations, consultez les procédures suivantes.

Pour créer une paire de clés
Note

Les étapes suivantes utilisent Open SSL comme exemple de méthode de création d'une paire de clés. Il existe de nombreuses autres méthodes pour créer une paire de RSA clés.

  1. L'exemple de commande suivant utilise Open SSL pour générer une paire de RSA clés d'une longueur de 2048 bits et l'enregistrer dans le fichier nomméprivate_key.pem.

    openssl genrsa -out private_key.pem 2048
  2. Le fichier obtenu contient à la fois la clé publique et la clé privée. L’exemple de commande suivant extrait la clé publique du fichier nommé private_key.pem.

    openssl rsa -pubout -in private_key.pem -out public_key.pem

    Vous chargez la clé publique (dans le fichier public_key.pem) ultérieurement, dans le cadre de la procédure suivante.

Pour télécharger la clé publique sur CloudFront
  1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Dans le menu de navigation, choisissez Clés publiques.

  3. Choisissez Créer une clé publique.

  4. Dans la fenêtre Créer une clé publique, procédez comme suit :

    1. Dans Nom de la clé, saisissez un nom pour identifier la clé publique.

    2. Dans Valeur de clé, collez la clé publique. Si vous avez suivi les étapes de la procédure précédente, la clé publique se trouve dans le fichier nommé public_key.pem. Pour copier et coller le contenu de la clé publique, vous pouvez :

      • Utilisez la commande cat sur la ligne de commande macOS ou Linux, comme ceci :

        cat public_key.pem

        Copiez la sortie de cette commande, puis collez-la dans le champ Valeur de clé.

      • Ouvrez le public_key.pem fichier à l'aide d'un éditeur de texte brut tel que le Bloc-notes (sous Windows) ou TextEdit (sous macOS). Copiez le contenu du fichier, puis collez-le dans le champ Valeur de clé.

    3. (Facultatif) Dans Commentaire, ajoutez un commentaire pour décrire la clé publique.

    Lorsque vous avez terminé, choisissez Ajouter.

  5. Enregistrez l’ID de clé publique. Vous l'utiliserez ultérieurement lorsque vous créerez des cookies signés URLs ou signés, comme valeur du Key-Pair-Id champ.

Pour ajouter la clé publique à un groupe de clés
  1. Ouvrez la CloudFront console à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Dans le menu de navigation, choisissez Groupes de clés.

  3. Choisissez Ajouter un groupe de clés.

  4. Sur la page Créer un groupe de clés procédez comme suit :

    1. Dans Nom du groupe de clés, saisissez un nom pour identifier le groupe de clés.

    2. (Facultatif) Dans Commentaire, saisissez un commentaire pour décrire le groupe de clés.

    3. Dans Clés publiques, sélectionnez la clé publique à ajouter au groupe de clés, puis choisissez Ajouter. Répétez cette étape pour chaque clé publique que vous souhaitez ajouter au groupe de clés.

  5. Choisissez Créer une paire de clés.

  6. Enregistrez le nom du groupe de clés. Vous l'utiliserez ultérieurement pour associer le groupe de clés à un comportement de cache dans une CloudFront distribution. (Dans le CloudFront API, vous utilisez l'ID du groupe de clés pour associer le groupe de clés à un comportement de cache.)

Important

Nous vous recommandons de créer une clé publique pour un groupe de clés approuvé au lieu de suivre ces étapes. Pour connaître la méthode recommandée pour créer des clés publiques pour les cookies signés URLs et signés, consultezCréation d’une paire de clés pour un groupe de clés approuvé (recommandé).

Vous pouvez créer une paire de CloudFront clés de différentes manières :

  • Créez une paire de clés dans le AWS Management Console et téléchargez la clé privée. Consultez la procédure suivante.

  • Créez une paire de RSA clés à l'aide d'une application telle que OpenSSL, puis téléchargez la clé publique dans le AWS Management Console. Pour plus d'informations sur la création d'une paire de RSA clés, consultezCréation d’une paire de clés pour un groupe de clés approuvé (recommandé).

Pour créer des paires de CloudFront clés dans AWS Management Console
  1. Connectez-vous à l' AWS Management Console aide des informations d'identification de l'utilisateur root du AWS compte.

    Important

    IAMles utilisateurs ne peuvent pas créer de paires de CloudFront clés. Pour créer des paires de clés, vous devez vous connecter à l’aide des informations d’identification de l’utilisateur racine.

  2. Choisissez le nom de votre compte, puis Mes informations d’identification de sécurité.

  3. Choisissez CloudFront des paires de clés.

  4. Confirmez que vous n’avez pas plus d’une paire de clés active. Vous ne pouvez pas créer une paire de clés si vous en avez déjà deux actives.

  5. Choisissez Créer une nouvelle paire de clés.

    Note

    Vous pouvez également choisir de créer votre propre paire de clés et de télécharger la clé publique. CloudFront les paires de clés prennent en charge les clés de 1024, 2048 ou 4096 bits.

  6. Dans la boîte de dialogue Créer une paire de clés, choisissez Télécharger fichier de clés privées, puis enregistrez le fichier sur votre ordinateur.

    Important

    Enregistrez la clé privée de votre paire de CloudFront clés dans un emplacement sécurisé et définissez des autorisations sur le fichier afin que seuls les administrateurs souhaités puissent le lire. Si quelqu'un obtient votre clé privée, il peut générer des cookies signés URLs et signés valides et télécharger votre contenu. Vous ne pouvez pas récupérer la clé privée. Par conséquent, si vous la perdez ou la supprimez, vous devez créer une nouvelle paire de CloudFront clés.

  7. Enregistrez l’ID de paire de clés de votre paire de clés. (Dans le AWS Management Console, cela s'appelle l'ID de clé d'accès.) Vous l'utiliserez lorsque vous créerez des cookies signés URLs ou signés.

Reformatez la clé privée (. NETet Java uniquement)

Si vous utilisez. NETou Java pour créer des cookies signés URLs ou signés, vous ne pouvez pas utiliser la clé privée de votre paire de clés PEM au format par défaut pour créer la signature. Dans ce cas, procédez comme suit :

  • . NETframework — Convertissez la clé privée au XML format utilisé par. NETutilisations du framework. Plusieurs outils sont disponibles.

  • Java — Convertissez la clé privée au DER format. Pour ce faire, vous pouvez utiliser la SSL commande Open suivante. Dans la commande suivante, private_key.pem il s'agit du nom du fichier PEM contenant la clé privée private_key.der formatée et du nom du fichier contenant la clé privée DER formatée après l'exécution de la commande.

    openssl pkcs8 -topk8 -nocrypt -in private_key.pem -inform PEM -out private_key.der -outform DER

    Pour vous assurer que l'encodeur fonctionne correctement, ajoutez la cryptographie Java JAR for the Bouncy Castle APIs à votre projet, puis ajoutez le fournisseur Bouncy Castle.

Ajouter un signataire à une distribution

Un signataire est le groupe de clés approuvé (recommandé) ou la paire de CloudFront clés qui peut créer des cookies signés URLs et signés pour une distribution. Pour utiliser des cookies signés URLs ou signés avec une CloudFront distribution, vous devez spécifier un signataire.

Les signataires sont associés aux comportements de cache. Cela vous permet d'exiger des cookies signés URLs ou signés pour certains fichiers et pas pour d'autres de la même distribution. Une distribution nécessite des cookies URLs ou signés uniquement pour les fichiers associés aux comportements de cache correspondants.

De même, un signataire ne peut signer URLs ou utiliser des cookies que pour les fichiers associés aux comportements de cache correspondants. Par exemple, si vous avez un signataire pour un comportement de cache et un autre signataire pour un comportement de cache différent, aucun des signataires ne peut créer de signature URLs ou de cookies pour les fichiers associés à l'autre comportement de cache.

Important

Avant d’ajouter un signataire à votre distribution, procédez comme suit :

  • Définissez soigneusement les modèles de chemin d’accès dans les comportements de cache et la séquence des comportements de cache de façon à ne pas donner aux utilisateurs un accès non prévu à votre contenu ou à les empêcher d’accéder à un contenu que vous voulez disponible pour tout le monde.

    Par exemple, imaginons qu’une demande corresponde au modèle de chemin de deux comportements de cache. Le premier comportement de cache ne nécessite pas de cookies signés URLs ou signés, tandis que le second comportement de cache en nécessite. Les utilisateurs pourront accéder aux fichiers sans utiliser de cookies signés URLs ou signés, car il CloudFront traite le comportement du cache associé à la première correspondance.

    Pour plus d’informations sur les modèles de chemin d’accès, consultez Modèle de chemin d’accès.

  • Pour une distribution que vous utilisez déjà pour distribuer du contenu, assurez-vous d'être prêt à commencer à générer des cookies signés URLs et signés avant d'ajouter un signataire. Lorsque vous ajoutez un signataire, il CloudFront rejette les demandes qui n'incluent pas de cookie signé URL ou signé valide.

Vous pouvez ajouter des signataires à votre distribution à l'aide de la CloudFront console ou du CloudFrontAPI.

Console

Les étapes suivantes montrent comment ajouter un groupe de clés approuvé en tant que signataire. Vous pouvez également ajouter un Compte AWS en tant que signataire de confiance, mais cela n'est pas recommandé.

Pour ajouter un signataire à une distribution à l’aide de la console
  1. Enregistrez l’ID de groupe de clés du groupe de clés que vous souhaitez utiliser en tant que signataire approuvé. Pour de plus amples informations, veuillez consulter Création d’une paire de clés pour un groupe de clés approuvé (recommandé).

  2. Ouvrez la CloudFront console à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

  3. Choisissez la distribution dont vous souhaitez protéger les fichiers avec des cookies signés URLs ou signés.

    Note

    Pour ajouter un signataire à une nouvelle distribution, vous spécifiez les mêmes paramètres que ceux décrits à l’étape 6 lors de la création de la distribution.

  4. Choisissez l’onglet Comportements.

  5. Sélectionnez le comportement du cache dont le modèle de chemin correspond aux fichiers que vous souhaitez protéger avec des cookies signés URLs ou signés, puis choisissez Modifier.

  6. Sur la page Modifier le comportement procédez comme suit :

    1. Pour Restreindre l'accès des spectateurs (utiliser des cookies signés URLs ou signés), sélectionnez Oui.

    2. Dans Groupes de clés approuvés ou Signataire approuvé, choisissez Groupes de clés approuvés.

    3. Dans Groupes de clés approuvés, choisissez le groupe de clés à ajouter, puis Ajouter. Recommencez si vous souhaitez ajouter plusieurs groupes de clés.

  7. Choisissez Oui, Modifier pour mettre à jour le comportement du cache.

API

Vous pouvez utiliser le CloudFront API pour ajouter un groupe de clés fiables en tant que signataire. Vous pouvez ajouter un signataire à une distribution existante ou à une nouvelle distribution. Dans les deux cas, spécifiez les valeurs dans l’élément TrustedKeyGroups.

Vous pouvez également ajouter un Compte AWS en tant que signataire de confiance, mais cela n'est pas recommandé.

Consultez les rubriques suivantes dans le manuel Amazon CloudFront API Reference :

Rotation de paires de clés

Nous vous recommandons de faire régulièrement pivoter (modifier) vos paires de clés pour les cookies signés URLs et signés. Pour faire pivoter les paires de clés que vous utilisez pour créer des cookies signés URLs ou signés sans les invalider URLs ou des cookies qui n'ont pas encore expiré, effectuez les tâches suivantes :

  1. Créez une nouvelle paire de clés et ajoutez la clé publique à un groupe de clés. Pour de plus amples informations, veuillez consulter Création d’une paire de clés pour un groupe de clés approuvé (recommandé).

  2. Si vous avez créé un nouveau groupe de clés à l’étape précédente, ajoutez le groupe de clés à la distribution en tant que signataire.

    Important

    Ne supprimez pas encore des clés publiques existantes du groupe de clés, ni les groupes de clés de la distribution. Ajoutez seulement les nouveaux.

  3. Mettez à jour votre application pour créer des signatures à l’aide des clés privées à partir de la nouvelle paire de clés. Vérifiez que les cookies signés URLs ou signés avec les nouvelles clés privées fonctionnent.

  4. Attendez que la date d'expiration soit passée URLs ou que les cookies aient été signés à l'aide de la clé privée précédente. Ensuite, supprimez l’ancienne clé publique du groupe de clés. Si vous avez créé un nouveau groupe de clés à l’étape 2, supprimez l’ancien groupe de clés de votre distribution.