Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo della query API
Parametri di query
HTTPLe richieste basate su query sono HTTP richieste che utilizzano il HTTP verbo GET or POST e un parametro Query denominato. Action
Ogni richiesta di query deve includere alcuni parametri comuni per gestire l'autenticazione e la selezione di un'azione.
Alcune operazioni accettano elenchi di parametri. Questi elenchi sono specificati usando l'annotazione param.
. Valori di n
n
sono numeri interi a partire da 1.
Autenticazione delle richieste di query
È possibile inviare solo richieste di Query HTTPS ed è necessario includere una firma in ogni richiesta di Query. Questa sezione descrive come creare la firma. Il metodo descritto nella seguente procedura è noto come Signature Version 4.
Di seguito sono riportate le fasi di base utilizzate per l'autenticazione delle richieste in AWS. Ciò presuppone che tu sia registrato AWS e disponga di un ID chiave di accesso e di una chiave di accesso segreta.
Processo di autenticazione delle query
-
Il mittente crea una richiesta a. AWS
-
Il mittente calcola la firma della richiesta, un codice di autenticazione dei messaggi basato su Keyed-Hashing for Hash (HMAC) con una funzione hash SHA -1, come definito nella sezione successiva di questo argomento.
-
Il mittente della richiesta invia i dati della richiesta, la firma e l'ID della chiave di accesso (l'identificatore della chiave di accesso segreta utilizzata) a. AWS
-
AWS utilizza l'ID della chiave di accesso per cercare la chiave di accesso segreta.
-
AWS genera una firma dai dati della richiesta e dalla chiave di accesso segreta utilizzando lo stesso algoritmo utilizzato per calcolare la firma nella richiesta.
-
Se le firme corrispondono, la richiesta viene considerata autentica. Se il confronto non va a buon fine, la richiesta viene scartata e AWS invia una risposta di errore.
Nota
Se una richiesta contiene un parametro Timestamp
, la firma calcolata per la richiesta scade 15 minuti dopo il relativo valore.
Se una richiesta contiene un parametro Expires
, la firma scade in corrispondenza dell'ora specificata dal parametro Expires
.
Per calcolare la firma della richiesta
-
Creare la stringa di query in forma canonica necessaria successivamente durante questa procedura:
-
Ordina i componenti della stringa di query UTF -8 in base al nome del parametro con un ordinamento naturale dei byte. I parametri possono provenire dal GET URI o dal POST corpo (quando Content-Type è application/). x-www-form-urlencoded
-
URLcodifica il nome e i valori dei parametri secondo le seguenti regole:
-
Non URL codificate nessuno dei caratteri non riservati definiti da 3986. RFC I caratteri non riservati sono A-Z, a-z, 0-9, trattino (-), trattino basso (_), punto (.) e tilde (~).
-
Codificare con codifica percentuale tutti gli altri caratteri con %XY, dove X e Y sono caratteri esadecimali (0-9 e A-F maiuscole).
-
Codifica percentuale estesa a UTF -8 caratteri nel formato %XY%ZA...
-
Codificare con codifica percentuale il carattere di spazio come %20 (non utilizzare +, come negli schemi di codifica comuni).
-
-
Separa i nomi dei parametri codificati dai relativi valori codificati con il segno di uguale (=) (ASCIIcarattere 61), anche se il valore del parametro è vuoto.
-
Separate le coppie nome-valore con una e commerciale (&) (codice 38). ASCII
-
-
Create la stringa da firmare secondo la seguente pseudo-grammatica ("\n" rappresenta una nuova riga). ASCII
StringToSign = HTTPVerb + "\n" + ValueOfHostHeaderInLowercase + "\n" + HTTPRequestURI + "\n" + CanonicalizedQueryString <from the preceding step>
Il HTTPRequestURI componente è il componente del percorso HTTP assoluto della stringa di query URI fino a, ma non include. Se HTTPRequestURI è vuoto, usa una barra (/).
-
Calcola un valore RFC HMAC conforme a 2104 utilizzando la stringa appena creata, la chiave di accesso segreta come chiave SHA256 e/o SHA1 come algoritmo hash.
Per ulteriori informazioni, consulta https://www.ietf. org/rfc/rfc
2104.txt. -
Convertire il valore risultante in base64.
-
Includere il valore come valore del parametro
Signature
nella richiesta.
Di seguito è riportata una richiesta di esempio (le interruzioni di riga sono aggiunte per chiarezza).
https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01
Per la stringa di query precedente, si calcola la HMAC firma sulla stringa seguente.
GET\n memory-db.amazonaws.com\n Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE%2F20140523%2Fus-east-1%2Fmemorydb%2Faws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type%3Bhost%3Buser-agent%3Bx-amz-content-sha256%3Bx-amz-date content-type: host:memory-db.us-east-1.amazonaws.com user-agent:ServicesAPICommand_Client x-amz-content-sha256: x-amz-date:
Il risultato è la richiesta firmata seguente.
https://memory-db.us-east-1.amazonaws.com/ ?Action=DescribeClusters &ClusterName=myCluster &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2021-01-01 &X-Amz-Algorithm=Amazon4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20141201/us-east-1/memorydb/aws4_request &X-Amz-Date=20210801T223649Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=2877960fced9040b41b4feaca835fd5cfeb9264f768e6a0236c9143f915ffa56
Per informazioni dettagliate sul processo di firma e sul calcolo della firma della richiesta, consulta l'argomento Processo di firma Signature Version 4 e i relativi argomenti secondari.