Condivisione di oggetti utilizzando presigned URLs - Amazon S3 su Outposts

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

Condivisione di oggetti utilizzando presigned URLs

Per concedere un accesso limitato nel tempo agli oggetti archiviati localmente su Outpost senza aggiornare la tua policy sui bucket, puoi utilizzare un programma predefinito. URL Con presignedURLs, in qualità di proprietario del bucket puoi condividere oggetti con altre persone nel tuo cloud privato virtuale (VPC) o concedere loro la possibilità di caricare o eliminare oggetti.

Quando crei un predefinito URL utilizzando il AWS SDKs o il AWS Command Line Interface (AWS CLI), lo associ a un'azione URL specifica. Puoi inoltre concedere un accesso limitato nel tempo ai predefiniti URL scegliendo un tempo di scadenza personalizzato che può essere compreso tra 1 secondo e massimo 7 giorni. Quando condividi il prefirmatoURL, la persona che ne fa parte VPC può eseguire l'azione incorporata nel file URL come se fosse l'utente firmatario originale. Quando URL raggiunge la scadenza, URL scade e non funziona più.

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

  • Un punto di accesso Amazon Resource Name (ARN) per il bucket Amazon S3 on Outposts

  • Una chiave oggetto

  • Un HTTP metodo (GETper scaricare oggetti)

  • Una data e un'ora di scadenza

Un prefirmato URL è valido solo per la durata specificata. Cioè, è necessario avviare l'azione consentita entro la data e l'ora URL precedenti alla scadenza. È possibile utilizzare un'impostazione predefinita URL più volte, fino alla data e all'ora di scadenza. Se hai creato un prefirmato URL utilizzando un token temporaneo, questo URL scade alla scadenza del token, anche se lo hai creato URL con una scadenza successiva.

Gli utenti nel cloud privato virtuale (VPC) che hanno accesso al prefirmato URL possono accedere all'oggetto. Ad esempio, se hai un video nel tuo bucket e sia il bucket che l'oggetto sono privati, puoi condividere il video con altri generando un predefinito. URL Poiché la modalità predefinita URLs concede l'accesso ai tuoi bucket S3 on Outposts a chiunque li possiedaURL, ti consigliamo di proteggerli in modo appropriato. URLs Per maggiori dettagli sulla protezione dei predefiniti, consulta. URLs Limitazione delle funzionalità predefinite URL

Chiunque disponga di credenziali di sicurezza valide può creare un prefirmato. URL Tuttavia, il prefirmato URL deve essere creato da qualcuno che dispone dell'autorizzazione a eseguire l'operazione su cui si basa il prefirmatoURL. Per ulteriori informazioni, consulta Chi può creare un predefinito URL.

Puoi generare un preimpostato URL per condividere un oggetto in un bucket S3 on Outposts utilizzando and the. AWS SDKs AWS CLI Per maggiori informazioni, consulta i seguenti esempi.

Puoi usare il AWS SDKs per generare un predefinito URL da dare ad altri in modo che possano recuperare un oggetto.

Nota

Quando si utilizza il AWS SDKs per generare un predefinitoURL, il tempo di scadenza massimo per un predefinito URL è di 7 giorni dal momento della creazione.

Java

L'esempio seguente genera un presigned URL che puoi dare ad altri in modo che possano recuperare un oggetto da un bucket S3 on Outposts. Per ulteriori informazioni, consulta Utilizzo di presigned URLs per S3 su Outposts. Per usare questo esempio, sostituisci il segnaposti di input dall'utente con le tue informazioni.

import com.amazonaws.AmazonServiceException; import com.amazonaws.HttpMethod; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest; import java.io.IOException; import java.net.URL; import java.time.Instant; public class GeneratePresignedURL { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String accessPointArn = "*** access point ARN ***"; String objectKey = "*** object key ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .withCredentials(new ProfileCredentialsProvider()) .build(); // Set the presigned URL to expire after one hour. java.util.Date expiration = new java.util.Date(); long expTimeMillis = Instant.now().toEpochMilli(); expTimeMillis += 1000 * 60 * 60; expiration.setTime(expTimeMillis); // Generate the presigned URL. System.out.println("Generating pre-signed URL."); GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(accessPointArn, objectKey) .withMethod(HttpMethod.GET) .withExpiration(expiration); URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest); System.out.println("Pre-Signed URL: " + url.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

L'esempio seguente genera un presigned URL che puoi dare ad altri in modo che possano recuperare un oggetto da un bucket S3 on Outposts. Per ulteriori informazioni, consulta Utilizzo di presigned URLs per S3 su Outposts. Per usare questo esempio, sostituisci il segnaposti di input dall'utente con le tue informazioni.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; namespace Amazon.DocSamples.S3 { class GenPresignedURLTest { private const string accessPointArn = "*** access point ARN ***"; private const string objectKey = "*** object key ***"; // Specify how long the presigned URL lasts, in hours. private const double timeoutDuration = 12; // Specify your bucket Region (an example Region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); string urlString = GeneratePreSignedURL(timeoutDuration); } static string GeneratePreSignedURL(double duration) { string urlString = ""; try { GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest { BucketName = accessPointArn, Key = objectKey, Expires = DateTime.UtcNow.AddHours(duration) }; urlString = s3Client.GetPreSignedURL(request1); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } return urlString; } } }
Python

L'esempio seguente genera un preimpostato URL per condividere un oggetto utilizzando SDK for Python (Boto3). Ad esempio, utilizzate un client Boto3 e la generate_presigned_url funzione per generare un predefinito che consenta di creare un oggetto. URL GET

import boto3 url = boto3.client('s3').generate_presigned_url( ClientMethod='get_object', Params={'Bucket': 'ACCESS_POINT_ARN', 'Key': 'OBJECT_KEY'}, ExpiresIn=3600)

Per ulteriori informazioni sull'utilizzo di SDK for Python (Boto3) per generare un prefirmatoURL, vedere Python nel riferimento.AWS SDK for Python (Boto) API

Il AWS CLI comando di esempio seguente genera un prefirmato URL per un bucket S3 on Outposts. Per utilizzare questo esempio, sostituisci il segnaposti di input dall'utente con le tue informazioni.

Nota

Quando si utilizza il AWS CLI per generare un predefinitoURL, il tempo massimo di scadenza per un predefinito URL è di 7 giorni dal momento della creazione.

aws s3 presign s3://arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/accesspoint/example-outpost-access-point/mydoc.txt --expires-in 604800

Per ulteriori informazioni, consulta presign in Riferimento ai comandi della AWS CLI .