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.
AWS Signature Version 4 pour les API demandes
Important
Si vous utilisez un outil AWS SDK (voir Exemple de code et bibliothèques
Dans les régions qui prennent en charge plusieurs versions de signature, la signature manuelle des demandes signifie que vous devez spécifier la version de signature à utiliser. Lorsque vous envoyez des demandes à des points d'accès multirégionaux SDKs et que vous passez CLI automatiquement à l'utilisation de Signature Version 4A sans configuration supplémentaire.
Les informations d'authentification que vous envoyez dans une demande doivent inclure une signature. AWS Signature Version 4 (SigV4) est le protocole de AWS signature permettant d'ajouter des informations d'authentification aux AWS API demandes.
Vous n'utilisez pas votre clé d'accès secrète pour signer API des demandes. Vous utilisez plutôt le processus de signature SigV4. Les demandes de signature impliquent :
-
Création d'une demande canonique basée sur les détails de la demande.
-
Calcul d'une signature à l'aide de vos AWS informations d'identification.
-
Ajouter cette signature à la demande en tant qu'en-tête d'autorisation.
AWS reproduit ensuite ce processus et vérifie la signature, en accordant ou en refusant l'accès en conséquence.
Note
AWS prend également en charge une extension, Signature Version 4A, qui prend en charge les signatures pour les API demandes multirégionales. Pour plus d'informations, consultez le a-signing-examples projet sigv4
Comment fonctionne AWS SigV4
Le schéma suivant illustre le processus général de calcul d'une signature :
![Image des parties d'une signature, y compris la chaîne à signer, la clé de signature et la signature calculée.](images/signing-overview.png)
-
La chaîne à signer dépend du type de demande. Par exemple, lorsque vous utilisez l'en-tête HTTP d'autorisation ou les paramètres de requête pour l'authentification, vous utilisez une combinaison d'éléments de demande pour créer la chaîne à signer. Pour une HTTP POST demande, la
POST
politique contenue dans la demande est la chaîne que vous signez. -
La clé de signature est une série de calculs, le résultat de chaque étape étant intégré à la suivante. La dernière étape est la clé de signature.
-
Lorsqu'un AWS service reçoit une demande authentifiée, il recrée la signature à l'aide des informations d'authentification contenues dans la demande. Si les signatures correspondent, le service traite la demande. Sinon, il rejette la demande.
Pour de plus amples informations, veuillez consulter Éléments d'une signature AWS API de demande.
Quand signer des demandes ?
Lorsque vous écrivez du code personnalisé qui envoie API des demandes à AWS, vous devez inclure le code qui signe les demandes. Vous pouvez écrire du code personnalisé pour les raisons suivantes :
-
Vous travaillez avec un langage de programmation pour lequel il n'existe aucun langage de programmation AWS SDK.
-
Vous avez besoin d'un contrôle total sur la manière dont les demandes sont envoyées AWS.
Alors que les API demandes authentifient l'accès avec AWS SigV4, AWS SDKs puis AWS CLI authentifient vos demandes à l'aide des clés d'accès que vous fournissez. Pour plus d'informations sur l'authentification avec AWS SDKs et le AWS CLI, consultezRessources supplémentaires.
Pourquoi les demandes sont-elles signées ?
Le processus de signature aide à sécuriser les demandes de différentes façons :
-
Vérifier l'identité du demandeur
Les demandes authentifiées nécessitent une signature que vous créez à l'aide de vos clés d'accès (ID de clé d'accès, clé d'accès secrète). Si vous utilisez des informations d'identification de sécurité temporaires, les calculs de signature nécessitent également un jeton de sécurité. Pour plus d'informations, veuillez consulter la rubrique Accès par programmation des informations d'identification de sécuritéAWS.
-
Protéger les données en transit
Pour éviter qu'une demande ne soit falsifiée pendant son transit, certains de ses éléments sont utilisés pour calculer son hachage (digest) et la valeur de hachage obtenue est incluse comme partie intégrante de la demande. Lorsqu'un AWS service reçoit la demande, il utilise les mêmes informations pour calculer un hachage et le compare à la valeur de hachage de votre demande. Si les valeurs ne correspondent pas, AWS refuse la demande.
-
Assurer une protection contre les attaques potentielles par relecture
Dans la plupart des cas, une demande doit parvenir AWS dans les cinq minutes suivant l'horodatage indiqué dans la demande. Dans le cas contraire, AWS refuse la demande.
AWS SigV4 peut être exprimé dans l'en-tête HTTP d'autorisation ou sous forme de chaîne de requête dans leURL. Pour de plus amples informations, veuillez consulter Méthodes d'authentification.
Ressources supplémentaires
-
Pour plus d'informations sur le processus de signature SigV4 pour les différents services, consultezDemander des exemples de signature.
-
Pour configurer les informations d'identification pour l'accès programmatique au AWS CLI, voir Authentification et informations d'accès dans le Guide de l'utilisateur de l'interface de ligne de AWS commande.
-
Ils AWS SDKs incluent le code source GitHub pour les AWS API demandes de signature. Pour obtenir des exemples de code, veuillez consulter Exemples de projets dans le référentiel AWS d'échantillons.
-
AWS SDK for .NET — AWS4Signer.cs
-
AWS SDK for C++ — AWSAuthV4Signer.cpp
-
AWS SDK for Go — v4.go
-
AWS SDK for Java — BaseAws4Signer.java
-
AWS SDK for JavaScript — v4.js
-
AWS SDK for PHP — SignatureV4.php
-
AWS SDK for Python (Boto) — signers.py
-
AWS SDK for Ruby — signer.rb
-