Pode partilhar ficheiros do Amazon S3 sem nunca tornar o bucket público. Mantenha-o privado, deixe o Block Public Access ativado e dê às pessoas acesso assinado a objetos concretos: um URL pré-assinado para um ficheiro pontual, URLs assinados do CloudFront quando já tem uma CDN à frente do bucket, ou um link de partilha que acrescenta palavra-passe, data de expiração e limite de transferências. As três opções funcionam da mesma forma em fornecedores compatíveis com S3, como o Cloudflare R2, o DigitalOcean Spaces, o Wasabi e o Backblaze B2 (o CloudFront é exclusivo da AWS).
Opções de partilha segura no S3 num relance
| Método | Ideal para | Palavra-passe | Limite de transferências | Revogar um link | Pastas inteiras | Código necessário |
|---|---|---|---|---|---|---|
| Objeto ou bucket público | Recursos realmente públicos (um site) | Não | Não | Não | Sim | Não |
| URL pré-assinado | Um ficheiro, uma vez, a partir da CLI ou da sua app | Não | Não | Não | Não | CLI ou SDK |
| URL assinado do CloudFront | Aplicações que já autenticam utilizadores | Não | Não | Não | Com cookies assinados | Sim |
| Link de partilha do Nubbo | Partilha recorrente com pessoas de fora | Sim | Sim | Sim | Sim, com ZIP | Não |
Porque não tornar simplesmente o ficheiro público
A forma mais rápida de partilhar um ficheiro do S3 é torná-lo público e enviar o URL do objeto. É também a mais arriscada: qualquer coisa pública pode ser obtida por quem encontre ou adivinhe o endereço, sem palavra-passe, sem expiração e sem registo de quem a levou. Os buckets públicos esquecidos são uma fonte clássica de fugas de dados e expõem tanto os nomes dos ficheiros como o conteúdo.
A AWS indica que os buckets, pontos de acesso e objetos novos não permitem acesso público por predefinição. Além disso, o S3 Block Public Access tem quatro definições (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy e RestrictPublicBuckets) que se sobrepõem a qualquer política ou ACL que viesse a abrir o bucket mais tarde. Podem ser definidas por bucket, por conta ou para toda uma AWS Organization, e o S3 aplica a combinação mais restritiva. A AWS recomenda ativar as quatro ao nível da conta, a não ser que aloje mesmo conteúdo público, como um site estático.
Mantenha esse interruptor ligado. Tudo o que se segue funciona com ele ativado.
Opção 1: URLs pré-assinados
Um URL pré-assinado é um URL de objeto com uma assinatura na query string. Concede uma operação (normalmente uma transferência) sobre um objeto até expirar, e o S3 verifica a assinatura em cada pedido.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Esse URL funciona durante 24 horas. A predefinição da CLI é uma hora e o máximo é de 604.800 segundos (7 dias) quando assina com chaves de utilizador IAM. Se assinar com credenciais temporárias, como uma função assumida, o URL morre quando essas credenciais expiram.
O que ganha:
- Nenhuma alteração no bucket nem nas suas políticas.
- Controlo preciso: um objeto, um método, uma expiração.
- Funciona em qualquer fornecedor que suporte pré-assinatura SigV4.
O que não ganha:
- Sem palavra-passe. Quem tiver o URL pode usá-lo, quantas vezes quiser, até expirar.
- Sem limite de transferências nem revogação por link. Só pode matar um URL antes do tempo revogando as chaves que o assinaram.
- Sem pastas. Assina objeto a objeto, por isso partilhar uma pasta com 300 ficheiros significa 300 URLs.
- Nomes à vista. O URL mostra o nome do seu bucket, a chave do objeto e o ID da sua chave de acesso.
Para conhecer o mecanismo a fundo, incluindo carregamentos, cada parâmetro X-Amz-* e código de SDK, consulte os URLs pré-assinados do S3 explicados.
Opção 2: URLs assinados e cookies assinados do CloudFront
Se já serve o bucket através do Amazon CloudFront, pode exigir URLs assinados ou cookies assinados num comportamento de cache. O bucket continua privado por trás do origin access control (OAC), que a AWS recomenda em vez do antigo origin access identity: uma política do bucket só deixa a sua distribuição ler os objetos. Regista chaves públicas num trusted key group e assina com a chave privada correspondente.
- Os URLs assinados servem para ficheiros individuais. Com uma política personalizada, também pode definir uma hora de início e um intervalo de IP, e reutilizar uma política para muitos ficheiros com wildcards. Podem durar pouco tempo ou anos.
- Os cookies assinados servem para muitos ficheiros de uma vez, como todos os segmentos de um vídeo, sem alterar os seus URLs.
É a ferramenta certa quando tem uma aplicação que já autentica utilizadores e serve conteúdo em grande escala. Para entregar alguns ficheiros a pessoas de fora da sua equipa, implica configurar uma distribuição, gerir chaves e escrever código que assine cada pedido.
Restringir uma política do bucket a um intervalo de IP fixo é outra opção nativa, mas só ajuda quando conhece as redes de quem recebe, o que raramente acontece com pessoas de fora da sua organização.
Opção 3: links de partilha com o Nubbo
O Nubbo liga-se ao seu bucket e dá-lhe links de partilha com os controlos que faltam aos URLs pré-assinados, sem escrever código. Por baixo continua a usar URLs pré-assinados: o Nubbo verifica primeiro as regras do link e só depois emite um URL de curta duração, por isso os ficheiros individuais viajam diretamente do seu bucket para o navegador de quem os recebe.
Passo 1: Ligue o seu bucket
Registe-se gratuitamente, confirme o seu email, abra Buckets e carregue em Ligar bucket. O assistente pede o seu fornecedor (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 ou um endpoint personalizado compatível com S3), a forma de ligar (uma configuração automática com uma chave de acesso total ou uma chave limitada a um bucket), a sua chave e o seu bucket. Verifica a chave e o bucket e termina testando o CORS com um carregamento real a partir do seu navegador. O bucket continua privado e as suas chaves são guardadas encriptadas com AES-256-GCM. O plano Grátis inclui 2 ligações.
Passo 2: Escolha o ficheiro ou a pasta
Encontre o item no explorador e escolha Partilhar. Também pode ir à página Partilhados, carregar em Novo link e escolher aí o bucket e o ficheiro ou a pasta.
Passo 3: Defina a proteção
Os três controlos são opcionais e estão disponíveis em todos os planos:
| Controlo | Como funciona |
|---|---|
| Palavra-passe | De 4 a 50 caracteres. Após 10 tentativas erradas, o link bloqueia durante 15 minutos. |
| Data de expiração | Desativada por predefinição: o link fica ativo enquanto o ficheiro ou a pasta existir no seu armazenamento. |
| Downloads máximos | Vazio significa ilimitado. Quando se atinge o número, o link deixa de servir o ficheiro. |
Passo 4: Crie e envie o link
Carregue em Criar link, copie-o e envie-o por email, chat ou o que usar. Quem o recebe abre uma página de transferência limpa e não precisa de conta. Um link de pasta permite navegar na pasta, transferir ficheiros individuais ou levar tudo num ZIP, que o navegador de quem recebe monta ao transferir cada ficheiro diretamente do seu bucket.
Passo 5: Envie a palavra-passe à parte
Enviar a palavra-passe na mesma mensagem que o link anula o objetivo. Se o link tiver palavra-passe, Enviar palavra-passe por email entrega-a como um link de revelação única: a palavra-passe é mostrada uma vez, o link de revelação expira ao fim de 24 horas, 3 dias ou 7 dias, e pode acrescentar uma nota curta. Recebe uma notificação quando é aberto.
Passo 6: Acompanhe e revogue
A página Partilhados lista cada link com o seu estado e o número de transferências. Pode editar a palavra-passe, a expiração ou o limite, desativar um link (deixa de emitir novos URLs de transferência de imediato) e reabri-lo mais tarde com o mesmo endereço.
Partilhar com pessoas concretas em vez de um link
Um link funciona para qualquer pessoa que o tenha. Quando quer que só entrem pessoas concretas, a função Partilhar com pessoas do Nubbo (nos planos Personal e Pro) envia um ficheiro ou uma pasta a endereços de email específicos com permissão de visualização ou de transferência, uma expiração opcional e um limite de transferências, e regista cada acesso. As pessoas que recebem precisam de uma conta no Nubbo e encontram o item em Partilhados comigo. O Personal permite 10 pessoas por item e 50 partilhas ativas; o Pro permite 50 e 500.
Os planos pagos oferecem também links encriptados: o navegador cria uma cópia selada do ficheiro e a chave viaja apenas no próprio link, por isso o Nubbo não a consegue ler.
Que opção deve usar?
- Um ficheiro, uma vez, e tem a AWS CLI configurada: um URL pré-assinado é o caminho mais rápido.
- Uma aplicação que já autentica utilizadores e serve muito conteúdo: URLs ou cookies assinados do CloudFront.
- Partilha recorrente com pessoas de fora da sua equipa, pastas inteiras ou qualquer coisa que precise de palavra-passe ou de limite: um link de partilha poupa tempo e erros.
Para além de um único link
Duas funcionalidades relacionadas cobrem os outros casos comuns. Os Pedidos de ficheiros dão-lhe um link público de carregamento para que as pessoas possam enviar ficheiros para o seu bucket sem verem mais nada lá dentro. As Galerias transformam uma pasta de fotos ou vídeos numa página navegável com layouts, marca de água e palavra-passe própria. No plano Grátis tem 3 de cada e links de partilha ilimitados; o Personal e o Pro eliminam esses limites. Uma nota honesta: as miniaturas são geradas no servidor do Nubbo e guardadas no seu próprio bucket em .nubbo-thumbs/.
Perguntas frequentes
Como partilho um ficheiro do S3 sem o tornar público?
Mantenha o bucket privado e entregue antes acesso assinado: um URL pré-assinado para um objeto (a partir da AWS CLI ou de um SDK), um URL ou cookie assinado do CloudFront se já serve o bucket através do CloudFront, ou um link de partilha de uma ferramenta como o Nubbo, que acrescenta palavra-passe, expiração e limite de transferências por cima dos URLs pré-assinados.
O Amazon S3 é seguro para partilhar ficheiros?
Sim, desde que o bucket continue privado. Os buckets novos não permitem acesso público por predefinição e o S3 Block Public Access impede que alguém os abra mais tarde. O risco vem de tornar objetos públicos ou de divulgar links assinados, que funcionam para qualquer pessoa que os tenha até expirarem.
Os buckets novos do S3 são privados por predefinição?
Sim. A AWS indica que os buckets, pontos de acesso e objetos novos não permitem acesso público por predefinição, e as quatro definições do Block Public Access sobrepõem-se a qualquer política ou ACL que os viesse a abrir mais tarde.
Quem recebe precisa de uma conta da AWS ou do Nubbo?
Não. Um URL pré-assinado, um URL assinado do CloudFront e um link de partilha do Nubbo funcionam em qualquer navegador sem conta. Só Partilhar com pessoas, que envia um item a pessoas concretas, exige que tenham conta no Nubbo.
Quanto tempo pode durar um link partilhado do S3?
Um URL pré-assinado dura no máximo 7 dias quando é assinado com chaves de utilizador IAM, e menos com credenciais temporárias. Os URLs assinados do CloudFront duram o que a sua política indicar. Um link de partilha do Nubbo não expira a não ser que defina uma data, porque emite um URL novo de curta duração em cada transferência.
Os ficheiros passam pelo Nubbo quando alguém transfere um link partilhado?
Não: o navegador transfere os ficheiros individuais diretamente do seu bucket com um URL pré-assinado. As transferências ZIP de vários ficheiros são montadas no navegador, que transfere cada ficheiro diretamente do seu bucket: o Nubbo nunca vê o conteúdo.
Fontes
Os preços e limites vêm das páginas oficiais abaixo. Os fornecedores alteram-nos, por isso confirme antes de se comprometer.
- Amazon S3: bloquear o acesso público ao seu armazenamento
- Amazon S3: transferir e carregar objetos com URLs pré-assinados
- Referência da AWS CLI: s3 presign
- Amazon CloudFront: restringir o acesso a uma origem Amazon S3 (OAC)
- Amazon CloudFront: usar URLs assinados
- Amazon CloudFront: escolher entre URLs assinados e cookies assinados