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à.
AWS Signature Version 4 per API le richieste
Importante
Se utilizzi uno strumento AWS SDK (vedi Codice di esempio e librerie
Nelle regioni che supportano più versioni con firma, la firma manuale delle richieste significa che è necessario specificare quale versione di firma utilizzare. Quando si forniscono richieste a punti di accesso multiregionali SDKs e si passa CLI automaticamente all'utilizzo della versione 4A di Signature senza configurazioni aggiuntive.
Le informazioni di autenticazione inviate in una richiesta devono includere una firma. AWS Signature Version 4 (SigV4) è il protocollo di AWS firma per aggiungere informazioni di autenticazione alle AWS API richieste.
Non usi la tua chiave di accesso segreta per firmare API le richieste. Utilizzi invece il processo di firma SigV4. Le richieste di firma implicano:
-
La creazione di una richiesta canonica basata sui dettagli della richiesta.
-
Calcolo di una firma utilizzando le tue credenziali. AWS
-
Aggiungere questa firma alla richiesta come intestazione di autorizzazione.
AWS quindi replica questo processo e verifica la firma, concedendo o negando l'accesso di conseguenza.
Symmetric SigV4 richiede la derivazione di una chiave destinata a un singolo AWS servizio, in una singola regione, in un determinato giorno. AWS Ciò rende la chiave e la firma calcolata diverse per ogni regione, il che significa che è necessario conoscere la regione a cui è destinata la firma.
Asymmetric Signature Version 4 (SigV4A) è un'estensione che supporta la firma con un nuovo algoritmo e la generazione di firme individuali verificabili in più di una regione. AWS Con SigV4A, puoi firmare una richiesta per più regioni, con routing e failover senza interruzioni tra le regioni. Quando si utilizza AWS SDK o AWS CLI per richiamare funzionalità che richiedono la firma in più regioni, il tipo di firma viene automaticamente modificato per utilizzare SigV4A. Per informazioni dettagliate, consultare Come funziona AWS SigV4a.
Come funziona SigV4 AWS
I passaggi seguenti descrivono il processo generale di calcolo di una firma con SigV4:
-
La stringa da firmare dipende dal tipo di richiesta. Ad esempio, quando si utilizza l'intestazione HTTP Authorization o i parametri di query per l'autenticazione, si utilizza una combinazione di elementi di richiesta per creare la stringa da firmare. Per una HTTP POST richiesta, la
POST
politica nella richiesta è la stringa che firmi. -
La chiave di firma è una serie di calcoli, in cui il risultato di ogni passaggio viene inserito nel 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.
Per ulteriori informazioni, consulta Elementi della firma di una AWS API richiesta.
Come funziona AWS SigV4a
SigV4a utilizza firme asimmetriche basate sulla crittografia a chiave pubblica-privata. SIGv4apassa attraverso un processo di derivazione delle credenziali con ambito simile a quello di SigV4ASIGv4, tranne per il fatto che SigV4A utilizza la stessa chiave per firmare tutte le richieste senza dover derivare una chiave di firma distinta in base alla data, al servizio e alla regione. Una coppia di chiavi Elliptic Curve Digital Signature Algorithm
Il sistema utilizza la crittografia asimmetrica per verificare le firme multiregionali, quindi è sufficiente archiviare le chiavi pubbliche. AWS Le chiavi pubbliche non sono segrete e non possono essere utilizzate per firmare le richieste. Le firme asimmetriche sono necessarie per le API richieste multiregionali, ad esempio con i punti di accesso multiregionali Amazon S3.
I passaggi seguenti descrivono il processo generale di calcolo di una firma con SigV4a:
-
La stringa da firmare dipende dal tipo di richiesta. Ad esempio, quando si utilizza l'intestazione HTTP Authorization o i parametri di query per l'autenticazione, si utilizza una combinazione di elementi di richiesta per creare la stringa da firmare. Per una HTTP POST richiesta, la
POST
politica nella richiesta è la stringa che firmi. -
La chiave di firma è derivata da una chiave di accesso AWS segreta mediante una serie di calcoli, con il risultato di ogni passaggio inserito nel successivo. Il passaggio finale produce la coppia di chiavi.
-
Quando un AWS servizio riceve una richiesta firmata con SigV4a, AWS verifica la firma utilizzando solo la metà pubblica della coppia di chiavi. Se la firma è valida, la richiesta viene autenticata e il servizio elabora la richiesta. Le richieste con firme non valide vengono rifiutate.
Quando firmare le richieste
Quando si scrive codice personalizzato che invia API richieste a AWS, è necessario includere il codice che firmi le richieste. Potrebbe essere necessario scrivere codice personalizzato perché:
-
Stai lavorando con un linguaggio di programmazione per il quale non esiste AWS SDK.
-
È necessario il controllo completo su come vengono inviate le richieste AWS.
Mentre API le richieste autenticano l'accesso con AWS SIGv4 AWS SDKs e AWS CLI autenticano le richieste utilizzando le chiavi di accesso fornite. Per ulteriori informazioni sull'autenticazione con and the, consulta. AWS SDKs AWS CLIAltre risorse
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 le 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.
AWS SigV4 può essere espresso nell'intestazione di HTTP autorizzazione o come stringa di query in. URL Per ulteriori informazioni, consulta Metodi di autenticazione.
Altre risorse
-
Per ulteriori informazioni sul processo di firma SigV4 per diversi servizi, vedere. Richiesta di esempi di firma
-
Per configurare le credenziali per l'accesso programmatico per il AWS CLI, consultate Autenticazione e credenziali di accesso nella Guida per l'utente dell'interfaccia a riga di AWS comando.
-
AWS SDKsIncludi il codice sorgente GitHub per la firma delle richieste. AWS API Per esempi di codice, vedereProgetti di esempio nell'archivio AWS di esempi.
-
AWS SDK for .NET — AWS4Signer.cs
-
AWS SDK for C++ — .cpp AWSAuthV4Signer
-
AWS SDK for Go — v4.go
-
AWS SDK for Java — 4Signer.java BaseAws
-
AWS SDK for JavaScript — v4.js
-
AWS SDK for PHP — SignatureV4.php
-
AWS SDK for Python (Boto) — signers.py
-
AWS SDK for Ruby — signer.rb
-