View a markdown version of this page

Autenticazione delle richieste (AWS Signature (versione 4) - Amazon Simple Storage Service

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à.

Autenticazione delle richieste (AWS Signature (versione 4)

Ogni interazione con Amazon S3 è autenticata o anonima. Questa sezione spiega l'autenticazione delle richieste con l'algoritmo AWS Signature Version 4.

Nota

Se utilizzi AWS gli SDK (vedi Codice di esempio e librerie) per inviare le tue richieste, non è necessario leggere questa sezione perché i client SDK autenticano le tue richieste utilizzando le chiavi di accesso fornite. A meno che tu non abbia una buona ragione per non farlo, dovresti sempre usare gli SDK. AWS Nelle regioni che supportano entrambe le versioni di firma, puoi richiedere agli AWS SDK di utilizzare una versione di firma specifica. Per ulteriori informazioni, consulta Invio di richieste autenticate utilizzando AWS SDK. È necessario leggere questa sezione solo se si sta implementando l'algoritmo AWS Signature Version 4 nel client personalizzato.

L'autenticazione con AWS Signature Version 4 fornisce alcuni o tutti i seguenti elementi, a seconda di come scegli di firmare la tua richiesta:

  • Verifica dell'identità del richiedente: le richieste autenticate richiedono una firma creata utilizzando le chiavi di accesso (ID della chiave di accesso, chiave di accesso segreta). Per informazioni sull'ottenimento delle chiavi di accesso, consulta Understanding and Getting Your Security Credentials nel. Riferimenti generali di AWS Se stai utilizzando credenziali di sicurezza temporanee, i calcoli della firma richiedono anche un token di sicurezza. Per ulteriori informazioni, consulta Richiesta di credenziali di sicurezza temporanee nella Guida per l’utente di IAM.

  • In-transit protezione dei dati: per evitare di manomettere una richiesta mentre è in transito, si utilizzano alcuni degli elementi della richiesta per calcolare la firma della richiesta. Dopo aver ricevuto la richiesta, Amazon S3 calcola la firma utilizzando gli stessi elementi della richiesta. Se un componente della richiesta ricevuto da Amazon S3 non corrisponde al componente utilizzato per calcolare la firma, Amazon S3 rifiuterà la richiesta.

  • Proteggiti dal riutilizzo delle parti firmate della richiesta: le parti firmate (utilizzando le AWS firme) delle richieste sono valide entro 15 minuti dal timestamp nella richiesta. Una parte non autorizzata che ha accesso a una richiesta firmata può modificare le parti non firmate della richiesta senza influire sulla validità della richiesta entro 15 minuti. Per questo motivo, ti consigliamo di massimizzare la protezione firmando l'intestazione e il corpo della richiesta, effettuando richieste HTTPS ad Amazon S3 e utilizzando la chiave di s3:x-amz-content-sha256 condizione (vediChiavi specifiche delle policy di autenticazione di Amazon S3 Signature versione 4) nelle AWS policy per richiedere agli utenti di firmare i corpi delle richieste di Amazon S3.

Nota

Amazon S3 supporta complessivamente Signature Version 4, un protocollo per l'autenticazione delle richieste API in entrata ai servizi. AWS Regioni AWS Al momento, Regioni AWS creato prima del 30 gennaio 2014, continuerà a supportare il protocollo precedente, Signature Version 2. Tutte le nuove regioni dopo il 30 gennaio 2014 supporteranno solo la versione 4 di Signature e pertanto tutte le richieste a tali regioni devono essere effettuate con la versione 4 di Signature. Per ulteriori informazioni sulla versione 2 di AWS Signature, consulta la sezione Signing and Authenticating REST Requests nella Amazon Simple Storage Service User Guide.

Metodi di autenticazione

Puoi esprimere le informazioni di autenticazione utilizzando uno dei seguenti metodi:

  • Intestazione di autorizzazione HTTP: l'utilizzo dell'Authorizationintestazione HTTP è il metodo più comune per autenticare una richiesta Amazon S3. Tutte le operazioni REST di Amazon S3 (ad eccezione dei caricamenti basati su browser che utilizzano richieste POST) richiedono questa intestazione. Per ulteriori informazioni sul valore dell'Authorizationintestazione e su come calcolare la firma e le relative opzioni, consulta. Autenticazione delle richieste: utilizzo dell'intestazione di autorizzazione (AWS Signature (versione 4)

  • Parametri della stringa di query: puoi utilizzare una stringa di query per esprimere una richiesta interamente in un URL. In questo caso, utilizzi i parametri di interrogazione per fornire le informazioni sulla richiesta, incluse le informazioni di autenticazione. Poiché la firma richiesta è parte dell'URL, questo tipo di URL viene chiamato URL pre-firmato. Puoi utilizzare URL prefirmati per incorporare link cliccabili, validi fino a sette giorni, in HTML. Per ulteriori informazioni, consulta Autenticazione delle richieste: utilizzo dei parametri di interrogazione (AWS Signature (versione 4).

Amazon S3 supporta anche i caricamenti basati su browser che utilizzano richieste HTTP POST. Con una richiesta HTTP POST, puoi caricare contenuti su Amazon S3 direttamente dal browser. Per informazioni sull'autenticazione delle richieste POST, consulta. Browser-Based Caricamenti tramite POST (AWS Signature (versione 4)

Introduzione alla firma delle richieste

Le informazioni di autenticazione inviate in una richiesta devono includere una firma. Per calcolare una firma, devi prima concatenare gli elementi della richiesta di selezione 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 si utilizza la 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 derivare una chiave di firma in diversi linguaggi di programmazione, vedi Esempi di come derivare una chiave di firma per Signature versione 4.

Il diagramma seguente illustra il processo generale di calcolo di una firma.

Three-step processo che mostra StringToSign la creazione, la derivazione della chiave di firma e il calcolo della firma utilizzando. HMAC-SHA256

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 politica POST nella richiesta è la stringa da firmare. Per ulteriori informazioni sul calcolo della stringa da firmare, segui i collegamenti forniti alla fine di questa sezione.

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.

Dopo aver ricevuto una richiesta autenticata, i server Amazon S3 ricreano la firma utilizzando le informazioni di autenticazione contenute nella richiesta. Se le firme corrispondono, Amazon S3 elabora la richiesta; in caso contrario, la richiesta viene rifiutata.

Per ulteriori informazioni sull'autenticazione delle richieste, consulta i seguenti argomenti: