

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
<a name="private-content-trusted-signers"></a>

**Topics**
+ [Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS](#choosing-key-groups-or-AWS-accounts)
+ [Création de paires de clés pour vos signataires](#private-content-creating-cloudfront-key-pairs)
+ [Reformatage de la clé privée (.NET et Java uniquement)](#private-content-reformatting-private-key)
+ [Ajout d’un signataire à une distribution](#private-content-adding-trusted-signers)
+ [Rotation de paires de clés](#private-content-rotating-key-pairs)

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 plus d’informations, consultez [Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS](#choosing-key-groups-or-AWS-accounts).

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. 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 plus d’informations, consultez [Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS](#choosing-key-groups-or-AWS-accounts).

1. Pour le signataire que vous avez choisi à l’étape 1, créez une paire de clés privées/publiques. Pour plus d’informations, consultez [Création de paires de clés pour vos signataires](#private-content-creating-cloudfront-key-pairs).

1. Si vous utilisez .NET ou Java pour créer des URL signées ou des cookies signés, reformatez la clé privée. Pour plus d’informations, consultez [Reformatage de la clé privée (.NET et Java uniquement)](#private-content-reformatting-private-key).

1. 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](#private-content-adding-trusted-signers).

## Choisissez entre des groupes de clés fiables (recommandé) et Comptes AWS
<a name="choosing-key-groups-or-AWS-accounts"></a>

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 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 URL CloudFront signées et des cookies signés. [AWS les meilleures pratiques](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root) 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 Gestion des identités et des accès AWS (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
<a name="private-content-creating-cloudfront-key-pairs"></a>

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 2048 ou ECDSA 256.
+ Elle doit être au format PEM codé en base64.

Pour aider à sécuriser vos applications, nous vous recommandons d’effectuer une rotation périodique des paires de clés. Pour plus d’informations, consultez [Rotation de paires de clés](#private-content-rotating-key-pairs).

### Création d’une paire de clés pour un groupe de clés approuvé (recommandé)
<a name="create-key-pair-and-key-group"></a>

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.

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

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

Pour plus d’informations, consultez les procédures suivantes.<a name="private-content-uploading-cloudfront-public-key-procedure"></a>

**Pour créer une paire de clés**
**Note**  
Les étapes suivantes utilisent OpenSSL comme exemple d’une méthode permettant de créer une paire de clés. Il existe de nombreuses autres façons de créer une paire de clés RSA ou ECDSA.

1. Exécutez une des commandes d’exemple suivantes :
   + 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
     ```
   + L’exemple de commande suivant utilise OpenSSL pour générer une paire de clés ECDSA avec la courbe `prime256v1` et l’enregistrer dans le fichier nommé `private_key.pem`.

     ```
     openssl ecparam -name prime256v1 -genkey -noout -out privatekey.pem
     ```

1. 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'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

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

1. Choisissez **Créer une clé publique**.

1. 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.

   1. 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é**.

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

   Lorsque vous avez terminé, choisissez **Ajouter**.

1. 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'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

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

1. Choisissez **Ajouter un groupe de clés**.

1. 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.

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

   1. 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.

1. Choisissez **Créer une paire de clés**.

1. 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.)

### Créez une paire de CloudFront clés (non recommandé, nécessite le Compte AWS utilisateur root)
<a name="create-key-pair-aws-account"></a>

**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é)](#create-key-pair-and-key-group).

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 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é)](#create-key-pair-and-key-group).<a name="private-content-creating-cloudfront-key-pairs-procedure"></a>

**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**  
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.

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

1. Choisissez **CloudFront des paires de clés**.

1. 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.

1. 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.

1. 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.

1. 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 quand vous créerez des cookies ou des URL signés.

## Reformatage de la clé privée (.NET et Java uniquement)
<a name="private-content-reformatting-private-key"></a>

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` il s'agit du nom du fichier contenant la clé PEM-formatted privée et `private_key.der` du nom du fichier contenant la clé DER-formatted privée une fois que vous avez exécuté 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
<a name="private-content-adding-trusted-signers"></a>

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](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern).
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.

------
#### [ 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é.<a name="private-content-adding-trusted-signers-console-procedure"></a>

**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é)](#create-key-pair-and-key-group).

1. Ouvrez la CloudFront console à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. 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.

1. Choisissez l’onglet **Comportements**.

1. 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**.

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

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

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

   1. 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.

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

------
#### [ 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 de confiance, mais cela n'est pas recommandé.

Consultez les rubriques suivantes dans le manuel *Amazon CloudFront API Reference* :
+ **Mettre à jour une distribution existante** — [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)
+ **Créez une nouvelle distribution** — [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)

------

## Rotation de paires de clés
<a name="private-content-rotating-key-pairs"></a>

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 plus d’informations, consultez [Création d’une paire de clés pour un groupe de clés approuvé (recommandé)](#create-key-pair-and-key-group).

1. 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](#private-content-adding-trusted-signers).
**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.

1. 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.

1. 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.