AWS S3 est la brique de stockage fondamentale du cloud. Mais mal configuré, il rend des données critiques accessibles à tout Internet. Les titres du type « un bucket S3 laissé ouvert » sont devenus familiers. Cet article se concentre sur la façon d'assurer la sécurité.
01. Fermé par défaut
Depuis 2018, AWS crée les nouveaux buckets fermés à l'accès public par défaut. Le paramètre « Block Public Access » doit être activé au niveau du bucket comme au niveau du compte.
02. IAM et bucket policy
L'accès est contrôlé sur deux couches :
- IAM policy : droits attachés à un utilisateur ou à un rôle
- Bucket policy : les règles propres au bucket
En cas de conflit entre les deux, c'est la plus restrictive qui s'applique.
03. Le chiffrement
Pour les données au repos : SSE-S3, SSE-KMS ou SSE-C. La plus répandue est SSE-KMS, c'est-à-dire le chiffrement par les clés KMS d'AWS. La rotation des clés peut être automatisée.
04. Versioning et Object Lock
Versioning : les fichiers supprimés ne le sont pas réellement, les versions antérieures sont conservées. Object Lock : un mode « WORM » (write once, read many) qui empêche la suppression pendant une durée définie.
05. Journaux d'accès et GuardDuty
La journalisation des accès à S3 doit être activée. GuardDuty détecte les schémas d'accès anormaux et alerte — par exemple le téléchargement de 10 000 fichiers à trois heures du matin.