Trabalho com buckets do Amazon S3 - Amazon Simple Storage Service

Trabalho com buckets do Amazon S3

Para fazer upload dos dados (fotos, vídeos, documentos etc.) ao Amazon S3, você primeiro cria um bucket do S3 em uma das regiões da AWS. Você pode fazer upload de um número ilimitado de objetos para o bucket.

Em termos de implementação, os buckets e objetos são recursos, e o Amazon S3 fornece APIs para você gerenciá-los. Por exemplo, você pode criar um bucket e fazer upload de objetos usando a API do Amazon S3. Você também pode usar o console do Amazon S3 para executar essas operações. O console usa as APIs do Amazon S3 para enviar solicitações para o Amazon S3.

Esta seção explica como trabalhar com buckets. Para obter mais informações sobre como trabalhar com objetos, consulte Trabalho com objetos do Amazon S3.

Um nome de bucket do Amazon S3 é globalmente exclusivo, e o namespace é compartilhado por todas as contas da AWS. Isso significa que, após a criação de um bucket, o nome dele não pode ser usado por outra conta da AWS em nenhuma região da AWS até que ele seja excluído. Você não pode depender de convenções de nomenclatura de buckets específicos para fins de disponibilidade ou verificação de segurança. Para ver as diretrizes de nomeação de bucket, consulte Restrições e limitações do bucket.

O Amazon S3 cria buckets na região que você especifica. Para otimizar a latência, minimizar os custos ou atender a requisitos regulatórios, escolha qualquer região da AWS geograficamente próxima a você. Por exemplo, se você residir na Europa, poderá considerar vantajoso criar buckets nas regiões Europa (Irlanda) ou Europa (Frankfurt). Para obter uma lista de regiões do Amazon S3, consulte Regiões e endpoints na Referência geral da AWS.

nota

Os objetos pertencentes a um bucket criado em uma região da AWS específica jamais saem dela, a menos que você os transfira explicitamente para outra região. Por exemplo, os objetos que são armazenados na região Europa (Irlanda) nunca saem dela.

Criação de um bucket

O Amazon S3 fornece APIs para criar e gerenciar buckets. Por padrão, você pode criar até 100 buckets em cada conta 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 Limites de serviço da AWS na Referência geral da AWS. Você pode armazenar qualquer número de objetos no bucket.

Quando você cria um bucket, fornece um nome e a região da AWS onde deseja criar o bucket. Para obter informações sobre nomeação de buckets, consulte Regras para nomeação de bucket.

Você pode usar qualquer um dos métodos listados abaixo para criar um bucket. Para ver exemplos, consulte Exemplos de criação de um bucket.

Console do Amazon S3

É possível criar um bucket no console do Amazon S3. Para obter mais informações, consulte Criar um bucket no Guia do usuário do console do Amazon Simple Storage Service.

API REST

Criar um bucket usando a API REST pode ser complicado porque exige que você grave o código para autenticar as solicitações. Para obter mais informações, consulte Bucket PUT no Amazon Simple Storage Service API Reference. Recomendamos que você use o Console de gerenciamento da AWS ou os AWS SDKs.

SDK da AWS

Ao usar os SDKs da AWS para criar um bucket, você primeiro cria um cliente e então usa o cliente para enviar uma solicitação para criar um bucket. 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). Você também pode especificar uma região específica. Para obter uma lista das regiões da AWS disponíveis, consulte Regiões e endpoints no AWS General Reference. Para obter mais informações sobre como habilitar ou desabilitar uma região da AWS, consulte Gerenciar regiões da AWS na AWS General Reference.

Como prática recomendada, crie o cliente e o bucket na mesma região. 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 legados.

Criar um cliente

Ao criar o cliente, é necessário especificar a região da AWS na qual criar o cliente. Se você não especificar uma região, o Amazon S3 criará o cliente na região Leste dos EUA (Norte da Virgínia) por padrão. 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.

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

Por exemplo, se você criar um cliente especificando a região eu-west-1, ele será mapeado para o seguinte endpoint específico da região:

s3.eu-west-1.amazonaws.com

Criação de um bucket

