Lavorare con presigned URLs - 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à.

Lavorare con presigned URLs

Puoi utilizzare presigned URLs per concedere un accesso limitato nel tempo agli oggetti in Amazon S3 senza aggiornare la tua policy sui bucket. Un prefirmato URL può essere inserito in un browser o utilizzato da un programma per scaricare un oggetto. Le credenziali utilizzate dal prefirmato URL sono quelle dell' AWS utente che ha generato il. URL

Puoi anche usare presigned URLs per consentire a qualcuno di caricare un oggetto specifico nel tuo bucket Amazon S3. Ciò consente il caricamento senza richiedere a terzi di disporre di credenziali o autorizzazioni AWS di sicurezza. Se nel bucket esiste già un oggetto con la stessa chiave specificata nel presignedURL, Amazon S3 sostituisce l'oggetto esistente con l'oggetto caricato.

Puoi utilizzare il predefinito URL più volte, fino alla data e all'ora di scadenza.

Quando si crea un predefinitoURL, è necessario fornire le credenziali di sicurezza e quindi specificare quanto segue:

  • Un bucket Amazon S3

  • Una chiave oggetto (se il download di questo oggetto sarà nel tuo bucket Amazon S3, se lo stai caricando questo è il nome del file da caricare)

  • Un HTTP metodo (GETper scaricare o PUT caricare oggetti)

  • Un intervallo di tempo di scadenza

Attualmente, Amazon S3 presigned URLs non supporta l'utilizzo dei seguenti algoritmi di checksum per l'integrità dei dati (CRC32,,CRC32C,SHA-1) quando carichi oggetti. SHA-256 Per verificare l'integrità del tuo oggetto dopo il caricamento, puoi fornire un MD5 riassunto dell'oggetto quando lo carichi con un predefinito. URL Per ulteriori informazioni sull'integrità degli oggetti, consulta Verifica dell'integrità degli oggetti.

Chi può creare un file predefinito URL

Chiunque disponga di credenziali di sicurezza valide può creare un prefirmato. URL Tuttavia, affinché qualcuno possa accedere correttamente a un oggetto, il prefirmato URL deve essere creato da qualcuno che dispone dell'autorizzazione per eseguire l'operazione su cui si basa il prefirmatoURL.

Di seguito sono riportati i tipi di credenziali che è possibile utilizzare per creare un predefinito: URL

  • IAMprofilo di istanza: valido fino a 6 ore.

  • AWS Security Token Service: valido fino a un massimo di 36 ore se firmato con credenziali di sicurezza a lungo termine o per la durata delle credenziali temporanee, a seconda di quali scadano per prime.

  • IAMutente: valido fino a 7 giorni se utilizzi la versione 4 di AWS Signature.

    Per creare un predefinito valido per un massimo di 7 giorni, delega innanzitutto le credenziali IAM utente (la chiave di accesso e la chiave segreta) al metodo che stai utilizzando per creare il prefirmatoURL. URL

Nota

Se hai creato una credenziale predefinita URL utilizzando una credenziale temporanea, questa scade alla scadenza della URL credenziale. In generale, una prefirmata URL scade quando la credenziale utilizzata per crearla viene revocata, eliminata o disattivata. Questo è vero anche se è URL stato creato con una scadenza successiva. Per la durata temporanea delle credenziali di sicurezza, consulta Comparazione AWS STS API delle operazioni nella Guida per l'IAMutente.

Data di scadenza per le impostazioni predefinite URLs

Un prefirmato URL rimane valido per il periodo di tempo specificato al momento della generazioneURL. Se crei un file predefinito URL con la console Amazon S3, il tempo di scadenza può essere impostato tra 1 minuto e 12 ore. Se utilizzi l'opzione AWS CLI o AWS SDKs, il tempo di scadenza può essere impostato fino a 7 giorni.

Se hai creato un prefirmato URL utilizzando un token temporaneo, URL scade alla scadenza del token. In generale, un prefirmato URL scade quando la credenziale utilizzata per crearlo viene revocata, eliminata o disattivata. Questo è vero anche se è URL stato creato con una scadenza successiva. Per ulteriori informazioni su come le credenziali utilizzate influiscono sulla data di scadenza, consultaChi può creare un file predefinito URL.

Amazon S3 verifica la data e l'ora di scadenza di un documento firmato URL al momento della HTTP richiesta. 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 viene superata. Se la connessione TCP viene interrotta e il client prova a riavviare il download dopo la scadenza, il download non riesce.

Limitazione delle funzionalità predefinite URL

Le funzionalità di un file predefinito URL sono limitate dalle autorizzazioni dell'utente che lo ha creato. In sostanza, i presigned URLs sono token portatori che garantiscono l'accesso a chi li possiede. Pertanto, consigliamo di proteggerli in modo appropriato. Di seguito sono riportati alcuni metodi che è possibile utilizzare per limitare l'uso del prefirmato. URLs

AWS Signature Version 4 (SigV4)

Per imporre un comportamento specifico quando URL le richieste prefirmate vengono autenticate utilizzando AWS Signature Version 4 (SigV4), puoi utilizzare le chiavi di condizione nelle policy dei bucket e nelle politiche dei punti di accesso. Ad esempio, la seguente policy sui bucket utilizza la s3:signatureAge condizione per negare qualsiasi richiesta URL prefirmata Amazon S3 sugli oggetti nel bucket se amzn-s3-demo-bucket1 la firma risale a più di 10 minuti. Per utilizzare questo esempio, sostituisci segnaposti di input dall'utente con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 min old", "Effect": "Deny", "Principal": {"AWS":"*"}, "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "NumericGreaterThan": { "s3:signatureAge": 600000 } } } ] }

Per ulteriori informazioni sulla versione 4 di AWS Signature relativa alle chiavi di policy, consulta AWS Signature Version 4 Authentication in Amazon Simple Storage Service API Reference.

Limitazioni per percorso di rete

Se desideri limitare l'uso dell'accesso predefinito URLs e di tutti gli accessi di Amazon S3 a determinati percorsi di rete, puoi AWS Identity and Access Management scrivere politiche IAM (). Puoi impostare queste policy sul IAM principale che effettua la chiamata, sul bucket Amazon S3 o su entrambi.

Una restrizione del percorso di rete sul IAM principale richiede che l'utente di tali credenziali effettui richieste dalla rete specificata. Una restrizione sul bucket o sul punto di accesso richiede che tutte le richieste a quella risorsa provengano dalla rete specificata. Queste restrizioni si applicano anche al di fuori dello scenario predefinito. URL

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

La seguente dichiarazione IAM politica richiede che il principale acceda AWS solo dall'intervallo di rete specificato. Con questa istruzione della policy, tutti gli accessi devono avere origine da tale intervallo. Ciò include il caso di qualcuno che utilizza un predefinito URL per Amazon S3. Per utilizzare questo esempio, sostituisci il segnaposti di input dall'utente con le tue informazioni.

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