Skip to main content

02. S3 Security

Par défaut, quand tu crées un bucket S3, tout est fermé. Personne n'a accès à rien, sauf le créateur du compte.


1. Les deux outils pour ouvrir l'accès

Pour donner une permission, tu choisis l'une de ces deux méthodes (ou les deux) :

Method A : La méthode "Utilisateur" (IAM Policy)
  • C'est quoi ? Une feuille de permission que tu donnes à un utilisateur ou un rôle précis.

  • Logique : Tu dis à l'utilisateur : "Toi, tu as le droit d'aller lire le bucket X."

Method B : La méthode "Bucket" (Bucket Policy)
  • C'est quoi ? Une feuille de permission collée directement sur le bucket.

  • Logique : Le bucket dit : "J'autorise telle personne ou tel compte externe à venir chez moi."


2. Tous les requis pour avoir accès à un objet (L'évaluation des politiques)


Lorsqu'une application ou un utilisateur tente d'accéder à un objet dans S3, AWS effectue une vérification stricte en plusieurs étapes. Pour que l'accès soit accordé, il faut que toutes les conditions suivantes soient réunies :

  1. Le principe du "Deny" explicite : Si n'importe quelle politique (IAM ou Bucket) contient un Deny (Interdiction) explicite pour cette action, l'accès est immédiatement refusé, peu importe s'il y a des autorisations ailleurs. Le Deny l'emporte toujours.
  2. L'autorisation explicite ("Allow") : Par défaut, tout est interdit (Implicit Deny). Il faut donc au moins un Allow explicite soit dans la politique IAM de l'utilisateur, soit dans la Bucket Policy.
  3. Le cas du multi-compte (Cross-Account) : Si l'utilisateur appartient au Compte A et veut accéder à un bucket du Compte B, il faut obligatoirement que le Compte A l'autorise (via sa politique IAM) ET que le Compte B l'autorise (via sa Bucket Policy).
  4. L'absence de blocage par "Block Public Access" : Si la requête vient d'Internet de manière anonyme, le mécanisme Block Public Access ne doit pas être activé (voir point suivant).

3. Block Public Access (BPA)

Historiquement, de nombreuses entreprises ont subi des fuites de données massives parce qu'un administrateur avait mal configuré une Bucket Policy, rendant des données sensibles accessibles à la terre entière. Pour corriger cela, AWS a introduit S3 Block Public Access.

  • C'est quoi ? C'est un "bouton de sécurité centralisé" (un coupe-circuit) qui prévaut sur toutes les autres configurations.

  • Le fonctionnement : S'il est activé, il bloque immédiatement toute tentative de rendre le bucket ou ses objets publics, même si une Bucket Policy ou une ACL dit le contraire.

  • La nouveauté : Depuis avril 2023, AWS a renforcé la sécurité par défaut. Désormais, pour chaque nouveau bucket créé, l'option Block Public Access est activée par défaut. Si tu as besoin de créer un site web statique public ou d'exposer des images au public, tu dois explicitement aller décocher cette case.


4. Les Bucket Policies (Politiques de Bucket)

Une Bucket Policy est une règle de sécurité au format JSON qui est directement rattachée à un bucket S3 (c'est le composant principal du Resource-Based Access).

À quoi ça sert ?
  • Contrôle d'accès centralisé : Gérer les permissions pour tout le bucket en un seul endroit.

  • Accès Cross-Account : Autoriser un autre compte AWS à déposer ou lire des fichiers.

  • Sécuriser l'accès réseau : Restreindre l'accès au bucket pour qu'il ne soit accessible que depuis une adresse IP spécifique (l'IP de ton entreprise) ou depuis un VPC AWS spécifique (via un VPC Endpoint).

  • Forcer le chiffrement : Interdire l'upload d'un fichier si la requête n'inclut pas l'en-tête de chiffrement (x-amz-server-side-encryption).


3 cas particuliers pour l'examen

Scénario 1 : Bloquer les fuites de données sur Internet
  • Le besoin : Tu veux une sécurité absolue pour qu'aucun employé ne puisse rendre le bucket public par erreur.

  • La solution : Block Public Access (BPA). C'est un gros bouton de sécurité activé par défaut qui bloque tout Internet.

Scénario 2 : Partager un fichier privé avec un client externe
  • Le besoin : Un client (qui n'a pas de compte AWS) doit télécharger une facture privée ou uploader sa photo.

  • La solution : Presigned URL (URL Présignée). Tu lui génères un lien magique, sécurisé et temporaire (valable 15 minutes par exemple).

Scénario 3 : Connecter tes serveurs privés à S3
  • Le besoin : Tes serveurs AWS sont isolés du monde (pas d'Internet). Ils ont pourtant besoin de parler à S3.

  • La solution : VPC Gateway Endpoint. Un tunnel privé qui relie tes serveurs à S3 sans jamais passer par Internet.