O Amazon S3 é o armazém de ficheiros da AWS: cópias, documentos, imagens, o que for. O erro clássico é fazer um bucket público para poder passar uma ligação a alguém. Não é preciso, e é a causa de boa parte das fugas de dados que aparecem na imprensa. O S3 permite gerar uma ligação temporária (URL pré-assinado) para um ficheiro concreto, que funciona durante o tempo que disser e depois deixa de funcionar, com o bucket completamente fechado.
Este guia monta o bucket bem desde o início e mostra-lhe as duas formas de gerar a ligação: com o rato e com um comando.
Antes de começar: o que significa cada coisa
- S3
- O serviço de armazenamento de ficheiros da Amazon. Guarda qualquer tipo de ficheiro e serve-o quando lho pedem.
- Bucket
- Uma "pasta raiz" no S3, com um nome único em todo o mundo. Dentro vão os seus ficheiros e subpastas.
- Objeto
- É assim que o S3 chama a cada ficheiro guardado.
- Acesso público
- Que qualquer pessoa na internet possa ver um ficheiro sabendo o seu endereço. Está bloqueado por defeito e assim deve ficar.
- URL pré-assinado (ligação temporária)
- Um endereço especial, longo e com uma assinatura, que permite descarregar um ficheiro concreto durante o tempo que escolher e depois deixa de funcionar.
- CloudShell
- O terminal integrado na consola web da AWS, onde se escrevem comandos. Não é preciso instalar nada.
- Controlo de versões
- Opção pela qual o S3 guarda as versões anteriores de um ficheiro quando o altera ou o apaga.
- Regra de ciclo de vida
- Uma norma automática de limpeza: apagar versões antigas ou ficheiros passados uns dias.
- CloudFront
- A rede de distribuição da Amazon: a forma correta de servir ao público ficheiros de um bucket sem abrir o bucket.
Passo a passo
Crie o bucket com o acesso público bloqueado
Na consola do S3, Criar bucket. O nome é único em toda a AWS, por isso use algo como
copias-miempresa-2026, em minúsculas e sem espaços. Escolha a região onde tem o resto das coisas. Em Configurações de bloqueio de acesso público deixe marcada a caixa Bloquear todo o acesso público: é o valor por defeito e é o correto. Mais abaixo, ative a encriptação por defeito (SSE-S3 chega) e, se vai guardar coisas importantes, o controlo de versões, que conserva as versões anteriores de um ficheiro quando o substitui ou o apaga.Carregue o ficheiro
Entre no bucket, Carregar, arraste o ficheiro e clique em Carregar. Pode criar pastas para arrumar; no S3 as pastas são apenas parte do nome do ficheiro, mas na consola funcionam como espera. Quando terminar, clique no ficheiro: verá o seu URL do objeto. Se o abrir no navegador dará "Access Denied". Perfeito: isso significa que o bucket está fechado.
Gere a ligação temporária a partir da consola
Com o ficheiro selecionado, menu Ações, Partilhar com um URL pré-assinado. Escolha durante quanto tempo deve funcionar (minutos ou horas; a consola tem um máximo de algumas horas) e clique em Criar. O URL é copiado para a área de transferência. É longo e leva uma assinatura: quem o tiver pode descarregar esse ficheiro até caducar, e nada mais.
Ou gere a ligação a partir do CloudShell
Se precisar dela com frequência ou quiser um prazo mais longo, abra o CloudShell (ícone de terminal na consola) e escreva:
aws s3 presign s3://copias-miempresa-2026/informes/octubre.pdf --expires-in 86400O número são segundos: 86400 é um dia. A ligação que devolve pode ser colada num e-mail ou num chat. O prazo máximo depende do tipo de credencial com que a assinar; com uma chave de acesso de utilizador IAM pode chegar a uma semana.
Dê a ligação e confirme que caduca
Envie-a a quem tiver de descarregar o ficheiro. Passado o prazo, a ligação devolve um erro "Request has expired". Se alguém precisar dela de novo, gera outra: é um instante. Não é necessário apagar nem mudar nada no bucket.
Se herdou um bucket público, feche-o
Na lista de buckets, a coluna Acesso diz-lhe se algum é público. Entre nele, separador Permissões, ative Bloquear todo o acesso público e elimine a política de bucket que o abria. Depois, para os ficheiros que tenham mesmo de ser públicos (imagens de um site, por exemplo), o correto é servi-los através do CloudFront, não abrir o bucket.
O que pode correr mal
A ligação dá "Access Denied" em vez de descarregar
O URL pré-assinado funciona com as permissões de quem o assinou. Se o seu utilizador não pode ler esse objeto, a ligação também não. Também acontece se o URL foi copiado incompleto: é muito longo e alguns programas de e-mail cortam-no. Envie-o como ligação, não como texto simples, ou encurte-o com um serviço de confiança.
A ligação caduca antes do que pedi
Se a gerou a partir do CloudShell ou com credenciais temporárias (uma função), o URL deixa de funcionar quando essas credenciais caducam, mesmo que tenha pedido mais tempo. Para prazos longos, assine-o com a chave de um utilizador IAM que só tenha permissão de leitura sobre esse bucket.
O nome do bucket já existe
Os nomes são globais: outro cliente da AWS em qualquer parte do mundo já o usa. Acrescente o nome da sua empresa ou um sufixo.
A fatura do S3 cresce sem carregar nada
Com o controlo de versões ativo, apagar um ficheiro não o apaga: cria uma "marca de eliminação" e a versão anterior continua a ocupar espaço. Ponha uma regra de ciclo de vida que elimine as versões antigas passados uns dias. Os carregamentos multiparte incompletos também ocupam espaço invisível; outra regra de ciclo de vida limpa-os.
No Simplio
No Simplio abre o bucket como uma pasta: carrega, descarrega e apaga ficheiros sem entrar na consola da AWS, e cada pessoa da sua equipa vê só os buckets que lhe atribuir e pode ou não apagar consoante a permissão que lhe der. O acesso público bloqueado fica bloqueado: o Simplio nunca abre um bucket.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Carregar e organizar ficheiros | Consola do S3, bucket a bucket, conta a conta | Buckets de todas as suas contas como pastas num só ecrã |
| Dar acesso a alguém da equipa | Utilizador IAM com política de S3 escrita à mão | Atribuir-lhe o bucket e marcar se pode apagar |
| Saber quem apagou um ficheiro | CloudTrail com registo de eventos de dados ativado (custo) | Registo de atividade do Simplio, por pessoa e bucket |