Criação de um bucket - Amazon Simple Storage Service

Criação de um bucket

Para fazer upload de seus dados para o Amazon S3, você deve primeiro criar um bucket do Amazon S3 em uma das Regiões da AWS. Ao criar um bucket, você deve escolher um nome de bucket e Região. Opcionalmente, você pode escolher outras opções de gerenciamento de armazenamento para o bucket. Assim que você cria um bucket, não pode mais alterar o respectivo nome ou região. Para obter informações sobre nomeação de buckets, consulte Regras de nomeação de bucket.

A Conta da AWS que cria o bucket é a proprietária do bucket. Você pode fazer upload de um número ilimitado de objetos para o bucket. Por padrão, você pode criar até 100 buckets em cada Contas da AWS. Se precisar de mais buckets, você poderá aumentar o limite de bucket da conta para um máximo de 1.000 buckets enviando um aumento de limite de serviço. Para saber como enviar um aumento de limite de bucket, consulte Cotas da AWS service (Serviço da AWS) na Referência geral da AWS. Você pode armazenar qualquer número de objetos no bucket.

A Propriedade de objeto do S3 é uma configuração no nível do bucket do Amazon S3 que você pode usar para controlar a propriedade de objetos carregados no bucket e para desabilitar ou habilitar as listas de controle de acesso (ACLs). Por padrão, a Propriedade de Objetos está definida com a configuração Imposto pelo proprietário do bucket e todas as ACLs estão desabilitadas. Com as ACLs desabilitadas, o proprietário do bucket possui cada objeto no bucket e gerencia o acesso aos dados exclusivamente usando políticas.

Para obter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

A criptografia no lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) é o nível básico de configuração de criptografia para cada bucket no Amazon S3. Todos os novos objetos carregados em um bucket do S3 são automaticamente criptografados com o SSE-S3 como nível básico da configuração de criptografia. Se quiser usar um tipo diferente de criptografia padrão, você também poderá especificar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) ou chaves fornecidas pelo cliente (SSE-C) a fim de criptografar seus dados. Para obter mais informações, consulte Definir o comportamento padrão da criptografia para os buckets do Amazon S3.

