Creazione di un bucket - Amazon Simple Storage Service

Creazione di un bucket

Per caricare i dati su Amazon S3, è necessario prima creare un bucket Amazon S3 in Regioni AWS. Account AWS che crea il bucket ne è proprietario. Quando si crea un bucket, è necessario scegliere il nome del bucket e la 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 informazioni sulla denominazione dei bucket, consulta Regole di denominazione dei bucket per uso generico.

Per impostazione predefinita, è possibile creare fino a 10.000 bucket per uso generico per Account AWS. Per richiedere un aumento della quota per i bucket per uso generico, visita la console Service Quotas.

È possibile memorizzare un numero qualsiasi di oggetti in un bucket. Per un elenco di restrizioni e limitazioni relative ai bucket Amazon S3, consulta Quote, restrizioni e limitazioni sui bucket.

La proprietà degli oggetti S3 è un'impostazione a livello di bucket Amazon S3 che può essere utilizzata sia per controllare la proprietà degli oggetti caricati sul bucket, sia per disabilitare o abilitare le liste di controllo degli accessi (ACL). Per impostazione predefinita, Proprietà dell'oggetto è impostata su Proprietario del bucket applicato e tutte le liste di controllo degli accessi (ACL) sono disabilitate. Con le ACL disabilitate, il proprietario del bucket dispone di ogni oggetto nel bucket e gestisce l'accesso ai dati in maniera esclusiva utilizzando policy.

Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

La crittografia lato server con le chiavi gestite da Amazon S3 (SSE-S3) è il livello di base della crittografia per ogni bucket di Amazon S3. Tutti i nuovi oggetti caricati in un bucket S3 vengono crittografati automaticamente con SSE-S3 come livello base di impostazione della crittografia. Se desideri utilizzare un tipo diverso di crittografia predefinita per la crittografia dei dati, puoi anche specificare la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) o chiavi fornite dal cliente (SSE-C). Per ulteriori informazioni, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3.

