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.
Utilisation de la requête API
Paramètres Query (Requête)
HTTPLes demandes basées sur des requêtes sont des HTTP demandes qui utilisent le HTTP verbe GET ou POST et un paramètre de requête nommé. Action
Chaque demande Query doit inclure certains paramètres communs pour gérer l'authentification et la sélection d'une action.
Certaines actions demandent des listes de paramètres. Ces listes sont spécifiées en utilisant la notation param.
. Valeurs de n
n
sont des nombres entiers commençant à 1.
Authentification de demande Query
Vous ne pouvez envoyer que des demandes de requête HTTPS et vous devez inclure une signature dans chaque demande de requête. Cette section explique comment créer la signature. La méthode décrite dans la procédure suivante est appelée signature version 4.
Voici les étapes de base utilisées pour authentifier les demandes à AWS. Cela suppose que vous êtes inscrit AWS et que vous disposez d'un identifiant de clé d'accès et d'une clé d'accès secrète.
Processus d'authentification des requêtes
-
L'expéditeur crée une demande à. AWS
-
L'expéditeur calcule la signature de la demande, un hachage au clavier pour le code d'authentification des messages basé sur le hachage (HMAC) avec une fonction de hachage SHA -1, comme défini dans la section suivante de cette rubrique.
-
L'expéditeur de la demande envoie les données de la demande, la signature et l'identifiant de la clé d'accès (l'identifiant de la clé d'accès secrète utilisée) à. AWS
-
AWS utilise l'ID de clé d'accès pour rechercher la clé d'accès secrète.
-
AWS génère une signature à partir des données de la demande et de la clé d'accès secrète en utilisant le même algorithme que celui utilisé pour calculer la signature dans la demande.
-
Si la signature correspond, la demande est considérée comme authentique. Si la comparaison échoue, la demande est rejetée, et AWS renvoie une réponse d'erreur.
Note
Si une demande contient un paramètre Timestamp
, la signature calculée pour la demande expire 15 minutes après sa valeur.
Si une demande contient un paramètre Expires
, la signature expire au moment spécifié par le paramètre Expires
.
Pour calculer la signature de la demande
-
Créez la chaîne de requête de base que vous utiliserez à une étape ultérieure de la procédure :
-
Triez les composants de la chaîne de requête UTF -8 par nom de paramètre avec un ordre naturel des octets. Les paramètres peuvent provenir du corps GET URI ou du POST corps (lorsque Content-Type est x-www-form-urlencoded application/).
-
URLencodez le nom et les valeurs du paramètre conformément aux règles suivantes :
-
Ne URL codez aucun des caractères non réservés définis par RFC 3986. Les caractères autorisés sont A à Z, a à z, 0 à 9, le trait d'union ( - ), le trait de soulignement ( _ ), le point final ( . ) et le tilde ( ~ ).
-
%-encodez tous les autres caractères avec %XY, où X et Y représentent les caractères hexadécimaux 0 à 9 et les lettres majuscules A à F.
-
Pourcentage de caractères encodés de UTF -8 caractères étendus sous la forme %XY%ZA...
-
%-encodez le caractère espace en %20 (et non pas en +, comme le font les schémas d'encodage courants).
-
-
Séparez les noms des paramètres codés de leurs valeurs codées par le signe égal (=) (ASCIIcaractère 61), même si la valeur du paramètre est vide.
-
Séparez les paires nom-valeur par une esperluette (&) (ASCIIcode 38).
-
-
Créez la chaîne à signer selon la pseudo-grammaire suivante (le «\n» représente une ASCII nouvelle ligne).
StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>
Le HTTPRequestURI composant est le composant de chemin HTTP absolu de la chaîne de requête URI allant jusqu'à la chaîne de requête, mais non comprise. Si le HTTPRequestURI champ est vide, utilisez une barre oblique (/).
-
Calculez RFC un code 2104 compatible HMAC avec la chaîne que vous venez de créer, votre clé d'accès secrète comme clé SHA256 et/ou SHA1 comme algorithme de hachage.
Pour plus d'informations, consultez https://www.ietf.org/rfc/rfc2104.txt
. -
Convertissez la valeur qui est générée en Base64.
-
Incluez la valeur comme la valeur du paramètre
Signature
dans la demande.
Par exemple, voici un exemple de demande (sauts de ligne ajoutés pour plus de clarté).
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01
Pour la chaîne de requête précédente, vous devez calculer la HMAC signature sur la chaîne suivante.
GET\n elasticache.amazonaws.com\n Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-west-2%2Felasticache%2Faws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:elasticache.us-west-2.amazonaws.com user-agent:CacheServicesAPICommand_Client x-amz-content-sha256: x-amz-date:
Le résultat est la demande signée suivante.
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeCacheClusters &CacheClusterIdentifier=myCacheCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-west-2/elasticache/aws4_request &X-Amz-Date=20141201T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56
Pour plus d'informations sur le processus de signature et le calcul de la signature de la demande, consultez la rubrique processus de signature Signature Version 4 et ses sous-rubriques.