Criando um Bucket S3 na AWS

Criando um Bucket S3 na AWS

O que é o Amazon S3?

O Amazon Simple Storage Service, conhecido popularmente como "Amazon S3", é um serviço de armazenamento de objetos (ou blobs) da AWS que atua com alta disponibilidade, escalabilidade e baixa latência - segundo a AWS, o S3 possui 99,9999999% de resiliência de dados!

Mas o que seriam esses "objetos"? Os objetos no Amazon S3 podem ser diversos tipos de arquivos: imagens, pdfs, vídeos, áudios, entre outros. Ele também possibilita hospedar um website estático.

No AWS S3, os objetos são armazenados em buckets ("baldes"), que funcionam como se fossem containers. Dentro de um bucket S3, cada objeto é identificado por uma chave e ID de versão.

Portanto, o S3 pode ser usado para uma diversidade de fins: backup e restauração, arquivamento, data lakes, sites, e-commerces, e por aí vai.

No S3, você também pode escolher a região a fim de otimizar a latência, economizar ou por questões de conformidade.

Ideia do tutorial

Este tutorial tem o intuito de apresentar o S3 e desenvolver algumas habilidades básicas em relação ao seu uso, com os seguintes objetivos:

  • Criar um Bucket S3 e se familiarizar com a interface do serviço de armazenamento de objetos;
  • Subir o conteúdo (upload) e administrar o acesso através de policies.

Passo a Passo

Criando o Bucket S3

1) Você deve acessar a console AWS e fazer o login - caso não tenha uma conta, é o momento de criar uma e fazer uso dos serviços free tier.

2) Após logar na console, pesquise pelo "S3" na barra de pesquisa:

3) Clique em S3 e em seguida, clique em "Criar bucket":

4) Agora é o momento de configurar os dados do Bucket S3, então siga os seguintes passos:

Configuração geral

  • Nome

 -  Aqui você deve escolher um nome único e global, ou seja, não pode existir na AWS um Bucket com o mesmo nome que o seu. Com 3 a 63 caracteres, podendo ter letras minúsculas, números, ponto (.) e hífen (-).

  • Região da AWS: eu escolhi "Leste dos EUA (Norte da Virgínia) us-east-1"

Propriedade de objeto

  • ACLs desabilitadas (recomendado)

Configurações de bloqueio do acesso público deste bucket

  • Manter a caixa selecionada "Bloquear todo o acesso público"

Versionamento de bucket

  • Manter em "Desativar"

Criptografia padrão

  • Criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3)

Chave do bucket

  • "Ativar"

Em Configurações Avançadas, não é necessário configurarmos nada no momento. Então, somente desça até a parte inferior da página e clique em "Criar bucket". E pronto! Seu Bucket S3 está criado.

Fazendo o upload de objetos no Bucket

6) Com o bucket criado, clique nele para acessá-lo. Em seguida, clique em "Carregar" para enviar uma imagem simples (pode ser qualquer imagem que você tiver disponível):

7) Clique em "Adicionar arquivos" e selecione a imagem desejada. E em seguida clique em "Carregar".

Se tudo estiver ocorrido bem, você vai receber uma mensagem de upload bem-sucedido, conforme imagem:

Se o upload deu certo, então clique em "Fechar".

Acessando a imagem

8) Agora, selecione a imagem e clique em "Abrir":

A imagem vai carregar no seu navegador (a minha foi essa aqui):

Tudo certo, não? Então, vamos para mais um teste.

Acessar com a URL de objeto

9) Selecione novamente a imagem e clique no botão "copiar url". Em seguida, abra uma nova aba no seu navegador e cole a URL

E..... Voilá! Não conseguimos acessar a imagem dessa vez. Nossa permissão foi negada:

Isso ocorre pois há um impedimento aqui: por questões de segurança padrão, não podemos acessar o arquivo sem estarmos logados na conta da AWS. Caso fosse um arquivo que por algum motivo necessitasse de acesso externo público, é necessário então liberar esse acesso.

Habilitar o acesso público para a imagem

10) O primeiro passo para liberarmos o acesso público da nossa imagem é ir em "Permissões" no Bucket:

11) Em Bloquear acesso público, clique em "Editar":

12)  E desmarque a caixa "Bloquear todo o acesso público" e depois clique em "Salvar alterações":

A AWS vai pedir para confirmar essa modificação - já que por não ser uma boa prática de segurança, não é recomendável liberar o acesso público para o seu Bucket. Mas estamos fazendo isso apenas para fins didáticos:

Ótimo! Agora você vai conseguir acessar a imagem pela URL, certo? Não. Ainda não. Falta um passo: criar uma política que permita o acesso.

Criar política de acesso

13) Ainda na aba "Permissões", desça até a opção "Editar política de bucket" e clique em "Editar":

14) Primeiro, copie a ARN do bucket (que é o identificador único do recurso). Em seguida, clique no botão "Gerenciador de políticas":

15) Se o seu navegador te direcionou para uma página estranha com a logo da AWS, não se assuste! Trata-se do AWS Policy Generator, um gerador de políticas que permite que criar as nossas políticas de acesso aos recursos provisionados na AWS.

Então, vamos lá:

  • Em Step 1, selecione a opção "S3 Bucket Policy"

Em Step 2, use as seguintes configurações:

  • Effect: marque "Allow"
  • Principal: coloque apenas o símbolo do asterisco "*" (sem aspas)
  • Actions: procure pela opção "GetObject" e selecione-a
  • Amazon Resource name (ARN): cole a ARN do bucket (se não lembra onde conseguir, volte no passo 14 deste tutorial) e no final da ARN acrescente /*

Clique em "Add Statement"

16) No Step 3, clique em "Generate Policy" e copie o JSON criado. Cuidado para não copiar caracteres de espaço em branco sem querer.

17) Volte na AWS, na aba "Política do bucket", e cole o JSON

18) Role até abaixo e clique em "Salvar alterações"

Acessando a imagem pela URL

19) Clique na aba "Objetos" e selecione a imagem. Em seguida, copie a URL

20) Cole o link em uma nova aba no navegador e... Pronto! Se tudo deu certo, você e qualquer outra pessoa conseguem acessar a imagem. Que beleza!

Excluindo o Bucket

21) Depois desse sucesso, é hora de limpar o ambiente. Então, selecione a sua imagem e clique no botão "Excluir". A console perguntará se você quer excluir permanentemente o objeto, por isso confirme a exclusão.

22) Volte para a opção Buckets na console. Selecione o seu bucket e clique em "Excluir". Confirme a exclusão.

E pronto! Você acaba de criar, gerenciar e excluir o seu bucket S3. Além disso, você aprendeu como gerenciar o acesso ao bucket e aos objetos armazenados nele.

Documentação

Por se tratar de um tutorial introdutório, não entramos em assuntos como encriptação, versionamento, classes de armazenamento, ciclo de vida, entre outros.

Para ir se habituando e conhecendo mais sobre o Amazon S3, deixo alguns links de recomendação e documentação abaixo.

Bons estudos! 👋