

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Signature d'une requête HTTP
<a name="amazon-redshift-signing-requests"></a>

Amazon Redshift exige que chaque demande que vous envoyez à l'API de gestion soit authentifiée avec une signature. Cette rubrique explique comment signer vos demandes. 

Si vous utilisez l'un des kits de développement AWS logiciel (SDKs) ou leAWS Command Line Interface, la signature des demandes est gérée automatiquement, et vous pouvez ignorer cette section. Pour plus d'informations sur l'utilisation AWSSDKs, consultez[Utilisation des interfaces de gestion Amazon Redshift pour les clusters alloués](using-aws-sdk.md). Pour plus d'informations sur l'utilisation de l'interface de ligne de commande Amazon Redshift, consultez la [référence des commandes en ligne Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html).

Pour signer une demande, vous calculez une signature numérique à l'aide d'une fonction de hachage de chiffrement. Un hachage de chiffrement est une fonction qui renvoie une valeur de hachage unique basée sur l'entrée. L'entrée de la fonction de hachage contient le texte de la demande et votre clé d'accès secrète que vous pouvez obtenir dans les informations d'identification temporaires. La fonction de hachage renvoie une valeur de hachage que vous incluez dans la demande comme votre signature. La signature fait partie de l’en-tête `Authorization` de votre demande.

**Note**  
Les utilisateurs ont besoin d'un accès programmatique s'ils souhaitent interagir avec AWS l'extérieur duAWS Management Console. La manière d'accorder un accès programmatique dépend du type d'utilisateur qui y accèdeAWS.  
Pour accorder aux utilisateurs un accès programmatique, choisissez l’une des options suivantes.  


****  

| Quel utilisateur a besoin d’un accès programmatique ? | À | Méthode | 
| --- | --- | --- | 
| IAM | (Recommandé) Utilisez les informations d'identification de la console comme informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWSSDKs, ou AWSAPIs. | Suivez les instructions de l’interface que vous souhaitez utiliser.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/amazon-redshift-signing-requests.html) | 
| Identité de la main-d’œuvre<br />(Utilisateurs gérés dans IAM Identity Center) | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWSSDKs, ou AWSAPIs. | Suivez les instructions de l’interface que vous souhaitez utiliser.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/amazon-redshift-signing-requests.html) | 
| IAM | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWSSDKs, ou AWSAPIs. | Suivez les instructions de la section [Utilisation d'informations d'identification temporaires avec AWS les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) du Guide de l'utilisateur IAM. | 
| IAM | (Non recommandé)Utilisez des informations d'identification à long terme pour signer des demandes programmatiques adressées au AWS CLI AWSSDKs, ou AWSAPIs. | Suivez les instructions de l’interface que vous souhaitez utiliser.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/amazon-redshift-signing-requests.html) | 

Après qu'Amazon Redshift a reçu votre demande, il recalcule la signature en utilisant la même fonction de hachage et la même entrée que celles que vous avez utilisées pour signer la demande. Si la signature résultante correspond à la signature de la demande, Amazon Redshift traite la demande ; sinon, la demande est rejetée. 

Amazon Redshift prend en charge l'authentification à l'aide d'[AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html). Le processus de calcul d'une signature se compose de trois tâches. Ces tâches sont illustrées dans l'exemple qui suit.
+   [Tâche 1 : créer une demande canonique](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request)

  Réorganisez votre demande HTTP sous forme canonique. L'utilisation d'une forme canonique est nécessaire, car Amazon Redshift utilise la même forme canonique pour calculer la signature qu'il compare à celle que vous avez envoyée. 
+   [Tâche 2 : créer une chaîne de connexion](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-string-to-sign)

  Créez une chaîne que vous utiliserez comme une des valeurs d’entrée pour votre fonction de hachage cryptographique. La chaîne, appelée la *chaîne de connexion*, est une concaténation du nom de l’algorithme de hachage, de la date de la demande, d’une chaîne d’*informations d’identification* et de la demande convertie sous forme canonique de la tâche précédente. La chaîne d’*informations d’identification* elle-même est une concaténation de date, de région et d’informations de service.
