Crear un bucket - Amazon Simple Storage Service

Crear un bucket

Para cargar los datos en Amazon S3, primero debe crear un bucket de Amazon S3 en una de las Regiones de AWS. Al crear un bucket, debe elegir un nombre de bucket y una región. Si lo desea, puede elegir otras opciones de administración de almacenamiento para el bucket. Después de crear un bucket, no se puede cambiar su nombre ni su región. Para obtener información acerca de la nomenclatura de los buckets, consulte Reglas de nomenclatura de buckets.

La Cuenta de AWS que crea el bucket es propietaria de este. Puede cargar la cantidad de objetos que desee en el bucket. De forma predeterminada, puede crear hasta 100 buckets en cada una de sus Cuentas de AWS. Si necesita más buckets, puede presentar una solicitud de aumento del límite del servicio para aumentar el límite de buckets de la cuenta hasta un máximo de 1000 buckets. Para obtener información acerca de cómo enviar un aumento del límite de buckets, consulte el tema sobre las cuotas de Servicio de AWS en la Referencia general de AWS. En un bucket, puede almacenar la cantidad de objetos que desee.

S3 Object Ownership es una configuración de bucket de Amazon S3 que puede usar para controlar la propiedad de los objetos que se cargan en el bucket y para activar o desactivar las listas de control de acceso (ACL). De forma predeterminada, la propiedad de objetos se establece en la configuración impuesta por el propietario del bucket. Además, todas las ACL están deshabilitadas. Cuando las ACL están desactivadas, el propietario del bucket posee todos los objetos del bucket y administra el acceso a los datos de forma exclusiva mediante políticas.

Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.

El cifrado del servidor con claves administradas de Amazon S3 (SSE-S3) es el nivel básico de la configuración de cifrado para cada bucket de Amazon S3. Todos los objetos nuevos cargados en un bucket de S3 se cifran de forma automática con SSE-S3 como el nivel básico de la configuración de cifrado. Si desea utilizar un tipo de cifrado predeterminado distintos, también puede especificar el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS) o claves proporcionadas por el cliente (SSE-C) para cifrar los datos. Para obtener más información, consulte Establecer el comportamiento del cifrado predeterminado del lado del servidor para los buckets de Amazon S3.