Se você não especificar uma região ao criar um bucket, o Amazon S3 criará o bucket na região Leste dos EUA (Norte da Virgínia). Portanto, se for necessário criar um bucket em uma região específica, você deverá especificar a região ao criar o bucket.

Os buckets criados após 30 de setembro de 2020 serão compatíveis apenas com pedidos de hosted-estilo. Os pedidos de caminho-estilo continuarão sendo compatíveis para buckets criados nessa data ou após ela. Para mais informações, consulte Plano de substituição do caminho do Amazon S3 – O resto da história.

Sobre permissões

Você pode usar suas credenciais raiz da conta da AWS para criar um bucket e executar qualquer outra operação do Amazon S3. Contudo, a AWS recomenda que você não use as credenciais raiz da sua conta da AWS para fazer solicitações tais como a criação de um bucket. Em vez disso, crie um usuário do IAM e conceda a esse usuário acesso total (por padrão, os usuários não têm nenhuma permissão). Esses usuários são conhecidos como usuários administradores. As credenciais do usuário administrador podem ser usadas em vez das credenciais raiz da conta para interagir com a AWS e executar tarefas, tais como criar um bucket, criar usuários e conceder permissões a eles.

Para obter mais informações, consulte Credenciais de conta raiz vs. credenciais do usuário do IAM na Referência geral da AWS e Melhores práticas do IAM no Guia do usuário do IAM.

A conta da AWS que cria um recurso é proprietária daquele recurso. Por exemplo, se você criar um usuário do IAM na sua conta da AWS e conceder permissões para esse usuário criar um bucket, o usuário poderá criar um bucket. Mas o usuário não é proprietário do bucket; a conta da AWS à qual o usuário pertence é proprietária do bucket. O usuário precisará de permissão adicional do proprietário do recurso para executar qualquer outra operação de bucket. Para obter mais informações sobre o gerenciamento de permissões para recursos do Amazon S3, consulte Identity and Access Management no Amazon S3.

Gerenciar o acesso público aos buckets

O acesso público aos buckets e objetos é concedido através de listas de controle de acesso (ACLs), políticas de bucket ou ambos. Para ajudar você a gerenciar o acesso público aos recursos do Amazon S3, o Amazon S3 oferece configurações de bloqueio de acesso público. Esses ajustes do Amazon S3 podem sobrepor políticas de bucket e ACLs para que você imponha limites uniformes no acesso público a esses recursos. Você pode aplicar as configurações de bloqueio de acesso público a buckets individualmente ou grupos de buckets na sua conta.

Para garantir que todos os seus buckets e objetos do Amazon S3 têm o acesso público bloqueado, recomendamos ativar as quatro configurações de bloqueio de acesso público na sua conta. Estas configurações bloqueiam o acesso público a todos os buckets atuais e futuros.

Antes de aplicar estas configurações, verifique se seus aplicativos funcionarão corretamente sem acesso público. Se você precisa de um certo nível de acesso público aos seus buckets ou objetos, por exemplo, para hospedar um site estático como descrito em Hospedar e um site estático no Amazon S3, é possível personalizar as configurações individualmente conforme cada caso. Para obter mais informações, consulte Usar o bloqueio de acesso público do Amazon S3.

Acessar um bucket

Você pode acessar seu bucket usando o console do Amazon S3. Usando a interface do console, você pode executar quase todas as operações de bucket sem ter que gravar nenhum código.

Se você acessar um bucket por programação, observe que o Amazon S3 oferece suporte à arquitetura RESTful na qual seus buckets e objetos são recursos, cada um com um URI de recurso que identifica exclusivamente o recurso.

O Amazon S3 oferece suporte aos URLs de estilo hospedado virtual e estilo de caminho para acessar um bucket. Como os buckets podem ser acessados usando URLs de estilo hospedado virtual e estilo de caminho, recomendamos que você crie buckets com nomes compatíveis com DNS. Para obter mais informações, consulte Restrições e limitações do bucket.

nota

As solicitações de estilo de caminho e estilo hospedadas virtuais usam a estrutura de endpoint S3 ponto Região (s3.Region), por exemplo, https://my-bucket.s3.us-west-2.amazonaws.com. No entanto, algumas regiões mais antigas do Amazon S3 também oferecem suporte a endpoints S3 traço Região s3-Region, por exemplo, https://my-bucket.s3-us-west-2.amazonaws.com. Se o bucket estiver em uma dessas regiões, você poderá ver endpoints s3-Region nos logs de acesso ao servidor ou nos logs do CloudTrail. Recomendamos que você não use essa estrutura de endpoint em suas solicitações.

