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 l'API Query
Paramètres Query (Requête)
Les Query-based requêtes HTTP sont des requêtes HTTP qui utilisent le verbe HTTP 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.. Les valeurs de nn sont des nombres entiers commençant à 1.
Authentification de demande Query
Vous pouvez envoyer uniquement des demandes Query via HTTPS, et vous devez inclure une signature dans chaque demande Query. 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 Keyed-Hashing code d'authentification des Hash-based messages (HMAC) avec une fonction de SHA-1 hachage, 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 UTF-8 requête par nom de paramètre avec un ordre naturel des octets. Les paramètres peuvent provenir de l'URI GET ou du corps POST (quand Content-Type est application/x -www-form-urlencoded).
-
URL-encodez le nom et les valeurs du paramètre en appliquant les règles suivantes :
-
Ne pas URL-encoder les caractères que le RFC définit comme autorisés. Ces caractères non réservés sont les suivants A-Z : a-z, 0-9, tiret (-), trait de soulignement (_), point (.) et tilde (~).
-
Le pourcentage code tous les autres caractères avec %XY, où X et Y sont des caractères hexadécimaux de 0 à 9 et des majuscules. A-F
-
Pourcentage de UTF-8 caractères étendus encodés 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).
-
-
Utilisez le symbole équivalent ( = ) (ASCII caractère 61) pour séparer les noms de paramètres codés de leurs valeurs codées, même si la valeur du paramètre est vide.
-
Séparez les paires nom-valeur en insérant une esperluette ( & ) (code ASCII 38).
-
-
Créez la chaîne de connexion en appliquant la grammaire suivante (le « \n » représente une nouvelle ligne ASCII).
StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>Le composant HTTPRequestURI est le composant du chemin absolu HTTP de l'URI menant jusqu'à la chaîne de requête de demandes sans cependant l'inclure. Si le composant HTTPRequestURI est vide, utilisez une barre oblique ( / ).
-
Définissez un HMAC conforme à RFC 2104 à l’aide de la chaîne que vous venez de créer, votre clé d’accès secrète comme clé et l’algorithme haché SHA256 ou SHA1.
Pour de plus amples informations, veuillez consulter 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
Signaturedans 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 signature HMAC 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.