Você pode usar o console do Amazon S3, as APIs do Amazon S3, a AWS CLI ou os AWS SDKs para criar um bucket. Para obter mais informações sobre permissões necessárias para criar um bucket, consulte CreateBucket na Referência da API do Amazon Simple Storage Service.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets.

  3. Selecione Create bucket (Criar bucket).

    A página Create bucket (Criar bucket) é aberta.

  4. Para Nome do bucket, insira um nome para o bucket.

    O nome do bucket deve:

    • Seja exclusivo em uma partição. Uma partição é um agrupamento de regiões. Atualmente, a AWS tem três partições: aws (regiões padrão), aws-cn (regiões da China) e aws-us-gov (AWS GovCloud (US) Regions).

    • Ter entre 3 e 63 caracteres.

    • Consistem apenas em letras minúsculas, números, pontos (.) e hífens (-). Para obter a melhor compatibilidade, recomendamos evitar o uso de pontos (.) em nomes de buckets, exceto em buckets usados apenas para hospedagem de sites estáticos.

    • Inicie e termine com uma letra ou um número.

    Depois de criado o bucket, não é possível mudar o nome. Para obter mais informações sobre como nomear buckets, consulte Regras de nomeação de bucket.

    Importante

    Evite incluir informações confidenciais, como números de conta, no nome do bucket. O nome do bucket é visível nos URLs que apontam para os objetos no bucket.

  5. Em Region (Região), escolha a Região da AWS onde deseja que o bucket resida.

    Para reduzir a latência e os custos e atender aos requisitos regulatórios, selecione uma região perto de você. Os objetos armazenados em uma região nunca saem dessa região, a menos que você os transfira para outra região. Para obter uma lista de Regiões da AWS do Amazon S3, consulte Endpoints de AWS service (Serviço da AWS) no Referência geral da Amazon Web Services.

  6. Em Object Ownership, para desabilitar ou habilitar ACLs e controlar a propriedade de objetos carregados em seu bucket, escolha uma das seguintes configurações:

    ACLs desabilitadas
    • Imposto pelo proprietário do bucket (padrão): as ACLs são desabilitadas e o proprietário do bucket automaticamente tem a propriedade e o controle total sobre todos os objetos do bucket. As ACLs não afetam mais as permissões de acesso aos dados no bucket do S3. O bucket usa políticas exclusivamente para definir o controle de acesso.

      Por padrão, as ACLs estão desabilitadas. A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Recomendamos manter as ACLs desabilitadas, exceto em circunstâncias incomuns em que seja necessário controlar o acesso para cada objeto individualmente. Para obter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

    ACLs habilitadas
    • Bucket owner preferred (Preferencial do proprietário do bucket): o proprietário do bucket tem a propriedade e o controle total sobre novos objetos que outras contas gravam no bucket com a ACL bucket-owner-full-control pré-configurada.

      Se você aplicar a configuração Proprietário do bucket preferido para exigir que todos os uploads do Amazon S3 incluam a ACL bucket-owner-full-control pré-configurada, será possível adicionar uma política de bucket que só permita uploads de objetos que usem essa ACL.

    • Object writer (Gravador de objetos): a Conta da AWS que carrega um objeto é a proprietária do objeto, tem controle total sobre ele e pode conceder acesso a outros usuários por meio de ACLs.

    nota

    A configuração padrão é Imposto pelo proprietário do Bucket. Para aplicar a configuração padrão e manter as ACLs desabilitadas, somente a permissão s3:CreateBucket é necessária. Para habilitar ACLs, é necessário ter a permissão s3:PutBucketOwnershipControls.

  7. Em Configurações de bloqueio de acesso público para este bucket, selecione as configurações de bloqueio de acesso público que deseja aplicar ao bucket.

    Por padrão, todas as quatro configurações do Bloqueio de Acesso Público são habilitadas. Recomendamos que você mantenha todas as configurações habilitadas, a menos que precise desativar uma ou mais delas para seu caso de uso específico. Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3.

    nota

    Para habilitar todas as configurações do Bloqueio de Acesso Público, somente a permissão s3:CreateBucket é necessária. Para desabilitar qualquer configuração do Bloqueio de Acesso Público, é necessário ter a permissão s3:PutBucketPublicAccessBlock.

  8. (Opcional) Em Bucket Versioning (Versionamento do bucket), você pode escolher se deseja manter variantes de objetos no bucket. Para obter mais informações sobre versionamento, consulte Usando o versionamento em buckets do S3.

    Para desabilitar ou habilitar o versionamento em seu bucket, escolha Disable (Desabilitar) ou Enable (Habilitar).

  9. (Opcional) Em Tags (Etiquetas), você pode optar por adicionar etiquetas ao seu bucket. As etiquetas são pares de chave-valor usados para categorizar o armazenamento.

    Para adicionar uma etiqueta, escolha Add Tag (Adicionar etiqueta) e insira uma chave e um valor para cada etiqueta.

  10. Em Default encryption (Criptografia padrão), escolha Edit (Editar).

  11. Para configurar a criptografia padrão, em Tipo de criptografia, selecione uma das seguintes opções:

    • Chave gerenciada pelo Amazon S3 (SSE-S3)

    • Chave do AWS Key Management Service (SSE-KMS)

      Importante

      Se você usar a opção SSE-KMS em sua configuração de criptografia padrão, estará sujeito à cota de solicitações por segundo (RPS) do AWS KMS. Para obter mais informações sobre as cotas do AWS KMS e como solicitar um aumento de cota, consulte Cotas no Guia do desenvolvedor do AWS Key Management Service.

    Os buckets e novos objetos são criptografados com criptografia do lado do servidor com uma chave gerenciada do Amazon S3 como nível básico da configuração de criptografia. Para obter mais informações sobre criptografia padrão, consulte Definir o comportamento padrão da criptografia para os buckets do Amazon S3.

    Para obter mais informações sobre como usar a criptografia no lado do servidor do Amazon S3 para criptografar seus dados, consulte Usar a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).

  12. Se você selecionou Chave do AWS Key Management Service (SSE-KMS), faça o seguinte:

    1. Em Chave do AWS KMS, especifique sua chave do KMS de uma das seguintes maneiras:

      • Para escolher entre uma lista de chaves do KMS disponíveis, selecione Escolher entre suas AWS KMS keys e escolha sua chave do KMS na lista de chaves disponíveis.

        As chaves Chave gerenciada pela AWS (aws/s3) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte Chaves de clientes e chaves da AWS no Guia do desenvolvedor do AWS Key Management Service.

      • Para inserir o ARN da chave do KMS, escolha Inserir ARN da AWS KMS key e insira o ARN da chave do KMS no campo exibido.

      • Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione Criar uma chave do KMS.

        Para ter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.

      Importante

      Você só pode usar chaves do KMS disponíveis na mesma Região da AWS que o bucket. O console do Amazon S3 lista somente as primeiras 100 chaves do KMS na mesma região que o bucket. Para usar uma chave do KMS que não esteja listada, você deve inserir o ARN da chave do KMS. Se quiser usar uma chave do KMS que seja de propriedade de outra conta, primeiro você deverá ter permissão para usar a chave e, depois, inserir o ARN da chave do KMS. Para obter mais informações sobre permissões entre contas para chaves do KMS, consulte Criar chaves do KMS que outras contas podem usar no Guia do desenvolvedor do AWS Key Management Service. Para obter mais informações sobre a SSE-KMS, consulte Especificando criptografia no lado do servidor com o AWS KMS (SSE-KMS).

      Ao usar uma AWS KMS key para criptografia no lado do servidor no Amazon S3, você deve escolher uma chave de criptografia do KMS simétrica. O Amazon S3 só é compatível com chaves do KMS de criptografia simétrica, e não com chaves assimétricas do KMS. Para ter mais informações, consulte Identificar chaves do KMS simétricas e assimétricas no Guia do desenvolvedor do AWS Key Management Service.

      Para obter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service. Para obter mais informações sobre como usar o AWS KMS com o Amazon S3, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).

    2. Quando você configura seu bucket para usar a criptografia padrão com o SSE-KMS, também pode habilitar as chaves de bucket do S3. As chaves de bucket do S3 diminuem o custo de criptografia reduzindo o tráfego de solicitações do Amazon S3 para o AWS KMS. Para obter mais informações, consulte Redução do custo do SSE-KMS com chaves de bucket do Amazon S3.

      Para usar Chaves de bucket do S3, em Bucket Key (Chave de bucket), escolha Enable (Habilitar).

  13. (Opcional) Se você quiser habilitar o Bloqueio de Objetos do S3, faça o seguinte:

    1. Selecione Advanced settings (Configurações avançadas).

      Importante

      Você só pode habilitar o bloqueio de objetos para um bucket ao criá-lo, e não poderá desabilitar posteriormente. A ativação do bloqueio de objetos também permite o versionamento para o bucket. Depois de habilitar, é necessário definir as configurações de retenção padrão e retenção legal do bloqueio de objetos para proteger novos objetos contra exclusão ou substituição.

    2. Se quiser habilitar o bloqueio de objetos, escolha Enable (Habilitar), leia o aviso que aparece e confirme-o.

    Para obter mais informações, consulte Usar o bloqueio de objetos do S3.

    nota

    Para criar um bucket com bloqueio de objetos habilitado, você deve ter as seguintes permissões: s3:CreateBucket, s3:PutBucketVersioning e s3:PutBucketObjectLockConfiguration.

  14. Selecione Create bucket (Criar bucket).

