

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.

# Création d’une URL signée à l’aide d’une politique prédéfinie
<a name="private-content-creating-signed-url-canned-policy"></a>

Pour créer une URL signée à l’aide d’une politique prédéfinie, procédez comme suit.<a name="private-content-creating-signed-url-canned-policy-procedure"></a>

**Pour créer une URL signée à l’aide d’une politique prédéfinie**

1. Si vous utilisez .NET ou Java pour créer des fichiers signés URLs, 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 .NET ou Java, faites-le maintenant. Pour de plus amples informations, veuillez consulter [Reformatage de la clé privée (.NET et Java uniquement)](private-content-trusted-signers.md#private-content-reformatting-private-key).

1. Concaténez les valeurs suivantes. Vous pouvez utiliser le format dans cet exemple d’URL signée. 

   ```
   https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Expires=1767290400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F&Hash-Algorithm=SHA256
   ```

   Supprimez tous les espaces vides (tabulations et sauts de ligne inclus). Il se peut que vous ayez à inclure des caractères d’échappement dans la chaîne du code d’application. Toutes les valeurs ont le type `String`.  
**1. *Base URL for the file***  
L'URL de base est l' CloudFront URL que vous utiliseriez pour accéder au fichier si vous n'utilisiez pas Signed URLs, y compris vos propres paramètres de chaîne de requête, le cas échéant. Dans l’exemple précédent, l’URL de base est `https://d111111abcdef8.cloudfront.net/image.jpg`. Pour plus d'informations sur le format de URLs pour les distributions, consultez[Personnalisez le format d'URL pour les fichiers dans CloudFront](LinkFormat.md).  
   + L' CloudFront URL suivante concerne un fichier image dans une distribution (en utilisant le nom de CloudFront domaine). Notez que `image.jpg` se trouve dans un répertoire `images`. Le chemin d’accès au fichier de l’URL doit correspondre à celui du fichier de votre serveur HTTP ou de votre compartiment Amazon S3.

     `https://d111111abcdef8.cloudfront.net/images/image.jpg`
   + L' CloudFront URL suivante inclut une chaîne de requête :

     `https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large`
   + Les informations suivantes CloudFront URLs concernent les fichiers image d'une distribution. Les deux utilisent un nom de domaine alternatif. La seconde inclut une chaîne de requête :

     `https://www.example.com/images/image.jpg`

     `https://www.example.com/images/image.jpg?color=red`
   + L' CloudFront URL suivante concerne un fichier image d'une distribution qui utilise un autre nom de domaine et le protocole HTTPS :

     `https://www.example.com/images/image.jpg`  
** 2. `?`**  
Le `?` indique que les paramètres de requête suivent l’URL de base. Incluez le `?` même si vous ne spécifiez aucun paramètre de requête.  
Vous pouvez spécifier les paramètres de requête suivants dans n’importe quel ordre.  
**3. *Your query string parameters, if any*`&`**  
(Facultatif) Vous pouvez entrer vos propres paramètres de chaîne de requête. Pour ce faire, ajoutez une esperluette (`&`) entre chaque valeur, par exemple. `color=red&size=medium`. Vous pouvez spécifier les paramètres de chaîne de requête dans n’importe quel ordre dans l’URL.  
Les paramètres de votre chaîne de requête ne peuvent pas être nommés `Expires``Signature`,`Key-Pair-Id`, ou`Hash-Algorithm`.  
** 4. `Expires=`*date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)***  
Date et heure auxquelles vous souhaitez que l’URL cesse d’autoriser l’accès au fichier.  
Spécifiez la date et l’heure d’expiration au format horaire Unix (en secondes) et en heure UTC. Par exemple, le 1er janvier 2026 à 10:00 UTC correspond à `1767290400` au format d’heure Unix, comme indiqué dans l’exemple au début de cette rubrique.   
Pour utiliser l’heure époque, indiquez un entier 64 bits correspondant à une date qui ne dépasse pas `9223372036854775807` (vendredi 11 avril 2262 à 23:47:16.854 UTC).  
  
Pour plus d’informations sur l’UTC, consultez [RFC 3339, Date et heure sur Internet : Horodatages](https://tools.ietf.org/html/rfc3339).  
** 5. `&Signature=`*hashed and signed version of the policy statement***  
Version hachée, signée et encodée en base 64 de la déclaration de politique JSON. Pour de plus amples informations, veuillez consulter [Création d’une signature pour une URL signée qui utilise une politique prédéfinie](#private-content-canned-policy-creating-signature).  
** 6. `&Key-Pair-Id=`*public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature***  
L'ID d'une clé CloudFront publique, par exemple,`K2JCJMDEHXQW5F`. L'ID de clé publique indique CloudFront la clé publique à utiliser pour valider l'URL signée. CloudFront compare les informations de la signature avec celles de la déclaration de politique pour vérifier que l'URL n'a pas été falsifiée.  
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](private-content-trusted-signers.md).  
** 7. `&Hash-Algorithm=`*SHA1 or SHA256***  
(Facultatif) L'algorithme de hachage utilisé pour créer la signature. Les valeurs prises en charge sont `SHA1` et `SHA256`. Si vous ne spécifiez pas ce paramètre, la CloudFront valeur par défaut est. `SHA1`

## Création d’une signature pour une URL signée qui utilise une politique prédéfinie
<a name="private-content-canned-policy-creating-signature"></a>

Pour créer la signature pour une URL signée qui utilise une politique prédéfinie, suivez les procédures suivantes.

**Topics**
+ [Création d’une déclaration de politique pour une URL signée qui utilise une politique prédéfinie](#private-content-canned-policy-creating-policy-statement)
+ [Création d’une signature pour une URL signée qui utilise une politique prédéfinie](#private-content-canned-policy-signing-policy-statement)

### Création d’une déclaration de politique pour une URL signée qui utilise une politique prédéfinie
<a name="private-content-canned-policy-creating-policy-statement"></a>

Lorsque vous créez une URL signée avec une politique prédéfinie, le paramètre `Signature` est une version hachée et signée d’une déclaration de politique. Pour les signataires URLs qui utilisent une politique prédéfinie, vous n'incluez pas la déclaration de politique dans l'URL, comme c'est le cas pour les signataires URLs qui utilisent une politique personnalisée. Pour créer la déclaration de politique, effectuez la procédure suivante.<a name="private-content-canned-policy-creating-policy-statement-procedure"></a>

**Pour créer la déclaration de politique d’une URL signée qui utilise une politique prédéfinie**

1. Construisez la déclaration de politique à l’aide du format JSON suivant et de l’encodage de caractères UTF-8. Incluez la ponctuation et les autres valeurs littérales exactement comme spécifié. Pour plus d’informations sur les paramètres `Resource` et `DateLessThan`, consultez [Valeurs que vous spécifiez dans la déclaration de politique d’une URL signée utilisant une politique prédéfinie](#private-content-canned-policy-statement-values).

   ```
   {
       "Statement": [
           {
               "Resource": "base URL or stream name",
               "Condition": {
                   "DateLessThan": {
                       "AWS:EpochTime": ending date and time in Unix time format and UTC
                   }
               }
           }
       ]
   }
   ```

1. Supprimez tous les espaces vides (tabulations et sauts de ligne inclus) 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 URL signée utilisant une politique prédéfinie
<a name="private-content-canned-policy-statement-values"></a>

Lorsque vous créez une déclaration de politique pour une politique prédéfinie, vous spécifiez les valeurs suivantes.

**Ressource**  
Vous ne pouvez spécifier qu’une seule valeur pour `Resource`.
L'URL de base, y compris vos chaînes de requête, le cas échéant, mais à l'exclusion des `Hash-Algorithm` paramètres CloudFront `Expires` `Signature``Key-Pair-Id`,,, et, par exemple :  
`https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes`  
Notez ce qui suit :  
+ **Protocole** : la valeur doit commencer par `http://` ou `https://`.
+ **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 nom de domaine alternatif (CNAME) dans l’URL, vous devez le spécifier lorsque vous référencez le fichier dans votre page ou application web. Ne spécifiez pas l’URL Amazon S3 pour l’objet.

**DateLessThan**  
Date et heure d’expiration de l’URL au format horaire Unix (en secondes) et en heure UTC. Par exemple, le 1er janvier 2026 à 10 h UTC est converti en 1767290400 au format horaire Unix.  
Cette valeur doit correspondre à la valeur du paramètre de la chaîne de requête `Expires` de l’URL signée. N’entourez pas la valeur de points d’interrogation.  
Pour plus d’informations, consultez [Quand CloudFront vérifie la date et l'heure d'expiration dans une URL signée](private-content-signed-urls.md#private-content-check-expiration).

#### Exemple d’une déclaration de politique pour une URL signée qui utilise une politique prédéfinie
<a name="private-content-canned-policy-creating-policy-statement-example"></a>

Lorsque vous utilisez l'exemple de déclaration de politique suivant dans une URL signée, un utilisateur peut accéder au fichier `https://d111111abcdef8.cloudfront.net/horizon.jpg` jusqu'au 1er janvier 2026 à 10 h UTC :

```
{
    "Statement": [
        {
            "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes",
            "Condition": {
                "DateLessThan": {
                    "AWS:EpochTime": 1767290400
                }
            }
        }
    ]
}
```

### Création d’une signature pour une URL signée qui utilise une politique prédéfinie
<a name="private-content-canned-policy-signing-policy-statement"></a>

Pour créer la valeur du paramètre `Signature` d’une URL signée, vous hachez et signez la déclaration de politique que vous avez créée dans [Création d’une déclaration de politique pour une URL signée qui utilise une politique prédéfinie](#private-content-canned-policy-creating-policy-statement).

Pour plus d’informations et d’exemples sur la façon de hacher, signer et encoder la déclaration de politique, consultez :
+ [Utilisation d’une commande Linux et OpenSSL pour le chiffrement et l’encodage en base64](private-content-linux-openssl.md)
+ [Exemples de code pour la création de la signature d’une URL signée](PrivateCFSignatureCodeAndExamples.md)

**Note**  
Les exemples liés utilisent SHA-1 par défaut. Pour utiliser SHA-256 à la place, remplacez `sha1` par `sha256` dans les commandes OpenSSL et incluez le paramètre de `Hash-Algorithm=SHA256` requête dans l'URL signée.<a name="private-content-canned-policy-creating-signature-download-procedure"></a>

**Option 1 : Créer une signature à l’aide d’une politique prédéfinie**

1. Utilisez la fonction de hachage SHA-1 ou SHA-256 et la clé privée RSA ou ECDSA générée pour hacher et signer la déclaration de politique que vous avez créée dans le cadre de la procédure. [Pour créer la déclaration de politique d’une URL signée qui utilise une politique prédéfinie](#private-content-canned-policy-creating-policy-statement-procedure) Utilisez la version de la déclaration de politique qui n’inclut plus d’espaces vides.

   Si vous utilisez SHA-256, vous devez l'inclure `&Hash-Algorithm=SHA256` dans l'URL signée.

   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 la création de la signature d’une URL signée](PrivateCFSignatureCodeAndExamples.md).

1. Supprimez les espaces vides (tabulations et sauts de ligne inclus) de la chaîne hachée et signée.

1. Encodez en base64 la chaîne à l’aide de l’encodage MIME base64. Pour plus d'informations, consultez [la Section 6.8, Base64 Content-Transfer-Encoding](https://tools.ietf.org/html/rfc2045#section-6.8) dans la *RFC 2045, MIME (extensions de messagerie Internet polyvalentes), première partie : Format des* corps de messages Internet.

1. Remplacez les caractères non valides d’une chaîne de requête d’URL par les caractères valides. Le tableau suivant répertorie les caractères valides et non valides.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-canned-policy.html)

1. Ajoutez la valeur obtenue à votre URL signée après `&Signature=`, et retournez à [Pour créer une URL signée à l’aide d’une politique prédéfinie](#private-content-creating-signed-url-canned-policy-procedure) pour terminer la concaténation des parties de votre URL signée.