View a markdown version of this page

Les éléments d'un AWS Signature de la demande d'API - AWS Gestion de l’identité et des accès

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.

Les éléments d'un AWS Signature de la demande d'API

Important

À moins que vous n'utilisiez les AWS SDK ou l'interface de ligne de commande, 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 s'avérer complexe, et nous vous recommandons d'utiliser les AWS SDK ou l'interface de ligne de commande dans la mesure du possible.

Chaque HTTP/HTTPS demande utilisant la signature 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 HTTP/1.1 demandes, vous devez inclure l'Hosten-tête. Pour les HTTP/2 demandes, vous pouvez inclure l':authorityen-tête ou l'Hosten-tête. Utilisez uniquement l':authorityen-tête pour vous conformer à la HTTP/2 spécification. Les HTTP/2 demandes ne sont pas prises en charge par tous les services.

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' AWS API possède 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 les informations suivantes. AWS utilise ces informations pour garantir la validité et l'authenticité de la demande.

  • Algorithme : algorithme que vous utilisez dans le cadre du processus de signature.

    • SigV4 : AWS4-HMAC-SHA256 permet de spécifier la version 4 de la Signature à l’aide de l’algorithme de hachage HMAC-SHA256.

    • SigV4a : utilisez AWS4-ECDSA-P256-SHA256 pour spécifier l’algorithme de hachage ECDSA-P256-SHA-256.

  • Informations d’identification : chaîne formée en concaténant votre ID de clé d’accès et les composants de votre champ d’application d’informations d’identification.

    • SigV4 : la portée des informations d’identification comprend votre clé d’accès, la date au format AAAAMMJJ, le code de région, le code de service et 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
    • SigV4a : la portée des informations d’identification comprend la date au format AAAAMMJJ, le nom du service et la chaîne de terminaison aws4_request, séparés par des barres obliques (/). Notez que la portée des informations d’identification n’inclut pas la région, car celle-ci est couverte dans un en-tête X-Amz-Region-Set distinct.

      AKIAIOSFODNN7EXAMPLE/YYYYMMDD/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.

    Pour SigV4a, vous devez inclure un en-tête de jeu de régions qui spécifie l’ensemble des régions dans lesquelles la demande sera valide. L’en-tête X-Amz-Region-Set est spécifié sous forme de liste de valeurs séparées par des virgules. L’exemple suivant montre un en-tête de région qui permet d’effectuer une demande dans les régions us-east-1 et us-west-1.

    X-Amz-Region-Set=us-east-1,us-west-1

    Vous pouvez utiliser des caractères génériques (*) dans les régions pour spécifier plusieurs régions. Dans l’exemple suivant, l’en-tête permet de faire une demande à la fois dans les régions us-west-1 et us-west-2.

    X-Amz-Region-Set=us-west-*
  • 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.

Pour de plus amples informations, veuillez consulter Méthodes d’authentification.