Creazione di un bucket - Amazon Simple Storage Service

Creazione di un bucket

Per caricare i dati su Amazon S3, innanzitutto è necessario creare un bucket Amazon S3 in una delle Regioni AWS. Quando si crea un bucket, è necessario scegliere il nome del bucket e una regione. Facoltativamente, è possibile scegliere altre opzioni di gestione dello storage per il bucket. Dopo avere creato un bucket, non è possibile modificare il nome del bucket o la regione. Per ulteriori informazioni sulla denominazione dei bucket, consulta Regole di denominazione dei bucket.

Il bucket è di proprietà dell'Account AWS che lo crea. È possibile caricare un numero qualsiasi di oggetti nel bucket. Per impostazione predefinita, è possibile creare fino a 100 bucket in ciascun Account AWS. Se necessiti di più bucket, puoi aumentare il limite di bucket dell'account fino a un massimo di 1.000 bucket richiedendo un aumento del limite di servizio. Per informazioni su come inviare una richiesta di aumento del limite di bucket, consulta Service Quotas di AWS in Riferimenti generali AWS. È possibile archiviare un numero qualsiasi di oggetti in un bucket.

S3 Object Ownership è un'impostazione a livello di bucket di Amazon S3 che puoi utilizzare per disabilitare gli elenchi di controllo degli accessi (ACL) e assumere la proprietà di ogni oggetto nel tuo bucket, semplificando la gestione degli accessi per i dati archiviati in Amazon S3. Per impostazione predefinita, quando un altro Account AWS carica un oggetto nel bucket Amazon S3, tale account (l'object writer) possiede l'oggetto, può accedervi e può concedere ad altri utenti l'accesso ad esso tramite le ACL. Quando crei un bucket, puoi applicare l'impostazione del proprietario del bucket per Object Ownership per modificare questo comportamento di default in modo che le ACL siano disabilitate e tu, in qualità di proprietario del bucket, possieda automaticamente ogni oggetto nel tuo bucket. Di conseguenza, il controllo degli accessi per i dati è basato su policy. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

Importante

A partire da aprile 2023, Amazon S3 modificherà le impostazioni predefinite per Blocco dell'accesso pubblico Amazon S3 e Object Ownership (ACL disattivate) per tutti i nuovi bucket S3. Per i nuovi bucket creati dopo questo aggiornamento, tutte le impostazioni di Blocco dell'accesso pubblico Amazon S3 verranno abilitate e le liste di controllo degli accessi (ACL) S3 saranno disabilitate. Queste impostazioni predefinite rappresentano best practice consigliate per la protezione dei dati in Amazon S3. Puoi modificare queste impostazioni dopo aver creato il tuo bucket. Per ulteriori informazioni, consulta Domande frequenti sulle impostazioni predefinite per i nuovi bucket S3 e Heads-Up: Amazon S3 Security Changes Are Coming in April of 2023 (Avviso: le modifiche alla sicurezza di Amazon S3 arriveranno ad aprile del 2023) in AWSNews Blog.