Acesso ao estilo de hospedagem virtual

Em uma solicitação no estilo de hospedagem virtual, o nome do bucket faz parte do nome do domínio no URL.

Os URLs de estilo de hospedagem virtual do Amazon S3 seguem o formato abaixo.

https://bucket-name.s3.Region.amazonaws.com/key name

Neste exemplo, my-bucket é o nome do bucket, Oeste dos EUA (Oregon) é a região, e puppy.png é o nome da chave.

https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png

Para obter mais informações sobre acesso ao estilo de hospedagem virtual, consulte Solicitações no estilo de hospedagem virtual.

Acesso ao estilo de caminho

No Amazon S3, os URLs de estilo de caminho seguem o formato abaixo.

https://s3.Region.amazonaws.com/bucket-name/key name

Por exemplo, se você criar um bucket denominado mybucket na região Oeste dos EUA (Oregon) e quiser acessar o objeto puppy.jpg nele, use o seguinte URL de estilo de caminho:

https://s3.us-west-2.amazonaws.com/mybucket/puppy.jpg

Para obter mais informações, consulte Solicitações no estilo de caminho.

Importante

Os buckets criados após 30 de setembro de 2020 serão compatíveis apenas com pedidos de hosted-estilo. Os pedidos de caminho-estilo continuarão sendo compatíveis para buckets criados nessa data ou após ela. Para mais informações, consulte Plano de substituição do caminho do Amazon S3 – O resto da história.

Acessar um bucket do S3 por IPv6

O Amazon S3 tem um conjunto de endpoints de pilha dupla, que oferece suporte a solicitações para buckets do S3 via Protocolo de Internet versão 6 (IPv6) e IPv4. Para obter mais informações, consulte Fazer solicitações por meio do IPv6.

Acessar um bucket por um ponto de acesso do S3

Além de acessar um bucket diretamente, você pode acessar um bucket por meio de um ponto de acesso do S3. Para obter mais informações sobre pontos de acesso do S3, consulte Gerenciar o acesso a dados com pontos de acesso do Amazon S3 .

Os pontos de acesso do S3 oferecem suporte apenas ao endereçamento em estilo de host virtual. Para endereçar um bucket por meio de um ponto de acesso, use o formato:

https://AccessPointName-AccountId.s3-accesspoint.region.amazonaws.com.
nota
  • Se o nome do ponto de acesso incluir caracteres de traço (-), inclua os traços no URL e insira outro traço antes do ID da conta. Por exemplo, para usar um ponto de acesso chamado finance-docs, de propriedade da conta 123456789012 na Região us-west-2, o URL apropriado seria https://finance-docs-123456789012.s3-accesspoint.us-west-2.amazonaws.com.

  • Os pontos de acesso do S3 não suportam acesso por HTTP, apenas acesso seguro por HTTPS.

Acessar um bucket usando o S3://

Alguns serviços da AWS exigem especificar um bucket do Amazon S3 usando S3://bucket. O formato correto é exibido abaixo. Lembre-se de que, ao usar esse formato, o nome do bucket não inclui a região.

s3://bucket-name/key-name

Por exemplo, usando o bucket de exemplo descrito na seção de estilo de caminho anterior:

s3://mybucket/puppy.jpg

Opções de configuração do bucket

O Amazon S3 oferece suporte a várias opções para que você configure seu bucket. Por exemplo, você pode configurar seu bucket para hospedagem de sites, adicionar configuração para gerenciar o ciclo de vida dos objetos no bucket e configurar o bucket para registrar todo o acesso a ele. O Amazon S3 oferece suporte a sub-recursos para armazenar e gerenciar as informações de configuração do bucket. Você pode usar a API do Amazon S3 para criar e gerenciar esses sub-recursos. No entanto, você também pode usar o console ou os SDKs da AWS.

nota

Há também configurações no nível do objeto. Por exemplo, você pode configurar permissões no nível do objeto configurando uma lista de controle de acesso (ACL) específica para aquele objeto.

