Firma AWS delle richieste API - AWS Identity and Access Management

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) o a riga di AWS comando (CLI) a cui inviare richieste AWS API, puoi saltare questa sezione perché i client SDK e CLI autenticano le tue richieste utilizzando le chiavi di accesso che fornisci. A meno che tu non abbia una buona ragione per non farlo, ti consigliamo di utilizzare sempre un SDK o una CLI.

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 su. GitHub

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

Un'immagine delle parti di una firma, inclusa la stringa da firmare, la chiave di firma e la firma calcolata.
  • 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.

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.