Utilizzo di URL prefirmati - Amazon Simple Storage Service

Utilizzo di URL prefirmati

Per impostazione predefinita, tutti gli oggetti e i bucket sono privati. Tuttavia, è possibile utilizzare un URL prefirmato per condividere facoltativamente gli oggetti o consentire ai clienti/utenti di caricare oggetti in bucket senza credenziali di sicurezza o autorizzazioni AWS.

È possibile utilizzare URL prefirmati per generare un URL che può essere utilizzato per accedere ai bucket Amazon S3. Quando crei un URL prefirmato, lo associ a un'azione specifica. È possibile condividere l'URL e chiunque vi abbia accesso può eseguire l'azione incorporata nell'URL come se fosse l'utente di firma originale. L'URL scadrà e non funzionerà più una volta raggiunta la sua scadenza.

Importante

Per tutte le regioni lanciate dopo il 20 marzo 2019, se una richiesta arriva alla posizione Amazon S3 errata, Amazon S3 restituisce un errore HTTP 400 - Richiesta non valida.

Limitazione delle funzionalità degli URL prefirmati

Le funzionalità dell'URL prefirmato sono limitate dalle autorizzazioni dell'utente che lo ha creato. In sostanza, gli URL prefirmati sono token di connessione che consentono l'accesso agli utenti che li possiedono. Pertanto, consigliamo di proteggerli in modo appropriato.

Se desideri limitare l'utilizzo di URL prefirmati e tutti gli accessi S3 a percorsi di rete specifici, puoi definire policy AWS Identity and Access Management (IAM) che richiedono uno specifico percorso di rete. Puoi impostare queste policy sul principale del servizio IAM che effettua la chiamata, sul bucket Amazon S3 o su entrambi.

Una restrizione del percorso di rete sul principale del servizio richiede all'utente di tali credenziali di effettuare richieste dalla rete specificata. Una restrizione sul bucket limita l'accesso allo stesso soltanto alle richieste originate dalla rete specificata. Tieni presente che queste restrizioni si applicano anche al di fuori dello scenario di URL prefirmato.

La condizione globale IAM utilizzata dipende dal tipo di endpoint. Se utilizzi l'endpoint pubblico per Amazon S3, utilizza aws:SourceIp. Se utilizzi un endpoint VPC per Amazon S3, utilizza aws:SourceVpc o aws:SourceVpce.

La seguente istruzione di policy IAM richiede che il principale del servizio acceda ad AWS solo dall'intervallo di rete specificato. Quando questa istruzione della policy è attiva, tutti gli accessi devono avere origine da tale intervallo. Ciò include il caso di qualcuno che utilizza un URL prefirmato per S3.

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "", "Resource": "", "Condition": { "NotIpAddressIfExists": { "aws:SourceIp": "IP-address" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }

Chi può creare un URL prefirmato

Qualsiasi utente che disponga di credenziali di sicurezza valide può creare un URL prefirmato. Tuttavia, per accedere a un oggetto, è necessario che l'URL prefirmato sia creato da un utente che dispone dell'autorizzazione a eseguire l'operazione su cui si basa l'URL prefirmato.

Le credenziali che puoi utilizzare per creare un URL prefirmato sono:

  • Profilo dell'istanza IAM: valido fino a 6 ore.

  • AWS Security Token Service: valido fino a 36 ore quando viene firmato con credenziali permanenti, ad esempio quelle dell'utente root dell'Account AWS o di un utente IAM.

  • Utente IAM: valido fino a 7 giorni quando utilizzi AWS Signature Version 4.

    Per creare un URL prefirmato valido fino a 7 giorni, devi prima specificare le credenziali dell'utente IAM (la chiave di accesso e la chiave segreta) nell'SDK in uso. Quindi, genera un URL prefirmato utilizzando AWS Signature Version 4.

Nota
  • Se hai creato un URL prefirmato utilizzando un token temporaneo, l'URL scade insieme al token, anche se per l'URL è indicata una data di scadenza successiva.

  • Poiché gli URL prefirmati consentono l'accesso ai tuoi bucket Amazon S3 a chiunque disponga dell'URL, ti consigliamo di proteggerli in modo appropriato.

Quando Simple Storage Service (Amazon S3) verifica la data e l'ora di scadenza in un URL prefirmato?

Simple Storage Service (Amazon S3) verifica la data e l'ora di scadenza in un URL firmato al momento della richiesta HTTP. Ad esempio, se un client inizia a scaricare un file di grandi dimensioni immediatamente prima dell'ora di scadenza, il download viene completato anche se l'ora di scadenza trascorre durante il download. Se la connessione TCP viene interrotta e il client tenta di riavviare il download dopo l'ora di scadenza, il download non riesce.

Per ulteriori informazioni sull'utilizzo di un URL prefirmato per condividere o caricare oggetti, consulta gli argomenti riportati di seguito.