Para crear un bucket, puede utilizar la consola de Amazon S3, las API de Amazon S3, la AWS CLI o los SDK de AWS. Para obtener más información acerca de los permisos necesarios para crear un bucket, consulte CreateBucket en la Referencia de la API de Amazon Simple Storage Service.

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Instancias.

  3. Elija Crear bucket.

    Se abrirá la página Crear bucket.

  4. En Nombre del bucket, escriba un nombre para el bucket.

    El nombre del bucket debe:

    • Ser exclusivo dentro de una partición. Una partición es una agrupación de regiones. AWS actualmente tiene tres particiones: aws (regiones estándar), aws-cn (regiones de China) y aws-us-gov (AWS GovCloud (US) Regions).

    • Tener entre 3 y 63 caracteres.

    • Consistir únicamente de letras minúsculas, números, puntos (.) y guiones (-). Para obtener una mejor compatibilidad, se recomienda evitar el uso de puntos (.) en los nombres de los buckets, excepto para los buckets que se utilizan únicamente para el alojamiento estático de sitios web.

    • Comenzar y terminar por un número o una letra.

    Una vez que haya creado el bucket, no podrá modificar su nombre. Para obtener más información sobre la nomenclatura de los buckets, consulte Reglas de nomenclatura de buckets.

    importante

    Evite incluir información confidencial, como números de cuenta, en el nombre del bucket. El nombre del bucket será visible en las URL que señalan a los objetos almacenados en él.

  5. En Región, elija la Región de AWS en la que desea que se encuentre el bucket.

    Puede seleccionar una región cercana para minimizar la latencia y los costos, así como para satisfacer los requisitos normativos. Los objetos almacenados en una región nunca abandonarán esa región salvo que usted los transfiera de forma específica a otra. Para una lista de Regiones de AWS de Amazon S3, consulte Puntos de conexión de Servicio de AWS en la Referencia general de Amazon Web Services.

  6. En Propiedad de objetos, para desactivar o habilitar las ACL y controlar la propiedad de los objetos cargados en el bucket, elija una de las siguientes configuraciones:

    ACL desactivadas
    • Propietario del bucket obligatorio (predeterminado): las ACL están desactivadas y el propietario del bucket tiene automáticamente la propiedad y el control total sobre cada objeto del bucket. Las ACL ya no afectan a los permisos de acceso de los datos del bucket de S3. El bucket utiliza políticas exclusivamente para definir el control de acceso.

      Las ACL están desactivadas de forma predeterminada. La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Le recomendamos que mantenga las ACL desactivadas, excepto en circunstancias inusuales en las que necesite controlar el acceso a cada objeto de manera individual. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.

    ACL habilitadas
    • Propietario del bucket preferido: el propietario del bucket tiene la propiedad y el control total sobre los nuevos objetos que otras cuentas escriben en el bucket con la ACL predefinida bucket-owner-full-control.

      Si aplica la configuración de propietario del bucket preferido para requerir que todas las cargas de Amazon S3 incluyan la ACL predefinida bucket-owner-full-control, puede agregar una política de bucket que solo permita cargas de objetos que utilicen esta ACL.

    • Escritor del objeto: la Cuenta de AWS que carga un objeto es propietaria del objeto, tiene control total sobre él y puede conceder a otros usuarios acceso a él a través de ACL.

    nota

    La configuración predeterminada es Aplicada al propietario del bucket. Para aplicar la configuración predeterminada y mantener las ACL deshabilitadas, solo se necesita el permiso s3:CreateBucket. Para habilitar las ACL, debe tener el permiso s3:PutBucketOwnershipControls.

  7. En Configuración de bloqueo de acceso público para este bucket, elija la configuración Bloquear acceso público que desee aplicar al bucket.

    De forma predeterminada, las cuatro configuraciones de Bloqueo de acceso público estarán activas. Le recomendamos que deje todas las configuraciones activadas a menos que sepa que necesita desactivar una o varias para su caso de uso específico. Para obtener más información acerca del bloqueo del acceso público, consulte Bloquear el acceso público a su almacenamiento de Amazon S3.

    nota

    Para habilitar todas las configuraciones de Bloqueo de acceso público, solo se requiere el permiso s3:CreateBucket. Para desactivar cualquier configuración de Bloqueo de acceso público, debe tener el permiso s3:PutBucketPublicAccessBlock.

  8. (Opcional) En Control de versiones de buckets, puede elegir si desea mantener variantes de objetos en su bucket. Para obtener más información sobre el control de versiones, consulte Usar el control de versiones en buckets de S3.

    Para deshabilitar o habilitar el control de versiones en su bucket, elija Disable (Deshabilitar) o Enable (Habilitar).

  9. (Opcional) En Tags (Etiquetas), puede elegir añadir etiquetas a su bucket. Las etiquetas son pares clave-valor que se utilizan para categorizar el almacenamiento de información.

    Para agregar una etiqueta de bucket, introduzca un valor en Clave y opcionalmente otro en Valor y elija Añadir etiqueta.

  10. En Cifrado predeterminado, elija Editar.

  11. Para configurar el cifrado predeterminado, en Tipo de cifrado, elija una de las siguientes opciones:

    • Clave administrada de Amazon S3 (SSE-S3)

    • Clave de AWS Key Management Service (SSE-KMS)

      importante

      Si utiliza la opción de SSE-KMS para la configuración de cifrado predeterminado, se le aplicará la cuota de solicitudes por segundo (RPS) de AWS KMS. Para obtener más información acerca de las cuotas de AWS KMS y cómo solicitar un aumento de cuota, consulte Cuotas en la Guía para desarrolladores de AWS Key Management Service.

    Los buckets y los objetos nuevos se cifran mediante el cifrado del lado del servidor con una clave administrada de Amazon S3 como nivel básico de configuración de cifrado. Para obtener más información acerca del cifrado predeterminado, consulte Establecer el comportamiento del cifrado predeterminado del lado del servidor para los buckets de Amazon S3.

    Para obtener más información sobre el uso del cifrado del lado del servidor de Amazon S3 para cifrar los datos, consulte Uso del cifrado del servidor con claves administradas por Amazon S3 (SSE-S3).

  12. Si ha elegido la clave de AWS Key Management Service (SSE-KMS), haga lo siguiente:

    1. En Clave de AWS KMS, especifique su clave de KMS de una de las siguientes maneras:

      • Para seleccionar de una lista de claves de KMS disponibles, marque Elija entre sus claves de AWS KMS keys y seleccione su clave de KMS de la lista de claves disponibles.

        En esta lista aparecen tanto la Clave administrada de AWS (aws/s3) como las claves administradas por el cliente. Para obtener más información acerca de las claves administradas por el cliente, consulte Claves de cliente y claves de AWS en la Guía para desarrolladores de AWS Key Management Service.

      • Para introducir el ARN de la clave de KMS, elija Introducir el ARN de la AWS KMS key e introduzca el ARN de la clave de KMS en el campo que aparece.

      • Para crear una nueva clave administrada por el cliente en la consola de AWS KMS, elija Crear una clave de KMS.

        Para obtener más información acerca de cómo crear una AWS KMS key, consulte Creación de claves en la AWS Key Management Service Guía para desarrolladores.

      importante

      Solo puede utilizar las claves de KMS que estén disponibles en la misma Región de AWS del bucket. La consola de Amazon S3 solo muestra las primeras 100 claves de KMS de la misma región del bucket. Para utilizar una clave de KMS que no aparezca en la lista, debe introducir el ARN de la clave de KMS. Si desea utilizar una clave de KMS propiedad de una cuenta de diferente, primero debe tener permiso para utilizar la clave y, después, debe introducir el ARN de la clave de KMS. Para obtener más información sobre los permisos entre cuentas para las claves de KMS, consulte Crear claves de KMS que otras cuentas puedan utilizar en la Guía para desarrolladores de AWS Key Management Service. Para obtener más información sobre SSE-KMS, consulte Especificación del cifrado del lado del servidor con AWS KMS (SSE-KMS).

      Cuando utilice una AWS KMS key para el cifrado en el lado del servidor en Amazon S3, debe elegir una clave de cifrado de KMS simétrica. Amazon S3 admite solo claves de KMS de cifrado simétricas y no claves de KMS asimétricas. Para obtener más información, consulte Identificación de claves de KMS simétricas y asimétricas en la Guía para desarrolladores de AWS Key Management Service.

      Para obtener más información acerca de cómo crear una AWS KMS key, consulte Creación de claves en la AWS Key Management Service Guía para desarrolladores. Para obtener más información acerca del uso de AWS KMS con Amazon S3, consulte Uso del cifrado del servidor con claves de AWS KMS (SSE-KMS).

    2. Cuando configure el bucket para que use el cifrado predeterminado con SSE-KMS, también puede habilitar las claves de bucket de S3. Las claves de bucket de S3 reducen el costo del cifrado al reducir el tráfico de solicitudes de Amazon S3 a AWS KMS. Para obtener más información, consulte Reducción del costo de SSE-KMS con las claves de bucket de Amazon S3.

      Para utilizar las claves de bucket de S3, en Clave de bucket, seleccione Habilitar.

  13. (Opcional) Si desea habilitar el bloqueo de objetos en S3, haga lo siguiente:

    1. Seleccione Advanced settings (Ajustes avanzados).

      importante

      Al habilitar Bloqueo de objetos, también se habilita el control de versiones para el bucket. Después de habilitar, debe configurar la retención predeterminada de Object Lock y la configuración de retención legal para evitar que los nuevos objetos se eliminen o se sobrescriban.

    2. Si desea habilitar el bloqueo de objetos, elija Enable (Habilitar), lea la advertencia que aparece y acéptela.

    Para obtener más información, consulte Usar Bloqueo de objetos de S3.

    nota

    Para crear un bucket con Bloqueo de objetos, debe tener los siguientes permisos: s3:CreateBucket, s3:PutBucketVersioning y s3:PutBucketObjectLockConfiguration.

  14. Elija Crear bucket.

