Éléments d'une signature de requête d'API AWS - AWS Identity and Access Management

Éléments d'une signature de requête d'API AWS

Chaque demande HTTP/HTTPS utilisant Signature Version 4 doit contenir ces éléments.

Spécification du point de terminaison

Spécifie le nom DNS du point de terminaison auquel vous envoyez la requête. Ce nom contient généralement le code du service et la région. Par exemple, le nom du point de terminaison Amazon DynamoDB de la région us-east-1 est dynamodb.us-east-1.amazonaws.com.

Pour les requêtes HTTP/1.1, vous devez inclure l'en-tête Host. Pour les requêtes HTTP/2, vous pouvez utiliser l'en-tête :authority ou Host. Utilisez uniquement l'en-tête :authority à des fins de conformité avec la spécification HTTP/2. Tous les services ne prennent pas en charge les requêtes HTTP/2.

Pour les points de terminaison pris en charge par chaque service, consultez Points de terminaison et quotas de service dans Références générales AWS.

Action

Spécifie une action d'API pour le service. Par exemple, l'action DynamoDB CreateTable ou l'action Amazon EC2 DescribeInstances.

Pour les actions prises en charge par chaque service, consultez la référence d'autorisation des services.

Paramètres d'action

Spécifie les paramètres de l'action spécifiée dans la requête. Chaque action d’API AWS a un ensemble de paramètres obligatoires et facultatifs. La version de l'API est généralement un paramètre obligatoire.

Pour connaître les paramètres pris en charge par une action d'API, consultez la référence d’API du service.

Date

Spécifie la date et l'heure de la requête. L'inclusion de la date et de l’heure dans la requête permet d'empêcher des tiers d'intercepter cette dernière et de la soumettre à nouveau ultérieurement. La date que vous spécifiez dans l’étendue des informations d'identification doit correspondre à la date de votre requête.

L'horodatage doit être au format UTC et au format ISO 8601 suivant : AAAAMMJJTHHMMSSZ. Par exemple, 20220830T123600Z. N'incluez pas de millisecondes dans l'horodatage.

Vous pouvez utiliser un en-tête date ou x-amz-date, ou inclure x-amz-date comme un paramètre de requête. Si nous ne trouvons pas d'en-tête x-amz-date, nous cherchons un en-tête date.

Informations d'authentification

Chaque demande que vous envoyez doit inclure l'ensemble de paramètres suivant, qu'AWS utilise pour vérifier la validité et l'authenticité de la demande.

  • Algorithme : AWS4-HMAC-SHA256 permet de spécifier la version 4 de la signature à l'aide de l'algorithme de hachage HMAC-SHA256.

  • Identification : chaîne composée de votre identifiant de clé d'accès, de la date au format AAAAMMJJ, du code de région, du code de service et de la chaîne de terminaison aws4_request, séparés par des barres obliques (/). Le code Région, le code de service et la chaîne de terminaison doivent utiliser des caractères minuscules.

    AKIAIOSFODNN7EXAMPLE/YYYYMMDD/region/service/aws4_request
  • En-têtes signés : en-têtes HTTP à inclure dans la signature, séparés par des points-virgules (;). Par exemple, host;x-amz-date.

  • Signature  : chaîne codée en hexadécimal qui représente la signature calculée. Vous devez calculer la signature en utilisant l'algorithme que vous avez spécifié dans le paramètre Algorithm.