Puoi utilizzare la console Amazon S3, le API Amazon S3, AWS CLI o gli SDK AWS per creare un bucket. Per ulteriori informazioni sulle autorizzazioni necessarie per creare un bucket, consulta CreateBucket nella Documentazione di riferimento delle API di Amazon Simple Storage Service.

  1. Accedi alla AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Scegliere Create bucket (Crea bucket).

    Si apre la procedura guidata Create bucket (Crea bucket).

  3. In Bucket name (Nome bucket), immettere un nome conforme a DNS per il bucket.

    Il nome del bucket deve:

    • Essere univoco in tutto Amazon S3.

    • Deve contenere da 3 a 63 caratteri

    • Non contiene caratteri maiuscoli.

    • Iniziare con una lettera minuscola o un numero.

    Una volta creato il bucket, non è possibile modificarne il nome. Per ulteriori informazioni sulla denominazione dei bucket, consulta la sezione Regole di denominazione dei bucket.

    Importante

    Evitare di includere informazioni riservate, ad esempio numeri di account, nel nome del bucket. Il nome bucket è visibile nell'URL che punta agli oggetti nel bucket.

  4. In Regione scegli la regione Regione AWS in cui desideri che il bucket risieda.

    Scegliere una regione nelle vicinanze per ridurre al minimo la latenza e i costi o rispondere a requisiti normativi. Gli oggetti archiviati in una regione non la lasciano mai a meno che non vengano trasferiti esplicitamente in un'altra regione. Per un elenco di Regioni AWS di Amazon S3, consulta la sezione Endpoint del servizio AWS nei riferimenti generali su Amazon Web Services.

  5. Alla voce Proprietà oggetto, per disabilitare o abilitare le ACL e controllare la proprietà degli oggetti caricati nel bucket, scegliere una delle seguenti impostazioni:

    ACL disabilitate
    • Proprietario del bucket applicato – Le ACL sono disabilitate e il proprietario del bucket possiede automaticamente e ha il pieno controllo su ogni oggetto nel bucket. Le ACL non influiscono più sulle autorizzazioni per i dati nel bucket S3. Il bucket utilizza le policy per definire il controllo degli accessi.

      Per richiedere che tutti i nuovi bucket vengano creati con le ACL disabilitate utilizzando IAM o le policy AWS Organizations, consulta Disabilitazione degli ACL per tutti i nuovi bucket (proprietario del bucket applicato).

    ACL abilitate
    • Proprietario del bucket scelto – Il proprietario del bucket possiede e ha il pieno controllo sui nuovi oggetti che altri account scrivono nel bucket con l'ACL predefinita bucket-owner-full-control.

      Se applichi l'impostazione preferita per il proprietario del bucket per richiedere che tutti i caricamenti di Amazon S3 includano l'ACL predefinita bucket-owner-full-control, puoi aggiungere una policy del bucket che consenta solo il caricamento di oggetti che utilizzano questo ACL.

    • Object writer – L'Account AWS che carica un oggetto lo possiede, ne ha il pieno controllo e può concedere ad altri utenti l'accesso tramite ACL.

    Nota

    Per eseguire l'impostazione Proprietario del bucket applicato o l'impostazione proprietario del bucket scelto, bisogna disporre della seguente autorizzazione: s3:CreateBucket e s3:PutBucketOwnershipControls.

  6. In Bucket settings for Block Public Access (Impostazioni bucket per blocco dell'accesso pubblico), scegliere le impostazioni del blocco dell'accesso pubblico che si desidera applicare al bucket.

    Si consiglia di lasciare tutte le impostazioni abilitate, a meno che non si sappia che è necessario disattivarne una o più per il caso d'uso, ad esempio per ospitare un sito Web pubblico. Le impostazioni di blocco dell'accesso pubblico abilitate per il bucket saranno abilitate anche per tutti i punti di accesso creati nel bucket. Per ulteriori informazioni sul blocco dell'accesso pubblico, consulta Blocco dell'accesso pubblico allo storage Amazon S3.

  7. (Facoltativo) In Bucket Versioning (Controllo delle versioni bucket), puoi scegliere se conservare varianti degli oggetti nel bucket. Per ulteriori informazioni sulla funzione Controllo delle versioni, consulta Utilizzo della funzione Controllo delle versioni nei bucket S3.

    Per disabilitare o abilitare il controllo delle versioni nel bucket, scegli Disable (Disabilita) o Enable (Abilita).

  8. (Facoltativo) In Tags (Tag), puoi scegliere di aggiungere tag al bucket. I tag sono coppie chiave-valore utilizzate per classificare lo spazio di archiviazione.

    Per aggiungere un tag al bucket, inserisci un valore in Key (Chiave) e facoltativamente un valore in Value (Valore), quindi scegli Add Tag (Aggiungi tag).

  9. (Facoltativo) In Default encryption (Crittografia predefinita), puoi decidere di configurare il bucket per utilizzare la crittografia lato server con le chiavi gestite da Amazon S3 (SSE-S3) o AWS KMS keys archiviate in AWS Key Management Service (AWS KMS) (SSE-KMS). Per ulteriori informazioni, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3.

    Per abilitare o disabilitare la crittografia, scegli Enable (Abilita) o Disable (Disabilita).

  10. (Facoltativo) Se si desidera abilitare il blocco oggetti S3, effettua le seguenti operazioni:

    1. Scegliere Advanced settings (Impostazioni avanzate).

      Importante

      È solo possibile abilitare il blocco di oggetti per un bucket quando lo si crea, ma non è possibile disabilitarlo in un secondo momento. L'abilitazione del blocco oggetti consente anche la funzione Controllo delle versioni del bucket. Dopo averlo abilitato, per il blocco di oggetti è necessario configurare le impostazioni predefinite di conservazione e di blocco di carattere legale per proteggere i nuovi oggetti dall'eliminazione o dalla sovrascrittura.

    2. Se desideri abilitare il blocco degli oggetti, scegli Enable (Abilita), leggi l'avviso visualizzato e confermalo.

    Per ulteriori informazioni, consulta Utilizzo del blocco oggetti S3.

    Nota

    Per creare un bucket abilitato per il blocco degli oggetti, devi disporre delle seguenti autorizzazioni: s3:CreateBucket, s3:PutBucketVersioning e s3:PutBucketObjectLockConfiguration.

  11. Seleziona Create bucket (Crea bucket).

Se utilizzi gli SDK AWS per creare un bucket, devi innanzitutto creare un client e successivamente utilizzare il client per inviare una richiesta di creazione di un bucket. Come best practice, crea il client e il bucket nella stessa Regione AWS. Se non specifichi una regione quando crei un client o un bucket, Amazon S3 utilizza la regione predefinita Stati Uniti orientali (Virginia settentrionale).

Per creare un client per accedere a un endpoint dual-stack, è necessario specificare una Regione AWS. Per ulteriori informazioni, consulta Endpoint dual-stack. Per un elenco delle Regioni AWS disponibili, consulta Regioni ed endpoint in Riferimenti generali AWS.

Quando si crea un client, la regione viene mappata all'endpoint specifico della regione. Il client utilizza questo endpoint per comunicare con Amazon S3: s3.<region>.amazonaws.com. Se la tua regione è stata lanciata dopo il 20 marzo 2019, il tuo client e il tuo bucket devono trovarsi nella stessa regione. Puoi comunque utilizzare un client nella regione Stati Uniti orientali (Virginia settentrionale) per creare un bucket in qualsiasi regione lanciata prima del 20 marzo 2019. Per ulteriori informazioni, consulta Endpoint legacy.

In questi esempi di SDK AWS vengono eseguite le attività sotto elencate:

  • Creazione di un client specificando esplicitamente una Regione AWS - Nell'esempio, il client utilizza l'endpoint s3.us-west-2.amazonaws.com per comunicare con Amazon S3. Puoi specificare qualsiasi Regione AWS. Per un elenco delle Regioni AWS, consulta Regioni ed endpoint in Riferimenti generali AWS.

  • Inviare una richiesta di creazione di bucket specificando solo il nome del bucket - Il client invia ad Amazon S3 la richiesta di creare il bucket nella regione in cui hai creato un client.

  • Recupero delle informazioni sulla posizione del bucket - Amazon S3 memorizza le informazioni sulla posizione del bucket nella risorsa secondaria posizione associata al bucket.

Java

Questo esempio mostra come creare un bucket Amazon S3 utilizzando la AWS SDK for Java. Per istruzioni su come creare e testare un esempio di utilizzo, consulta Test degli esempi di codice Java di Amazon S3.

import com.amazonaws.AmazonServiceException; 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.CreateBucketRequest; import com.amazonaws.services.s3.model.GetBucketLocationRequest; import java.io.IOException; public class CreateBucket2 { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); if (!s3Client.doesBucketExistV2(bucketName)) { // Because the CreateBucketRequest object doesn't specify a region, the // bucket is created in the region specified in the client. s3Client.createBucket(new CreateBucketRequest(bucketName)); // Verify that the bucket was created by retrieving it and checking its location. String bucketLocation = s3Client.getBucketLocation(new GetBucketLocationRequest(bucketName)); System.out.println("Bucket location: " + bucketLocation); } } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and 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

Per informazioni su come creare e testare un esempio di utilizzo, consulta Esecuzione degli esempi di codice .NET di Amazon S3.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class CreateBucketTest { private const string bucketName = "*** bucket name ***"; // 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); CreateBucketAsync().Wait(); } static async Task CreateBucketAsync() { try { if (!(await AmazonS3Util.DoesS3BucketExistAsync(s3Client, bucketName))) { var putBucketRequest = new PutBucketRequest { BucketName = bucketName, UseClientRegion = true }; PutBucketResponse putBucketResponse = await s3Client.PutBucketAsync(putBucketRequest); } // Retrieve the bucket location. string bucketLocation = await FindBucketLocationAsync(s3Client); } 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); } } static async Task<string> FindBucketLocationAsync(IAmazonS3 client) { string bucketLocation; var request = new GetBucketLocationRequest() { BucketName = bucketName }; GetBucketLocationResponse response = await client.GetBucketLocationAsync(request); bucketLocation = response.Location.ToString(); return bucketLocation; } } }
Ruby

Per informazioni su come creare e testare un esempio di utilizzo, consulta Utilizzo dell'AWS SDK for Ruby - Versione 3.

require "aws-sdk-s3" # Wraps Amazon S3 bucket actions. class BucketCreateWrapper attr_reader :bucket # @param bucket [Aws::S3::Bucket] An Amazon S3 bucket initialized with a name. This is a client-side object until # create is called. def initialize(bucket) @bucket = bucket end # Creates an Amazon S3 bucket in the specified AWS Region. # # @param region [String] The Region where the bucket is created. # @return [Boolean] True when the bucket is created; otherwise, false. def create?(region) @bucket.create(create_bucket_configuration: { location_constraint: region }) true rescue Aws::Errors::ServiceError => e puts "Couldn't create bucket. Here's why: #{e.message}" false end # Gets the Region where the bucket is located. # # @return [String] The location of the bucket. def location if @bucket.nil? "None. You must create a bucket before you can get it's location!" else @bucket.client.get_bucket_location(bucket: @bucket.name).location_constraint end rescue Aws::Errors::ServiceError => e "Couldn't get the location of #{@bucket.name}. Here's why: #{e.message}" end end def run_demo region = "us-west-2" wrapper = BucketCreateWrapper.new(Aws::S3::Bucket.new("doc-example-bucket-#{Random.uuid}")) return unless wrapper.create?(region) puts "Created bucket #{wrapper.bucket.name}." puts "Your bucket's region is: #{wrapper.location}" end run_demo if $PROGRAM_NAME == __FILE__

Per creare un bucket S3, puoi utilizzare anche la AWS Command Line Interface (AWS CLI). Per ulteriori informazioni, consulta create-bucket nella Guida di riferimento ai comandi della AWS CLI.

Per ulteriori informazioni su AWS CLI, consulta Che cos'è la AWS Command Line Interface? nella Guida per l'utente di AWS Command Line Interface.