Facture S3 qui explose à cause de requêtes GET inconnues

Posté par poirier-david le 13/08/2024
RÉSOLU

poirier-david

Membre depuis le 23/11/2022

hello la compagnie

gros coup de stress ce matin. notre facture aws pour s3 vient de monter en flèche genre x5 par rapport au mois dernier. en regardant les détails cloudwatch et cost explorer c'est clairement les requêtes get sur un bucket spécifique qui ont explosé. on parle de milliards de requêtes supplémentaires.

le truc c'est qu'on a fait aucun déploiement majeur aucune nouvelle feature. nos logs d'accès s3 sont activés mais ça représente des volumes de logs gigantesques à analyser. j'ai juste pu voir des milliers d'adresses ip différentes qui font des requêtes bizarres sur des objets qui ne devraient pas être publics.

c'est un bucket qui contient des assets web statiques et des backups (pas publics). j'ai déjà restreint les politiques de bucket et bloqué l'accès public. mais comment je peux identifier la source de ces requêtes get massives ?

Commentaires

goncalves-michelle

Membre depuis le 17/08/2023

ouch la mauvaise surprise ! première chose à faire c'est couper l'accès public (si ce n'est pas déjà fait) et revoir les bucket policies et les s3 block public access. ensuite active s3 server access logging si pas déjà fait ça t'aidera à savoir qui fait quoi

poirier-david

Membre depuis le 23/11/2022

j'ai bien tout bloqué public access et les policies sont restrictives. les server access logs sont activés mais comme j'ai dit c'est un volume énorme. je sais pas par quel bout commencer

aurore-martineau

Membre depuis le 20/03/2019

pour analyser les logs s3 sans te ruiner en processing tu peux utiliser athena. tu crées une table externe sur tes logs s3 et tu peux requêter avec du sql. cherche les IPs les plus actives et les user agents


-- exemple de requête athena pour les top ips
SELECT
    requestip,
    count(*) AS total_requests
FROM "your_log_database"."your_log_table"
WHERE
    operation = 'REST.GET.OBJECT'
GROUP BY
    requestip
ORDER BY
    total_requests DESC
LIMIT 10;

auguste30

Membre depuis le 22/05/2019

oui athena c'est le mieux pour ça. et regarde aussi les

useragent
dans les logs pour voir si ce sont des bots connus ou des outils spécifiques. des fois c'est juste un crawler mal configuré qui scanne tes buckets

goncalves-michelle

Membre depuis le 17/08/2023

ça pourrait aussi être un lien leaké quelque part vers un de tes objets qui n'est pas censé être public. même avec des policies strictes si t'as une url pré-signée qui a fuité ça peut être exploitée. verifie les durations de tes presigned urls

poirier-david

Membre depuis le 23/11/2022

ok athena je savais que ça existait mais j'avais pas pensé à ça pour les logs s3. j'ai lancé une requête et je vois une centaine d'ips venant d'un certain pays qui font des requêtes en boucle sur un fichier précis. c'est un fichier de config interne qu'on a dû mettre par erreur dans le mauvais path au lieu d'un dossier privé

aurore-martineau

Membre depuis le 20/03/2019

ah le grand classique ! au moins t'as trouvé la source. vire le fichier public ou déplace le illico. et met un cycle de scan de buckets s3 pour détecter ces erreurs de config à l'avenir ça sauve des sous !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire