Méthodes d'authentification - AWS Identity and Access Management

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.

Méthodes d'authentification

Important

À moins que vous n'utilisiez AWS les SDK ou la CLI, vous devez écrire du code pour calculer les signatures qui fournissent des informations d'authentification dans vos demandes. Le calcul des AWS signatures dans Signature Version 4 peut être une tâche complexe, et nous vous recommandons d'utiliser les AWS SDK ou la CLI dans la mesure du possible.

Vous pouvez exprimer les informations d'authentification à l'aide de l'une des méthodes suivantes.

En-tête d'autorisation HTTP

L'en-tête HTTP Authorization est l'une des méthodes d'authentification des demandes les plus courantes. Toutes les opérations de l'API REST (à l'exception des chargements via un navigateur utilisant des demandes POST) nécessitent cet en-tête. Pour plus d'informations sur la valeur de l'en-tête d'autorisation et sur le calcul de la signature et des options associées, consultez Authentification des demandes : utilisation de l'en-tête d'autorisation (AWS signature version 4) dans le manuel Amazon S3 API Reference.

Voici un exemple de valeur d'en-tête Authorization. Des sauts de ligne sont ajoutés à cet exemple pour faciliter la lecture. Dans votre code, l'en-tête doit être une chaîne continue. Il n'y a pas de virgule entre l'algorithme et les informations d'identification, mais les autres éléments doivent être séparés par des virgules.

Authorization: AWS 4-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érents composants de la valeur de l'en-tête d'autorisation dans l'exemple précédent :

Composant Description

Autorisation

Algorithme utilisé pour calculer la signature. Vous devez fournir cette valeur lorsque vous utilisez la version 4 de AWS signature pour l'authentification. La chaîne indique la version de AWS signature 4 (AWS 4) et l'algorithme de signature (HMAC-SHA256).

Informations d'identification

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 :

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Où : la valeur <date> est spécifiée à l'aide du format AAAAMMJJ. La valeur <aws-service> est s3 lors de l'envoi d'une demande à Amazon S3.

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 liste inclut uniquement les noms d'en-tête, qui doivent être en minuscules. Par exemple : host ; range ; x-amz-date

Signature

La signature de 256 bits exprimée en 64 caractères hexadécimaux minuscules. Exemples :fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

Veuillez noter que les calculs de signature varient en fonction de l'option que vous choisissez pour transférer la charge utile.

Paramètres des chaînes de requête

Vous pouvez utiliser une chaîne de requête pour exprimer entièrement une demande dans une URL. Dans ce cas, vous utilisez les paramètres de requête pour fournir les informations de demande, y compris les informations d'authentification. Comme la signature de la demande fait partie de l'URL, ce type d'URL est généralement appelé URL présignée. Vous pouvez utiliser des URL présignées pour intégrer des liens cliquables au format HTML, qui peuvent être valides jusqu'à sept jours. Pour plus d'informations, consultez Authentification des demandes : utilisation des paramètres de requête (AWS Signature version 4) dans le manuel Amazon S3 API Reference.

Voici un exemple d'URL présignée. Des sauts de ligne sont ajoutés à cet exemple pour faciliter la lecture :

https://s3.amazonaws.com/examplebucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/us-east-1/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
Note

La valeur X-Amz-Credential dans l'URL affiche le caractère « / » uniquement pour des raisons de lisibilité. En pratique, il doit être encodé sous la forme %2F. Par exemple :

&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request

Le tableau suivant décrit les paramètres de requête de l'URL qui fournissent des informations d'authentification.

Nom du paramètre de la chaîne d'interrogation Description

X-Amz-Algorithm

Identifie la version de AWS Signature et l'algorithme que vous avez utilisé pour calculer la signature. Pour la version 4 de AWS Signature, vous définissez la valeur de ce paramètre sur. AWS 4-HMAC-SHA256 Cette chaîne identifie AWS Signature Version 4 (AWS 4) et l'algorithme HMAC-SHA256 (HMAC-SHA256).

X-Amz-Credential

Outre l'ID de votre clé d'accès, ce paramètre indique également l'étendue (AWS région et service) pour laquelle la signature est valide. Cette valeur doit correspondre au champ d'application que vous utilisez dans les calculs de signature, comme indiqué dans la section suivante.

Le format général de cette valeur de paramètre est le suivant :

<your-access-key-id>/<date>/<AWS Region>/<AWS-service>/aws4_request

Par exemple : AKIAIOSFODNN7EXAMPLE/20130721/us-east-1/s3/aws4_request

Pour obtenir la liste des chaînes AWS régionales, consultez la section Points de terminaison régionaux dans le manuel de référence AWS général.

X-Amz-Date

Le format de date et d'heure doit respecter la norme ISO 8601 et doit être au format yyyyMMddTHHmmssZ. Par exemple, si la date et l'heure étaient « 01/08/2016 15:32:41.982-700 », elles doivent d'abord être converties en UTC (temps universel coordonné), puis soumises sous la forme « 20160801T223241Z ».

X-Amz-Expires

Indique la période, en secondes, pendant laquelle l'URL présignée générée est valide. Par exemple, 86 400 (24 heures). Cette valeur est un nombre entier. La valeur minimale que vous pouvez définir est 1 et la valeur maximale est de 604 800 (sept jours). Une URL présignée peut être valide pendant sept jours au maximum, car la clé de signature que vous utilisez pour le calcul de la signature est valide pendant sept jours au maximum.

X-Amz- SignedHeaders

Répertorie les en-têtes que vous avez utilisés pour calculer la signature. Les en-têtes suivants sont obligatoires pour les calculs de signature :

  • L'en-tête de l'hôte HTTP.

  • Tous les en-têtes x-amz-* que vous prévoyez d'ajouter à la demande.

Pour plus de sécurité, vous devez signer tous les en-têtes de demande que vous prévoyez d'inclure dans votre demande.

X-Amz-Signature

Fournit la signature pour authentifier votre demande. Cette signature doit correspondre à la signature que le service calcule, sinon, le service refuse la demande. Par exemple, 733255ef022bec3f2a8701cd61d4b371f3f28c9f193a1f02279211d48d5193d7

Les calculs de signature sont décrits dans la section suivante.

X-Amz-Security-Token

Paramètre d'information d'identification facultatif si vous utilisez des informations d'identification provenant du service STS.