Per creare un bucket è possibile utilizzare la console Amazon S3, le API Amazon S3, AWS CLI o gli SDK AWS. 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 a AWS Management Console e apri la console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/.

  2. Sulla barra di navigazione nella parte superiore della pagina scegli il nome della Regione AWS attualmente visualizzata. Quindi, scegli la Regione in cui creare un bucket.

    Nota

    Per ridurre al minimo la latenza e i costi e soddisfare i requisiti normativi, scegli una Regione vicina a te. Gli oggetti archiviati in una Regione non lasciano mai la Regione stessa, a meno che non vengano trasferiti esplicitamente in un'altra Regione. Per un elenco di Regioni AWS Amazon S3, consulta Endpoint Servizio AWS in Riferimenti generali di Amazon Web Services.

  3. Nel riquadro di navigazione sinistro, scegli Bucket.

  4. Scegli Crea bucket.

    Si apre la pagina Crea bucket.

  5. In Configurazione generale, visualizza la Regione AWS in cui verrà creato il bucket.

  6. In Tipo di bucket, scegli Uso generale.

  7. Per il Nome del bucket, inserisci un nome per il bucket.

    Il nome del bucket deve:

    • Essere univoco all'interno di una partizione. Una partizione è un raggruppamento di Regioni. AWS ha attualmente tre partizioni: aws (Regioni standard), aws-cn (Regioni della Cina) e aws-us-gov (AWS GovCloud (US) Regions).

    • Essere compreso tra 3 e 63 caratteri.

    • Essere costituito solo da lettere minuscole, numeri, punti (.) e trattini (-). Per una migliore compatibilità, si consiglia di evitare l'uso di punti (.) nei nomi dei bucket, ad eccezione dei bucket utilizzati solo per l'hosting di siti web statici.

    • Inizia e termina con una lettera o un numero.

    Dopo aver creato un bucket, non è possibile modificarne il nome. Account AWS che crea il bucket ne è proprietario. Per ulteriori informazioni sulla denominazione dei bucket, consulta Regole di denominazione dei bucket per uso generico.

    Importante

    Evita di inserire nel nome del bucket informazioni sensibili, come i numeri di conto corrente. Il nome del bucket è visibile negli URL che puntano agli oggetti del bucket.

  8. La AWS Management Console consente di copiare le impostazioni di un bucket esistente nel nuovo bucket. Se non desideri copiare le impostazioni di un bucket esistente, procedi al passaggio successivo.

    Nota

    Questa opzione:

    • Non è disponibile in AWS CLI, ma è disponibile solo nella console

    • Non è disponibile per i bucket di directory

    • Non copia la policy del bucket dal bucket esistente al nuovo bucket

    Per copiare le impostazioni di un bucket esistente, in Copia impostazioni da un bucket esistente, seleziona Scegli bucket. Viene visualizzata la finestra Scegli bucket. Individua il bucket con le impostazioni da copiare e seleziona Scegli bucket. La finestra Scegli bucket si chiude e si riapre la finestra Crea bucket.

    In Copia impostazioni da un bucket esistente, ora viene visualizzato il nome del bucket selezionato. Viene visualizzata anche l'opzione Ripristina impostazioni predefinite, che può essere utilizzata per rimuovere le impostazioni del bucket copiate. Rivedi le restanti impostazioni del bucket nella pagina Crea bucket. Vedrai che ora corrispondono alle impostazioni del bucket selezionato. È possibile passare alla fase finale.

  9. In Proprietà degli oggetti, per disattivare o attivare le ACL e controllare la proprietà degli oggetti caricati nel bucket, scegli una delle seguenti impostazioni:

    ACL disattivate
    • Proprietario del bucket applicato (impostazione predefinita): le ACL sono disabilitate e il proprietario del bucket possiede automaticamente e ha il controllo completo di ogni oggetto nel bucket. Le ACL non influiscono più sulle autorizzazioni di accesso ai dati nel bucket S3. Il bucket utilizza esclusivamente le policy per definire il controllo degli accessi.

      Per impostazione predefinita, le ACL sono disabilitate. La maggior parte dei casi d'uso moderni di Amazon S3 non richiede più l'uso di ACL. È consigliabile mantenere le ACL disabilitate, tranne in circostanze insolite in cui è necessario controllare individualmente l'accesso per ciascun oggetto. Per ulteriori informazioni, consulta Controllo della proprietà degli oggetti e disabilitazione degli ACL per il bucket.

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

      Se applichi l'impostazione Proprietario del bucket preferito, 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 questa ACL.

    • Scrittore di oggetti - Il Account AWS che carica un oggetto è proprietario dell'oggetto, ne ha il pieno controllo e può concedere l'accesso ad altri utenti tramite ACL.

    Nota

    L'impostazione predefinita è Proprietario del bucket applicato. Per applicare l'impostazione predefinita e mantenere gli ACL disabilitati, è necessaria solo l'autorizzazione s3:CreateBucket. Per abilitare gli ACL, è necessario disporre dell'autorizzazione s3:PutBucketOwnershipControls.

  10. In Impostazioni di blocco dell'accesso pubblico per questo bucket, scegli le impostazioni di blocco dell'accesso pubblico da applicare al bucket.

    Per impostazione predefinita, tutte e quattro le impostazioni Blocco dell'accesso pubblico sono abilitate. È consigliabile mantenere tutte le impostazioni abilitate, a meno che non sia necessario disattivarne una o più di una per il caso d'uso specifico. Per ulteriori informazioni sul blocco dell'accesso pubblico, consulta Blocco dell'accesso pubblico all'archivio Amazon S3.

    Nota

    Per abilitare tutte le impostazioni Blocco dell'accesso pubblico, è richiesta solo l'autorizzazione s3:CreateBucket. Per disattivare le impostazioni Blocco dell'accesso pubblico, è necessario disporre dell'autorizzazione s3:PutBucketPublicAccessBlock.

  11. (Facoltativo) In Controllo delle versioni del bucket, è possibile scegliere se mantenere le varianti degli oggetti nel bucket. Per ulteriori informazioni sul controllo delle versioni, consulta Conservazione di più versioni degli oggetti con Controllo delle versioni S3.

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

  12. (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 una Chiave e, facoltativamente, un Valore e scegli Aggiungi tag.

  13. In Crittografia predefinita, scegli Modifica.

  14. Per configurare la crittografia predefinita, in Tipo di crittografia scegli una delle seguenti opzioni:

    • Chiave gestita da Amazon S3 (SSE-S3)

    • Chiave AWS Key Management Service (SSE-KMS)

      Importante

      Se usi l'opzione SSE-KMS per la configurazione della crittografia predefinita, sei soggetto alla quota delle richieste al secondo di AWS KMS. Per ulteriori informazioni sulle quote AWS KMS e su come richiedere un aumento delle quote, consulta Quote nella Guida per gli sviluppatori di AWS Key Management Service.

    I bucket e i nuovi oggetti sono crittografati con la crittografia lato server con una chiave gestita da Amazon S3 come livello base di configurazione della crittografia. Per ulteriori informazioni sulla crittografia predefinita, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3.

    Per ulteriori informazioni sull'utilizzo della crittografia lato server di Amazon S3 per crittografare i dati, consulta Uso della crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3).

  15. Se scegli Chiave AWS Key Management Service (SSE-KMS), procedi come segue:

    1. In Chiave AWS KMS specifica la tua chiave KMS in uno dei seguenti modi:

      • Per effettuare una selezione in un elenco di chiavi KMS disponibili, seleziona Scegli tra le chiavi AWS KMS keys e quindi scegli una chiave KMS dell'elenco delle chiavi disponibili.

        In questo elenco compaiono sia le chiavi Chiave gestita da AWS (aws/s3) sia quelle gestite dal cliente. Per ulteriori informazioni sulle chiavi gestite dal cliente, consulta Chiavi gestite dal cliente e chiavi AWS nella Guida per gli sviluppatori di AWS Key Management Service.

      • Per specificare l'ARN della chiave KMS, scegli Inserisci l'ARN della AWS KMS key e quindi specifica l'ARN della chiave KMS nel campo visualizzato.

      • Per creare una chiave gestita dal cliente, scegli Crea una chiave KMS nella console AWS KMS.

        Per ulteriori informazioni sulla creazione di AWS KMS key, consulta Creazione di chiavi nella Guida per gli sviluppatori AWS Key Management Service.

      Importante

      Puoi utilizzare solo le chiavi KMS disponibili nella stessa Regione AWS del bucket. La console Amazon S3 elenca solo le prime 100 chiavi KMS nella stessa Regione del bucket. Per utilizzare una chiave KMS non elencata, devi inserire l'ARN della chiave KMS. Se desideri utilizzare una chiave KMS di proprietà di un account diverso, è necessario innanzitutto disporre dell'autorizzazione necessaria per l'uso della chiave e quindi inserire l'ARN della chiave KMS. Per ulteriori informazioni sulle autorizzazioni tra account per le chiavi KMS, consulta Creazione di chiavi KMS utilizzabili da altri account nella Guida per gli sviluppatori di AWS Key Management Service. Per ulteriori informazioni su SSE-KMS, consulta Specificare la crittografia lato server con AWS KMS (SSE-KMS).

      Quando si utilizza AWS KMS key per la crittografia lato server in Amazon S3, è necessario scegliere una chiave KMS di crittografia simmetrica. Amazon S3 supporta solo chiavi KMS di crittografia simmetriche e non chiavi KMS asimmetriche. Per ulteriori informazioni, consulta Identificazione delle chiavi KMS simmetriche e asimmetriche nella Guida per gli sviluppatori di AWS Key Management Service.

      Per ulteriori informazioni sulla creazione di AWS KMS key, consulta Creazione di chiavi nella Guida per gli sviluppatori AWS Key Management Service. Per ulteriori informazioni sull'uso di AWS KMS con Amazon S3, consulta Utilizzo della crittografia lato server con chiavi AWS KMS (SSE-KMS).

    2. Quando configuri il bucket per utilizzare la crittografia predefinita con SSE-KMS puoi anche abilitare le chiavi bucket S3. Le chiavi bucket S3 contengono il costo della crittografia riducendo il traffico delle richieste da Amazon S3 a AWS KMS. Per ulteriori informazioni, consulta Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3.

      Per utilizzare le chiavi dei bucket S3, in Chiave bucket, scegli Abilita.

  16. (Facoltativo) Se si desidera abilitare S3 Object Lock, procedi come segue:

    1. Scegli Impostazioni avanzate.

      Importante

      Abilitando Object Lock si abilita anche il controllo delle versioni per il 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 attivare Object Lock, scegli Abilita, leggi l'avviso che appare e confermalo.

    Per ulteriori informazioni, consulta Blocco di oggetti con Object Lock.

    Nota

    Per creare un bucket abilitato per Object Lock, devi disporre delle seguenti autorizzazioni: s3:CreateBucket, s3:PutBucketVersioning e s3:PutBucketObjectLockConfiguration.

  17. Scegli 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 prassi ottimale, si dovrebbe creare il client e il bucket nello stesso Regione AWS. Se non si specifica una regione quando si crea un client o un bucket, Amazon S3 utilizza la regione predefinita, (Stati Uniti orientali (Virginia settentrionale)). Se vuoi limitare la creazione del bucket a una Regione AWS specifica, utilizza la chiave di condizione LocationConstraint.

Per creare un client che acceda a un endpoint dual-stack, è necessario specificare Regione AWS. Per ulteriori informazioni, consulta Utilizzo degli endpoint dual-stack Amazon S3 nella documentazione di riferimento delle API Amazon S3. Per un elenco di Regioni AWS, consulta Regioni ed endpoint in Riferimenti generali di AWS.

Quando si crea un client, la Regione viene mappata sull'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.

Questi esempi di codice dell'SDK AWS eseguono le seguenti operazioni:

  • Creare un client specificando esplicitamente unaRegione AWS: nell'esempio, il client utilizza l'endpoint s3.us-west-2.amazonaws.com per comunicare con Amazon S3. È possibile specificare qualsiasi Regione AWS. Per un elenco di Regioni AWS, consulta Regioni ed endpoint nel Riferimento AWS generale.

  • 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 di informazioni sulla posizione del bucket - Amazon S3 memorizza le informazioni sulla posizione del bucket nella sotto-risorsa della posizione associata al bucket.

Java
Esempio Creazione di un bucket che utilizza un identificatore univoco globale (GUID) nel nome del bucket

L'esempio seguente mostra come creare un bucket con un GUID alla fine del nome del bucket nella Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1;) tramite AWS SDK for Java. Per informazioni sugli altri SDK AWS consulta Strumenti per costruire su AWS.

import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.CreateBucketRequest; import java.util.List; import java.util.UUID; public class CreateBucketWithUUID { public static void main(String[] args) { final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build(); String bucketName = "amzn-s3-demo-bucket" + UUID.randomUUID().toString().replace("-", ""); CreateBucketRequest createRequest = new CreateBucketRequest(bucketName); System.out.println(bucketName); s3.createBucket(createRequest); } }
Esempio Creazione di un bucket

Questo esempio mostra come creare un bucket Amazon S3 tramite AWS SDK for Java. Per istruzioni su come creare e testare un campione funzionante, consulta Nozioni di base nella Guida per gli sviluppatori di AWS SDK for Java.

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 campione funzionante, consulta SDK AWS per riferimento API .NET versione 3.

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 campione funzionante, consulta SDK AWS per 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 its 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 # Example usage: def run_demo region = "us-west-2" wrapper = BucketCreateWrapper.new(Aws::S3::Bucket.new("amzn-s3-demo-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__

Il seguente esempio di AWS CLI crea un bucket nella Regione Stati Uniti occidentali (California settentrionale) (us-west-1) con un nome di bucket di esempio che utilizza un identificatore univoco globale (GUID).

aws s3api create-bucket \ --bucket amzn-s3-demo-bucket1$(uuidgen | tr -d - | tr '[:upper:]' '[:lower:]' ) \ --region us-west-1 \ --create-bucket-configuration LocationConstraint=us-west-1

Per ulteriori informazioni, consulta create-bucket nel Riferimento ai comandi AWS CLI.