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.
Authentification des demandes : utilisation de l'en-tête d'autorisation (AWS Signature (version 4)
Rubriques
Vue d’ensemble
L'utilisation de l'Authorizationen-tête HTTP est la méthode la plus courante pour fournir des informations d'authentification. À l'exception des requêtes POST et des requêtes signées à l'aide de paramètres de requête, toutes les opérations Amazon S3 utilisent l'en-tête de Authorization demande pour fournir des informations d'authentification.
Voici un exemple de valeur d'en-tête Authorization. Des sauts de ligne sont ajoutés à cet exemple pour faciliter la lecture :
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
Le tableau suivant décrit les différentes composantes de la valeur Authorization d'en-tête de l'exemple précédent :
| Composant | Description |
|---|---|
AWS4-HMAC-SHA256 |
Algorithme utilisé pour calculer la signature. Vous devez fournir cette valeur lorsque vous utilisez AWS Signature Version 4 pour l'authentification. La chaîne spécifie la version 4 de la AWS signature ( |
Credential |
Votre ID de clé d'accès et les informations relatives au champ d'application, notamment la date, la région et le service, qui ont été utilisés pour calculer la signature. Cette chaîne présente le format suivant :
Où :
|
SignedHeaders |
Une liste d'en-têtes de demande séparés par des points-virgules que vous avez utilisés pour calculer
|
Signature |
La signature de 256 bits exprimée en 64 caractères hexadécimaux minuscules. Par exemple : Veuillez noter que les calculs de signature varient en fonction de l'option que vous choisissez pour transférer la charge utile. |
Les calculs de signature varient en fonction de la méthode que vous choisissez pour transférer la charge utile de la demande. S3 prend en charge les options suivantes :
-
Transférer la charge utile en un seul bloc — Dans ce cas, vous disposez des options de calcul de signature suivantes :
-
Option de charge utile signée : vous pouvez éventuellement calculer la somme de contrôle complète de la charge utile et l'inclure dans le calcul de la signature. Cela apporte une sécurité accrue, mais vous devez lire votre charge utile deux fois ou la mettre en mémoire tampon.
Par exemple, pour charger un fichier, vous devez d'abord le lire pour calculer un hachage de charge utile pour le calcul de la signature, puis de nouveau pour la transmission lorsque vous créez la demande. Pour les charges utiles plus petites, cette approche peut être préférable. Cependant, pour les fichiers volumineux, la lecture deux fois du fichier peut s'avérer inefficace. Vous pouvez donc préférer télécharger les données par morceaux.
Nous vous recommandons d'inclure la somme de contrôle de la charge utile pour plus de sécurité.
-
Option de charge utile non signée : n'incluez pas la somme de contrôle de la charge utile dans le calcul des signatures.
Pour obtenir des instructions détaillées sur le calcul de la signature et la création de la valeur d'en-tête Authorization, consultezCalculs de signature pour l'en-tête d'autorisation : transfert de la charge utile en un seul bloc (AWS Signature (version 4).
-
-
Transférer la charge utile en plusieurs blocs (téléchargement fragmenté) — Dans ce cas, vous transférez la charge utile en plusieurs morceaux. Vous pouvez transférer une charge utile par morceaux, quelle que soit la taille de la charge utile.
Vous pouvez diviser votre charge utile en plusieurs parties. Il peut s'agir de morceaux de taille fixe ou variable. En téléchargeant les données par morceaux, vous évitez de lire l'intégralité de la charge utile pour calculer la signature. Au lieu de cela, pour le premier segment, vous calculez une signature initiale qui utilise uniquement les en-têtes de demande. Le second bloc contient la signature du premier bloc, et chaque bloc suivant contient la signature du segment qui le précède. À la fin du téléchargement, vous envoyez un dernier bloc contenant 0 octet de données contenant la signature du dernier bloc de la charge utile. Pour de plus amples informations, veuillez consulter Calculs de signature pour l'en-tête d'autorisation : transfert de la charge utile en plusieurs segments (téléchargement fragmenté) (AWS Signature (version 4).
Lorsque vous signez vos demandes, vous pouvez utiliser AWS Signature Version 4 ou AWS Signature Version 4A. La principale différence entre les deux est déterminée par la façon dont la signature est calculée. Avec AWS la version 4A de Signature, la signature ne contient aucune Region-specific information et est calculée à l'aide de l'AWS4-ECDSA-P256-SHA256algorithme.
En plus de ces options, vous avez la possibilité d'inclure une remorque avec votre demande. Pour inclure une bande-annonce dans votre demande, vous devez le spécifier dans l'en-tête en réglant x-amz-content-sha256 la valeur appropriée. Si vous utilisez un en-tête de fin, vous devez inclure x-amz-trailer dans l'en-tête et spécifier les noms d'en-tête de fin sous forme de chaîne dans une liste séparée par des virgules. Tous les en-têtes de fin sont écrits après le dernier morceau. Si vous chargez les données en plusieurs blocs, vous devez envoyer un dernier bloc contenant 0 octet de données avant d'envoyer l'en-tête de fin.
Lorsque vous envoyez une demande, vous devez indiquer à Amazon S3 laquelle des options précédentes vous avez choisie dans le calcul de votre signature, en ajoutant l'x-amz-content-sha256en-tête avec l'une des valeurs suivantes :
| Valeur d’en-tête | Description |
|---|---|
|
Valeur réelle de la somme de contrôle de la charge utile |
Cette valeur est la somme de contrôle réelle de votre objet et n'est possible que lorsque vous chargez les données en un seul bloc. |
|
UNSIGNED-PAYLOAD |
Utilisez-le lorsque vous chargez l'objet sous la forme d'un seul bloc non signé. |
|
STREAMING-UNSIGNED-PAYLOAD-TRAILER |
Utilisez-le lorsque vous envoyez une charge utile non signée sur plusieurs segments. Dans ce cas, vous avez également un en-tête à la fin du téléchargement du bloc. |
|
STREAMING-AWS4-HMAC-SHA256-PAYLOAD |
Utilisez-le lorsque vous envoyez une charge utile sur plusieurs segments et que les segments sont signés à l'aide de. |
|
STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER |
Utilisez-le lorsque vous envoyez une charge utile sur plusieurs segments et que les segments sont signés à l'aide de. |
|
STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD |
Utilisez-le lorsque vous envoyez une charge utile sur plusieurs segments et que les segments sont signés à l'aide de. |
|
STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD-TRAILER |
Utilisez-le lorsque vous envoyez une charge utile sur plusieurs segments et que les segments sont signés à l'aide de. |
À la réception de la demande, Amazon S3 recrée la chaîne à signer à l'aide des informations figurant dans l'Authorizationen-tête et dans l'dateen-tête. Il vérifie ensuite auprès du service d'authentification que les signatures correspondent. La date de la demande peut être spécifiée à l'aide du HTTP Date ou de l'x-amz-dateen-tête. Si les deux en-têtes sont présents, c'x-amz-dateest prioritaire.
Si les signatures correspondent, Amazon S3 traite votre demande ; sinon, votre demande échouera.
Pour plus d’informations, consultez les rubriques suivantes :