Ao usar os AWS SDKs para criar um bucket, você deve criar um cliente e então usá-lo para enviar uma solicitação para criar um bucket. Como prática recomendada, crie o cliente e o bucket na mesma Região da AWS. Se você não especificar uma região ao criar um cliente ou um bucket, o Amazon S3 usará a região padrão Leste dos EUA (Norte da Virgínia). Se você quiser restringir a criação do bucket a determinada Região da AWS, use a chave de condição LocationConstraint.

Para criar um cliente a fim de acessar um endpoint de pilha dupla, é necessário especificar uma Região da AWS. Para obter mais informações, consulte Endpoints de pilha dupla. Para obter uma lista de Regiões da AWS disponíveis, consulte Regiões e endpoints na Referência geral da AWS.

Ao criar um cliente, a região mapeia para o endpoint específico da região. O cliente usa esse endpoint para se comunicar com o Amazon S3: s3.region.amazonaws.com. Se a sua região foi lançada após 20 de março de 2019,, seu cliente e bucket devem estar na mesma região. No entanto, é possível usar um cliente na região Leste dos EUA (Norte da Virgínia) para criar um bucket em qualquer região iniciada antes de 20 de março de 2019. Para obter mais informações, consulte Endpoints herdados.

Os exemplos de código do AWS SDK executam as seguintes tarefas:

  • Crie um cliente especificando explicitamente uma região da Região da AWS: no exemplo, o cliente usa o endpoint s3.us-west-2.amazonaws.com para se comunicar com o Amazon S3. É possível especificar qualquer Região da AWS. Para obter uma lista de Regiões da AWS, consulte Regiões e endpoints na Referência geral da AWS.

  • Envie uma solicitação de bucket de criação especificando apenas um nome de bucket: o cliente envia uma solicitação ao Amazon S3 para criar o bucket na região onde você criou um cliente.

  • Recupere as informações sobre a localização do bucket: o Amazon S3 armazena as informações de localização do bucket no sub-recurso location que está associado ao bucket.

Java

Este exemplo mostra como criar um bucket do Amazon S3 usando o AWS SDK for Java. Para obter instruções sobre criar e testar um exemplo funcional, consulte Testar exemplos de código Java no 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 obter informações sobre como criar e testar um exemplo funcional, consulte Executar os exemplos de código do Amazon S3 .NET.

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 obter informações sobre como criar e testar um exemplo funcional, consulte Usar o AWS SDK for Ruby - versão 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 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__

Você também pode usar a AWS Command Line Interface (AWS CLI) para criar um bucket do S3. Para obter mais informações, consulte create-bucket na Referência de comandos da AWS CLI.

Para obter informações sobre o AWS CLI, consulte O que é AWS Command Line Interface? no Guia do usuário do AWS Command Line Interface.