São chamados de sub-recursos porque existem no contexto de um bucket ou objeto específico. A tabela a seguir lista os sub-recursos que permitem gerenciar configurações específicas de bucket.

Sub-recurso Descrição

cors (compartilhamento de recurso de origem cruzada)

Você pode configurar seu bucket para autorizar solicitações de origem cruzada.

Para obter mais informações, consulte Habilitar compartilhamento de recursos de origem cruzada.

notificação de evento

Você pode permitir que seu bucket envie notificações de eventos do bucket especificado.

Para obter mais informações, consulte Configurar notificações de evento do Amazon S3.

ciclo de vida

Você pode definir regras de ciclo de vida para objetos em seu bucket que têm um ciclo de vida bem definido. Por exemplo, você pode definir uma regra para arquivar objetos um ano após a criação ou excluir um objeto 10 anos após a criação.

Para obter mais informações, consulte Gerenciamento de ciclo de vida de objetos.

location

Ao criar um bucket, especifique a região da AWS onde deseja que o Amazon S3 crie o bucket. O Amazon S3 armazena essas informações no sub-recurso do local e fornece uma API para recuperar essas informações.

registro em log

O registro em log permite que você rastreie solicitações de acesso ao seu bucket. Cada registro de log de acesso fornece detalhes sobre uma única solicitação de acesso, como solicitante, nome do bucket, horário da solicitação, ação da solicitação, status de resposta e código de erro, se houver. As informações de log de acesso podem ser úteis em auditorias de segurança e acesso. Isso também pode ajudar a conhecer sua base de clientes e entender sua fatura do Amazon S3.  

Para obter mais informações, consulte Registrar em log o acesso ao servidor do Amazon S3.

bloqueio de objetos

Para usar o S3 Bloqueio de objetos, é necessário habilitá-lo para um bucket. Também é possível configurar um modo e um período de retenção padrão que se aplicam a novos objetos colocados no bucket.

Para obter mais informações, consulte Configuração do bucket.

política e ACL (lista de controle de acesso)

Todos os seus recursos (como buckets e objetos) são privados por padrão. O Amazon S3 oferece suporte às opções de política de bucket e lista de controle de acesso (ACL) para conceder e gerenciar permissões no nível do bucket. O Amazon S3 armazena as informações de permissão nos sub-recursos política e acl.

Para obter mais informações, consulte Identity and Access Management no Amazon S3.

replicação

A replicação é a cópia assíncrona automática de objetos em buckets, em diferentes ou nas mesmas regiões da AWS. Para obter mais informações, consulte Replicação.

requestPayment

Por padrão, a conta da AWS que cria o bucket (o proprietário do bucket) paga pelos downloads do bucket. Usando esse sub-recurso, o proprietário do bucket pode especificar que a pessoa que solicita o download será cobrada pelo download. O Amazon S3 fornece uma API para gerenciar esse sub-recurso.

Para obter mais informações, consulte Buckets de pagamento pelo solicitante.

marcação

Você pode adicionar tags de alocação de custos ao seu bucket para categorizar e monitorar seus custos da AWS. O Amazon S3 fornece o sub-recurso marcação para armazenar e gerenciar tags em um bucket. Com o uso de tags em seu bucket, a AWS gera um relatório de alocação de custos com o uso e custos agregados por suas tags.

Para obter mais informações, consulte Relatórios de uso e faturamento dos buckets do S3.

aceleração de transferência

O Transfer Acceleration possibilita transferências de arquivos rápidas, fáceis e seguras em longas distâncias entre o seu cliente e um bucket do S3. O Transfer Acceleration aproveita os pontos de presença distribuídos globalmente do Amazon CloudFront.

Para obter mais informações, consulte Amazon S3 Transfer Acceleration.

versionamento

O versionamento ajuda a recuperar substituições e exclusões acidentais.

Recomendamos o versionamento como melhor prática para impedir a exclusão ou substituição de objetos por engano.

Para obter mais informações, consulte Usar o versionamento.

site

É possível configurar seu bucket para hospedagem de sites estáticos. O for Amazon S3 armazena essa configuração criando um sub-recurso site.

Para obter mais informações, consulte Hospedar um site estático no Amazon S3.