2017-10-21 71 views
0

J'ai une application React-Native utilisant le SDK JS pour S3 et j'ai une politique IAM qui permet à un utilisateur d'exécuter PutObject sur un fichier spécifique avec son nom lié à l'ID Cognito de l'utilisateur connecté. Cela permet à un utilisateur de changer sa photo de profil sans qu'aucun code serveur ne doive être exécuté et que je doive avoir un transfert de données inutile dans AWS.S3 SDK PutObject accès restreindre la taille du fichier

Cela fonctionne bien attendre le fait qu'un client rouge/modifié peut télécharger un fichier massif et générer des coûts pour moi.

Je voudrais savoir s'il existe un moyen de restreindre l'accès PutObject pour autoriser uniquement les fichiers d'une certaine taille?

+0

Im presque positif il n'y a aucune partie de sdk s3 qui vous permet de limiter la taille de ce que vous téléchargez via putObject. Peut-être que vous pourriez penser à tirer parti d'une autre vérification avant d'effectuer l'opération de téléchargement – Maxwelll

+0

@Maxwelll techniquement je ne veux pas utiliser le SDK pour faire appliquer cela, je voudrais utiliser une politique IAM. Je viens juste de mentionner que mon accès à S3 passe par le SDK plutôt que par quelque chose d'autre. – Gerharddc

+1

Super hack, un événement créé par un objet S3 déclenche une fonction Lambda. Dans les données d'événement, Records [0] .s3.object.size contient automatiquement la taille de l'objet téléchargé. Si excessif ... supprimez-le. Ou essayez de le redimensionner. Ou remplacez-le par un chat grincheux. Sérieusement, vous voudrez peut-être envisager une sorte de déclencheur Lambda post-traitement pour les photos de profil, après tout, vous ne voulez pas exposer la maison ou le lieu de travail d'un utilisateur dans les métadonnées EXIF ​​de sa photo de profil. .. –

Répondre

0

La limitation de la taille d'un téléchargement S3 n'est pas possible avec les stratégies IAM ou S3.

Vous devrez écrire du code sur votre site Web (ou un service similaire) pour gérer le téléchargement et le processus d'autorisation.