Si usa los SDK de AWS con el objeto de crear un bucket, debe crear un cliente y, luego, utilizar el cliente a fin de enviar una solicitud para crear un bucket. Como práctica recomendada, debe crear el cliente y el bucket en la misma Región de AWS. Si no especifica una región al crear un cliente o un bucket, Amazon S3 utiliza la región predeterminada, Este de EE. UU. (Norte de Virginia). Si desea restringir la creación del bucket a una Región de AWS específica, utilice la clave de condición LocationConstraint.

Para crear un cliente con el objeto de obtener acceso a un punto de conexión de doble pila, debe especificar una Región de AWS. Para obtener más información, consulte Puntos de enlace de doble pila. Para ver una lista de las Regiones de AWS disponibles, consulte Regiones y puntos de conexión en la Referencia general de AWS.

Al crear un cliente, la región se asigna al punto de conexión específico de la región. El cliente utiliza este punto de conexión para comunicarse con Amazon S3: s3.region.amazonaws.com. Si su región se lanzó después del 20 de marzo de 2019, su cliente y el bucket deben estar en la misma región. Sin embargo, puede utilizar un cliente en la región EE. UU. Este (Norte de Virginia) para crear un bucket en cualquier región que se haya lanzado antes del 20 de marzo de 2019. Para obtener más información, consulte Puntos de conexión heredados.

Con estos ejemplos de códigos de los SDK de AWS, se llevan a cabo las siguientes tareas:

  • Crear un cliente mediante la especificación explícita de una Región de AWS: en el ejemplo, el cliente utiliza el punto de conexión s3.us-west-2.amazonaws.com para comunicarse con Amazon S3. Puede especificar cualquier Región de AWS. Para ver una lista de las Regiones de AWS, consulte Regiones y puntos de enlace en la Referencia general de AWS.

  • Enviar una solicitud de creación de bucket mediante la especificación de solo un nombre de bucket: el cliente envía una solicitud a Amazon S3 para crear el bucket en la región donde usted creó un cliente.

  • Recuperar la información acerca de la ubicación del bucket: Amazon S3 almacena información de la ubicación del bucket en el subrecurso ubicación asociado con el bucket.

Java

En este ejemplo, se muestra cómo crear un bucket de Amazon S3 con AWS SDK for Java. Para obtener instrucciones sobre la creación y comprobación de una muestra funcional, consulte Prueba de los ejemplos de código de Java de 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

Para obtener información acerca de cómo crear y probar una muestra funcional, consulte Ejecución de ejemplos de código .NET de 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

Para obtener información acerca de cómo crear y probar una muestra funcional, consulte Uso de la versión 3 de AWS SDK for Ruby.

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("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__

También puede usar AWS Command Line Interface (AWS CLI) para crear un bucket de S3. Para obtener más información, consulte create-bucket en la Referencia de comandos de la AWS CLI.

Para obtener información sobre AWS CLI, consulte ¿Qué es AWS Command Line Interface? en la Guía del usuario de AWS Command Line Interface.