Spécification des signataires qui peuvent créer des URL et des cookies 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écification des signataires qui peuvent créer des URL et des cookies signés

Pour créer des URL ou des cookies 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 approuvés avec des URL et des cookies signés. Pour de plus amples informations, veuillez consulter Choix entre les groupes de clés (recommandé) et les comptes AWS approuvés.

Le signataire a deux finalités :

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

  • Lorsque vous créez des URL ou des cookies signés, vous utilisez la clé privée de la paire de clés du signataire pour signer une partie de l’URL ou du cookie. Lorsqu'un utilisateur demande un fichier restreint, CloudFront compare la signature contenue dans l'URL ou le cookie avec l'URL ou le cookie non signé, afin de vérifier qu'il n'a pas été falsifié. CloudFront vérifie également que l'URL ou le cookie 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 requièrent des URL ou des cookies signés en ajoutant le signataire à un comportement de cache. Si votre distribution ne comporte qu’un seul comportement de cache, les utilisateurs doivent employer des URL ou des cookies signés pour accéder à un fichier de la distribution. Si vous créez plusieurs comportements de cache et que vous ajoutez des utilisateurs à certains comportements de cache et pas à d’autres, vous pouvez exiger que les utilisateurs emploient des URL ou des cookies signés pour accéder à certains fichiers, et non à d’autres.

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

  1. Choisissez 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 Choix entre les groupes de clés (recommandé) et les comptes AWS approuvés.

  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éation de paires de clés pour vos signataires.

  3. Si vous utilisez .NET ou Java pour créer des URL signées ou des cookies signés, reformatez la clé privée. Pour de plus amples informations, veuillez consulter Reformatage de la clé privée (.NET et Java uniquement).

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

Choix entre les groupes de clés (recommandé) et les comptes AWS approuvés

Pour utiliser des URL ou des cookies 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 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 URL CloudFront signées et des cookies signés. AWSles 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 de l' CloudFront API. Vous pouvez utiliser l’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 des groupes de clés avec l' CloudFront API, vous pouvez également utiliser des 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éation de paires de clés pour vos signataires

Chaque signataire que vous utilisez pour créer des URL CloudFront signées ou des cookies signés doit disposer d'une paire de clés publique-privée. Le signataire utilise sa clé privée pour signer l'URL ou les 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 clés SSH-2 RSA.

  • Elle doit être au format PEM codé en base64.

  • 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 OpenSSL comme exemple de création d’une paire de clés. Il existe de nombreuses autres façons de créer une paire de clés RSA.

  1. L’exemple de commande suivant utilise OpenSSL pour générer une paire de clés RSA 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 Ajouter une clé publique.

  4. Dans la fenêtre Ajouter 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 lors de la création des URL ou des cookies signés, comme valeur du champ Key-Pair-Id.

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 l' 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 manière recommandée de créer des clés publiques pour les URL signées et les cookies signés, consultez Cré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 AWS Management Console et téléchargez la clé privée. Consultez la procédure suivante.

  • Créez une paire de clés RSA à l’aide d’une application tel qu’OpenSSL, puis chargez la clé publique sur AWS Management Console. Pour plus d’informations sur la création d’une paire de clés, consultez Cré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 à la AWS Management Console à l’aide des informations d’identification de l’utilisateur racine du compte AWS.

    Important

    Les utilisateurs d'IAM 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 et des URL signées 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 la AWS Management Console, cet ID est appelé ID de clé d’accès.) Vous l’utiliserez quand vous créerez des cookies ou des URL signés.

Reformatage de la clé privée (.NET et Java uniquement)

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

  • .NET framework : convertit la clé privée au format XML utilisé par .NET framework. Plusieurs outils sont disponibles.

  • Java : convertit la clé privée au format DER. On peut utiliser la commande OpenSSL suivante pour le faire. Dans la commande suivante, private_key.pem est le nom du fichier qui contient la clé privée au format PEM et private_key.der le nom du fichier qui contient la clé privée au format DER 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 garantir que l’encodeur fonctionne correctement, ajoutez le fichier JAR des API de chiffrement Bouncy Castle Java à votre projet, puis ajoutez le fournisseur Bouncy Castle.

Ajout d’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 URL signées et des cookies signés pour une distribution. Pour utiliser des URL signées ou des cookies signés avec une CloudFront distribution, vous devez spécifier un signataire.

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

De même, un signataire peut uniquement signer des URL ou des cookies 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 pour un autre comportement de cache, ni l’un ni l’autre ne peuvent créer des URL ou des cookies signés 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 n’exige pas d’URL signées ou de cookies signés, à l’inverse du second comportement de cache. Les utilisateurs pourront accéder aux fichiers sans utiliser les URL signées ou les cookies signés, parce que CloudFront traite le comportement de 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 à démarrer la génération d’URL et de cookies signés avant d’ajouter un signataire. Lorsque vous ajoutez un signataire, CloudFront rejette les demandes qui n'incluent pas d'URL signée ou de cookie signé valide.

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

Ajouter un signataire à une distribution à l'aide de la CloudFront 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 approuvé, mais ceci 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 URL ou des cookies 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 d’accès correspond aux fichiers que vous souhaitez protéger avec des URL ou des cookies signés, puis choisissez Modifier.

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

    1. Pour Restrict Viewer Access (Use Signed URLs or Signed Cookies), cliquez sur Yes.

    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.

Ajouter un signataire à une distribution à l'aide de l' CloudFront API

Vous pouvez utiliser l' 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 approuvé, mais ceci n’est pas recommandé.

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

Rotation de paires de clés

Nous vous recommandons d’effectuer une rotation (modifier) périodique de vos paires de clés pour les URL et les cookies signés. Pour effectuer une rotation des paires de clés que vous utilisez pour créer des URL ou des cookies signés sans invalider les URL ou cookies qui n’ont pas encore expiré, exécutez 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 URL ou les cookies signés avec les nouvelles clés privées fonctionnent.

  4. Attendez jusqu’à ce que la date d’expiration soit passée dans les URL ou cookies signés à l’aide de la paire de clés 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.