Vous pouvez partager des fichiers depuis Amazon S3 sans jamais rendre le bucket public. Gardez-le privé, laissez Block Public Access activé et donnez plutôt aux gens un accès signé à des objets précis : une URL présignée pour un fichier ponctuel, des URL signées CloudFront si vous avez déjà un CDN devant le bucket, ou un lien de partage qui ajoute un mot de passe, une date d’expiration et une limite de téléchargements. Les trois fonctionnent de la même façon chez les fournisseurs compatibles S3 comme Cloudflare R2, DigitalOcean Spaces, Wasabi et Backblaze B2 (CloudFront est propre à AWS).
Les options de partage sécurisé de fichiers S3 en un coup d’œil
| Méthode | Idéale pour | Mot de passe | Limite de téléchargements | Révoquer un lien | Dossiers entiers | Code nécessaire |
|---|---|---|---|---|---|---|
| Objet ou bucket public | Des ressources vraiment publiques (un site web) | Non | Non | Non | Oui | Non |
| URL présignée | Un fichier, une fois, depuis la CLI ou votre app | Non | Non | Non | Non | CLI ou SDK |
| URL signée CloudFront | Les applications qui authentifient déjà leurs utilisateurs | Non | Non | Non | Avec des cookies signés | Oui |
| Lien de partage Nubbo | Le partage régulier avec des personnes extérieures | Oui | Oui | Oui | Oui, avec ZIP | Non |
Pourquoi ne pas simplement rendre le fichier public
Le moyen le plus rapide de partager un fichier depuis S3 est de le rendre public et d’envoyer l’URL de l’objet. C’est aussi le plus risqué : tout ce qui est public peut être récupéré par quiconque trouve ou devine l’adresse, sans mot de passe, sans expiration et sans trace de qui l’a pris. Les buckets publics oubliés sont une source classique de fuites de données, et ils exposent les noms des fichiers autant que leur contenu.
AWS indique que les nouveaux buckets, points d’accès et objets n’autorisent pas l’accès public par défaut. En plus, S3 Block Public Access comporte quatre réglages (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy et RestrictPublicBuckets) qui l’emportent sur toute politique ou ACL qui ouvrirait le bucket plus tard. Ils se définissent par bucket, par compte ou pour toute une AWS Organization, et S3 applique la combinaison la plus restrictive. AWS recommande de les activer tous les quatre au niveau du compte, sauf si vous hébergez réellement du contenu public, comme un site web statique.
Laissez cet interrupteur activé. Tout ce qui suit fonctionne avec.
Option 1 : les URL présignées
Une URL présignée est une URL d’objet avec une signature dans la chaîne de requête. Elle autorise une opération (généralement un téléchargement) sur un objet jusqu’à son expiration, et S3 vérifie la signature à chaque requête.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Cette URL fonctionne pendant 24 heures. La valeur par défaut de la CLI est d’une heure et le maximum de 604 800 secondes (7 jours) quand vous signez avec des clés d’utilisateur IAM. Si vous signez avec des identifiants temporaires, comme un rôle assumé, l’URL meurt quand ces identifiants expirent.
Ce que vous obtenez :
- Aucune modification du bucket ni de ses politiques.
- Un contrôle précis : un objet, une méthode, une expiration.
- Un fonctionnement chez tout fournisseur qui prend en charge la présignature SigV4.
Ce que vous n’obtenez pas :
- Pas de mot de passe. Quiconque possède l’URL peut l’utiliser, autant de fois qu’il le veut, jusqu’à son expiration.
- Pas de limite de téléchargements ni de révocation par lien. Vous ne pouvez couper une URL plus tôt qu’en révoquant les clés qui l’ont signée.
- Pas de dossiers. Vous signez objet par objet : partager un dossier de 300 fichiers signifie 300 URL.
- Pas de confidentialité des noms. L’URL montre le nom de votre bucket, la clé de l’objet et votre ID de clé d’accès.
Pour le fonctionnement en détail, avec les envois, chaque paramètre X-Amz-* et du code de SDK, voir les URL présignées S3 expliquées.
Option 2 : URL signées et cookies signés CloudFront
Si vous servez déjà le bucket via Amazon CloudFront, vous pouvez exiger des URL signées ou des cookies signés sur un comportement de cache. Le bucket reste privé derrière l’origin access control (OAC), qu’AWS recommande plutôt que l’ancien origin access identity : une politique de bucket ne laisse que votre distribution lire les objets. Vous enregistrez des clés publiques dans un trusted key group et signez avec la clé privée correspondante.
- Les URL signées conviennent aux fichiers individuels. Avec une politique personnalisée, vous pouvez aussi définir une heure de début et une plage d’IP, et réutiliser une politique pour de nombreux fichiers avec des caractères génériques. Elles peuvent durer peu de temps ou des années.
- Les cookies signés conviennent à de nombreux fichiers à la fois, comme tous les segments d’une vidéo, sans modifier vos URL.
C’est le bon outil quand vous faites tourner une application qui authentifie déjà ses utilisateurs et sert du contenu à grande échelle. Pour remettre quelques fichiers à des personnes extérieures à votre équipe, cela implique de configurer une distribution, de gérer des clés et d’écrire du code qui signe chaque requête.
Restreindre une politique de bucket à une plage d’IP fixe est une autre option native, mais elle n’aide que si vous connaissez les réseaux des destinataires, ce qui est rarement le cas avec des personnes extérieures à votre organisation.
Option 3 : les liens de partage avec Nubbo
Nubbo se connecte à votre bucket et vous offre des liens de partage avec les contrôles qui manquent aux URL présignées, sans écrire de code. En coulisses, il utilise toujours des URL présignées : Nubbo vérifie d’abord les règles du lien et ne délivre qu’ensuite une URL de courte durée, si bien que les fichiers individuels vont directement de votre bucket au navigateur du destinataire.
Étape 1 : connectez votre bucket
Inscrivez-vous gratuitement, vérifiez votre adresse e-mail, puis ouvrez Buckets et appuyez sur Connecter un bucket. L’assistant vous demande votre fournisseur (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 ou un endpoint personnalisé compatible S3), le mode de connexion (une configuration automatique avec une clé à accès complet, ou une clé limitée à un seul bucket), votre clé et votre bucket. Il vérifie la clé et le bucket, et termine en testant CORS avec un véritable envoi depuis votre navigateur. Le bucket reste privé et vos clés sont stockées chiffrées en AES-256-GCM. Le forfait Gratuit inclut 2 connexions.
Étape 2 : choisissez le fichier ou le dossier
Trouvez l’élément dans l’explorateur et choisissez Partager. Vous pouvez aussi aller dans la page Partagés, appuyer sur Nouveau lien et y choisir le bucket et le fichier ou le dossier.
Étape 3 : définissez la protection
Les trois contrôles sont facultatifs et disponibles dans tous les forfaits :
| Contrôle | Fonctionnement |
|---|---|
| Mot de passe | De 4 à 50 caractères. Après 10 tentatives erronées, le lien se verrouille pendant 15 minutes. |
| Date d’expiration | Désactivée par défaut : le lien reste actif tant que le fichier ou le dossier est dans votre stockage. |
| Téléchargements maximum | Vide signifie illimité. Une fois le nombre atteint, le lien cesse de servir le fichier. |
Étape 4 : créez et envoyez le lien
Appuyez sur Créer un lien, copiez-le et envoyez-le par e-mail, par messagerie ou par ce que vous utilisez. Le destinataire ouvre une page de téléchargement claire et n’a pas besoin de compte. Un lien de dossier lui permet de parcourir le dossier, de télécharger des fichiers individuels ou de tout récupérer en ZIP, que son navigateur construit en téléchargeant chaque fichier directement depuis votre bucket.
Étape 5 : envoyez le mot de passe séparément
Envoyer le mot de passe dans le même message que le lien n’a aucun intérêt. Si le lien a un mot de passe, Envoyer le mot de passe par email le transmet sous forme de lien de révélation à usage unique : le mot de passe s’affiche une seule fois, le lien de révélation expire au bout de 24 heures, 3 jours ou 7 jours, et vous pouvez ajouter une courte note. Vous êtes prévenu quand il est ouvert.
Étape 6 : suivez et révoquez
La page Partagés liste chaque lien avec son état et son nombre de téléchargements. Vous pouvez modifier le mot de passe, l’expiration ou la limite, désactiver un lien (il cesse immédiatement de délivrer de nouvelles URL de téléchargement) et le réactiver plus tard avec la même adresse.
Partager avec des personnes précises plutôt qu’avec un lien
Un lien fonctionne pour quiconque le possède. Quand vous voulez que seules des personnes nommées y accèdent, Partager avec des personnes de Nubbo (dans les forfaits Personal et Pro) envoie un fichier ou un dossier à des adresses e-mail précises avec une permission de consultation ou de téléchargement, une expiration facultative et un plafond de téléchargements, et enregistre chaque accès. Les destinataires ont besoin d’un compte Nubbo et retrouvent l’élément dans Partagés avec moi. Personal permet 10 personnes par élément et 50 partages actifs ; Pro en permet 50 et 500.
Les forfaits payants proposent aussi des liens chiffrés : le navigateur crée une copie scellée du fichier et la clé ne voyage que dans le lien lui-même, si bien que Nubbo ne peut pas le lire.
Quelle option choisir ?
- Un fichier, une fois, et l’AWS CLI est configurée : une URL présignée est le chemin le plus rapide.
- Une application qui connecte déjà ses utilisateurs et sert beaucoup de contenu : les URL ou cookies signés CloudFront.
- Un partage régulier avec des personnes extérieures à votre équipe, des dossiers entiers ou tout ce qui exige un mot de passe ou une limite : un lien de partage fait gagner du temps et évite les erreurs.
Au-delà d’un simple lien
Deux fonctionnalités voisines couvrent les autres cas courants. Les demandes de fichiers vous donnent un lien d’envoi public pour que d’autres personnes envoient des fichiers dans votre bucket sans rien voir d’autre. Les galeries transforment un dossier de photos ou de vidéos en une page consultable avec des mises en page, un filigrane et son propre mot de passe. Le forfait Gratuit vous en donne 3 de chaque et des liens de partage illimités ; Personal et Pro suppriment ces plafonds. Une précision, en toute transparence : les miniatures sont générées sur le serveur de Nubbo et stockées dans votre propre bucket sous .nubbo-thumbs/.
Questions fréquentes
Comment partager un fichier depuis S3 sans le rendre public ?
Gardez le bucket privé et distribuez plutôt un accès signé : une URL présignée pour un objet (depuis l'AWS CLI ou un SDK), une URL ou un cookie signé CloudFront si vous servez déjà le bucket via CloudFront, ou un lien de partage d'un outil comme Nubbo qui ajoute un mot de passe, une expiration et une limite de téléchargements par-dessus les URL présignées.
Amazon S3 est-il sûr pour partager des fichiers ?
Oui, tant que le bucket reste privé. Les nouveaux buckets n'autorisent pas l'accès public par défaut et S3 Block Public Access empêche quiconque de les ouvrir plus tard. Le risque vient des objets rendus publics ou des fuites de liens signés, qui fonctionnent pour quiconque les possède jusqu'à leur expiration.
Les nouveaux buckets S3 sont-ils privés par défaut ?
Oui. AWS indique que les nouveaux buckets, points d'accès et objets n'autorisent pas l'accès public par défaut, et les quatre réglages de Block Public Access l'emportent sur toute politique ou ACL qui les ouvrirait plus tard.
Le destinataire a-t-il besoin d'un compte AWS ou Nubbo ?
Non. Une URL présignée, une URL signée CloudFront et un lien de partage Nubbo fonctionnent tous dans n'importe quel navigateur, sans compte. Seul Partager avec des personnes, qui envoie un élément à des personnes nommées, exige qu'elles aient un compte Nubbo.
Combien de temps peut durer un lien S3 partagé ?
Une URL présignée dure au maximum 7 jours lorsqu'elle est signée avec des clés d'utilisateur IAM, et moins avec des identifiants temporaires. Les URL signées CloudFront durent autant que le prévoit votre politique. Un lien de partage Nubbo n'expire pas sauf si vous le décidez, car il délivre une nouvelle URL de courte durée à chaque téléchargement.
Les fichiers passent-ils par Nubbo quand quelqu'un télécharge un lien partagé ?
Non : le navigateur télécharge les fichiers individuels directement depuis votre bucket avec une URL présignée. Les téléchargements ZIP de plusieurs fichiers sont assemblés dans le navigateur, qui télécharge chaque fichier directement depuis votre bucket : Nubbo ne voit jamais le contenu.
Sources
Les prix et les limites proviennent des pages officielles ci-dessous. Les fournisseurs les modifient, alors vérifiez avant de vous engager.
- Amazon S3 : bloquer l'accès public à votre stockage
- Amazon S3 : télécharger et envoyer des objets avec des URL présignées
- Référence de l'AWS CLI : s3 presign
- Amazon CloudFront : restreindre l'accès à une origine Amazon S3 (OAC)
- Amazon CloudFront : utiliser des URL signées
- Amazon CloudFront : choisir entre URL signées et cookies signés