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à.
Firma AWS delle richieste API
Importante
Se utilizzi uno strumento AWS SDK (vedi Codice di esempio e librerie
Nelle regioni che supportano più versioni di firma, per le richieste di firma manuale è necessario specificare quale versione della firma viene utilizzata. Quando utilizzi punti di accesso multi-regione, gli SDK e le CLI vengono commutate automaticamente per utilizzare Signature Version 4A senza ulteriori configurazioni.
Le informazioni di autenticazione inviate in una richiesta devono includere una firma. Per calcolare una firma, devi prima concatenare gli elementi della richiesta per formare una stringa, denominata stringa da firmare. Si utilizza quindi una chiave di firma per calcolare il codice di autenticazione dei messaggi basato su hash (HMAC) della stringa da firmare.
Nella versione 4 di AWS Signature, non usi la tua chiave di accesso segreta per firmare la richiesta. Invece, si usa prima la propria chiave di accesso segreta per generare una chiave di firma. La chiave di firma derivata è specifica per data, servizio e regione. Per ulteriori informazioni su come ottenere una chiave di firma in diversi linguaggi di programmazione, vedi Richiesta di esempi di firma.
Signature Version 4 è il protocollo di AWS firma. AWS supporta anche un'estensione, Signature Version 4A, che supporta le firme per le richieste API multiregionali. Per ulteriori informazioni, consulta il progetto a-signing-examples sigv4
Il diagramma seguente illustra il processo generale di calcolo di una firma.
-
La stringa da firmare dipende dal tipo di richiesta. Ad esempio, quando utilizzi l'intestazione dell'autorizzazione HTTP o i parametri della query per l'autenticazione, utilizzi una combinazione variabile di elementi della richiesta per creare la stringa da firmare. Per una richiesta HTTP POST, la policy
POST
nella richiesta è la stringa che firmi. -
Per chiave di firma, il diagramma mostra una serie di calcoli, dove il risultato di ogni passaggio viene inserito nel passaggio successivo. Il passaggio finale è la chiave di firma.
-
Quando un AWS servizio riceve una richiesta autenticata, ricrea la firma utilizzando le informazioni di autenticazione contenute nella richiesta. Se le firme corrispondono, il servizio elabora la richiesta. In caso contrario, la richiesta viene respinta.
Indice
Quando firmare le richieste
Quando scrivi codice personalizzato che invia richieste API a AWS, devi includere il codice che firma le richieste. Potrebbe essere necessario scrivere codice personalizzato perché:
-
Utilizzi un linguaggio di programmazione per il quale non esiste un SDK AWS .
-
È necessario il controllo completo su come vengono inviate le richieste AWS.
Perché le richieste vengono firmate
Il processo di firma aiuta a proteggere le richieste, poiché consente di:
-
Verificare l'identità del richiedente
Le richieste autenticate richiedono una firma che hai creato utilizzando le tue chiavi di accesso (ID chiave di accesso, chiave di accesso segreta). Se stai utilizzando credenziali di sicurezza temporanee, i calcoli della firma richiedono anche un token di sicurezza. Per ulteriori informazioni, consulta AWS accesso programmatico con credenziali di sicurezza.
-
Proteggere i dati in transito
Per evitare che una richiesta venga modificata mentre è in transito, alcuni elementi della richiesta stessa vengono utilizzati per calcolare un hash (digest) e il valore hash risultante è incluso come parte della richiesta. Quando un utente Servizio AWS riceve la richiesta, utilizza le stesse informazioni per calcolare un hash e lo confronta con il valore hash della richiesta. Se i valori non corrispondono, AWS nega la richiesta.
-
Garantire la protezione da possibili attacchi di tipo replay
Nella maggior parte dei casi, una richiesta deve pervenire AWS entro cinque minuti dalla data indicata nella richiesta. In caso contrario, AWS nega la richiesta.