+   [Tâche 3 : calculer une signature](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#calculate-signature)

  Calculez une signature pour votre demande à l'aide d'une fonction de hachage cryptographique qui accepte deux chaînes en entrée : votre chaîne de signature et une *clé dérivée*. La clé dérivée est calculée en commençant par votre clé d'accès secrète et en utilisant la chaîne de portée des informations d'identification pour créer une série de codes d'authentification des messages basés sur le hachage (HMAC-). SHA256 

## Exemple de calcul de signature
<a name="example-signature-calculation"></a>

L'exemple suivant explique en détail comment créer une signature pour une [CreateCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html)demande. Vous pouvez utiliser cet exemple comme référence pour vérifier votre propre méthode de calcul de signature. D'autres calculs de référence sont inclus dans la section [Demander des exemples de signature](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html) du Guide de l'utilisateur IAM.

Vous pouvez utiliser une requête GET ou POST pour envoyer des demandes à Amazon Redshift. La différence entre les deux requêtes est que pour la requête GET, vos paramètres sont envoyés comme paramètres de chaîne de requête. Pour la requête POST, ils sont inclus dans le corps de la demande. L'exemple suivant illustre une requête POST.

Dans cet exemple il est supposé que :
+ L'horodatage de la demande est `Fri, 07 Dec 2012 00:00:00 GMT`.
+ Le point de terminaison est la région USA Est (Virginie du Nord), `us-east-1`.

La syntaxe générale de la demande est : 

```
https://redshift.us-east-1.amazonaws.com/
   ?Action=CreateCluster
   &ClusterIdentifier=examplecluster
   &MasterUsername=masteruser
   &MasterUserPassword=12345678Aa
   &NumberOfNode=2
   &NodeType=dc2.large
   &Version=2012-12-01
   &x-amz-algorithm=AWS4-HMAC-SHA256
   &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request
   &x-amz-date=20121207T000000Z
   &x-amz-signedheaders=content-type;host;x-amz-date
```

La forme canonique de la demande calculée pour [Tâche 1 : Créer une demande canonique](#SignatureCalculationTask1) est :

```
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z

content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
```

La dernière ligne de la demande canonique est le hachage du corps de la demande. La troisième ligne de la requête canonique est vide, car il n'y a pas de paramètres d'interrogation pour cette API. 

La chaîne de connexion de [Tâche 2 : Créer une chaîne de connexion](#SignatureCalculationTask2) est :

```
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
```

La première ligne de la *chaîne de connexion* est l'algorithme, la deuxième ligne est l'horodatage, la troisième ligne est les *informations d'identification*, et la dernière ligne est un hachage de la demande canonique issu de la [tâche 1 : créer une demande canonique](#SignatureCalculationTask1). Le nom du service à utiliser dans les informations d'identification est `redshift`.

Pour [Tâche 3 : calculer une signature](#SignatureCalculationTask3), la clé dérivée peut être représentée comme suit :

```
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")
```

La clé dérivée est calculée en tant que série de fonctions de hachage. À partir de l'instruction HMAC interne de la formule ci-dessus, vous concaténez l'expression « **AWS4** » et votre clé d'accès secrète, puis utilisez le résultat obtenu comme clé de hachage des données « us-east-1 ». Le résultat de ce hachage devient la clé de la fonction de hachage suivante. 

Après que vous avez calculé la clé dérivée, vous l'utilisez dans une fonction de hachage qui accepte deux chaînes en entrée, votre chaîne de connexion et la clé dérivée. Par exemple, si vous utilisez la clé d'accès secrète `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` et la chaîne de connexion fournie précédemment, la signature calculée est la suivante :

```
9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

L’étape finale consiste à construire l’en-tête `Authorization`. Pour la clé d'accès de la démonstration `AKIAIOSFODNN7EXAMPLE`, l'en-tête (avec les sauts de ligne ajoutés pour faciliter la lecture) est :

```
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, 
SignedHeaders=content-type;host;x-amz-date, 
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```