View a markdown version of this page

Autorisations POSIX dans les fichiers S3 - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisations POSIX dans les fichiers S3

Les systèmes de fichiers POSIX nécessitent la propriété et des autorisations sur chaque fichier. Amazon S3 stocke les données sous forme d'objets dont l'accès est contrôlé par des politiques IAM et des politiques de compartiment et ne stocke pas de manière native la propriété des fichiers ou les attributs d'autorisation. S3 Files comble cette différence en stockant les métadonnées POSIX, y compris le propriétaire, le groupe et les autorisations de fichier, sous forme de métadonnées définies par l'utilisateur sur chaque objet S3. Lorsque vous créez ou modifiez un fichier via S3 Files, le service écrit automatiquement toutes les métadonnées d'autorisation. Lorsqu'un objet est écrit dans votre compartiment S3 en dehors du système de fichiers, par exemple via la console Amazon S3, la AWS CLI ou le AWS SDK, aucune métadonnée POSIX n'existe sur cet objet. S3 Files attribue à ces objets une valeur de root:root propriété et d'644autorisations par défaut, ce qui permet aux utilisateurs non root de lire le fichier mais pas d'y écrire. Si ces valeurs par défaut répondent à vos exigences d'accès, aucune action n'est requise. Si votre application l'exige, vous pouvez annuler les autorisations par défaut sur ces objets. Ce didacticiel explique comment appliquer des autorisations personnalisées.

Comment S3 Files stocke les métadonnées POSIX

S3 Files stocke les informations POSIX sous forme de métadonnées définies par l'utilisateur sur chaque objet. Les clés de métadonnées suivantes contrôlent la propriété et les autorisations :

Clé de métadonnées Description Exemple de valeur
x-amz-meta-file-owner ID utilisateur POSIX (UID) 1000
x-amz-meta-file-group ID de groupe POSIX (GID) 1000
x-amz-meta-file-permissions Type de fichier et bits d'autorisation (octal) 0100644

Lorsqu'un objet ne possède aucune métadonnée POSIX, S3 Files applique les valeurs par défaut suivantes :

  • Fichiers : root:root propriété avec 0644 autorisations (-rw-r--r--)

  • Répertoires : root:root propriété avec 0755 autorisations (drwxr-xr-x)

Avec ces valeurs par défaut, tous les utilisateurs peuvent lire des fichiers et parcourir des répertoires, mais seul le propriétaire (root) peut écrire. Les fichiers ne sont pas exécutables par défaut.

Configuration des métadonnées POSIX sur des objets existants

Utilisez la procédure suivante pour appliquer la propriété et les autorisations POSIX aux objets qui existent déjà dans votre compartiment.

Étape 1 : identifier l'UID et le GID de l'utilisateur cible

Dans cet exemple, l'utilisateur cible possède ec2-user l'UID 1000 :

$ id ec2-user
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user)

Étape 2 : Mettre à jour les métadonnées de l'objet à l'aide de copy-object

La aws s3api copy-object commande copie l'objet sur place avec des métadonnées mises à jour. Remplacez BUCKET_NAME et OBJECT_KEY par vos valeurs.

L'--metadata-directive REPLACEoption remplace toutes les métadonnées définies par l'utilisateur sur l'objet. Inclure --content-type pour préserver le type de contenu de l'objet, car il REPLACE rétablit sa valeur par défaut (binary/octet-stream). Si vous utilisez d'autres champs de métadonnées, incluez-les dans le --metadata paramètre.

aws s3api copy-object \ --bucket BUCKET_NAME \ --key OBJECT_KEY \ --copy-source BUCKET_NAME/OBJECT_KEY \ --metadata-directive REPLACE \ --content-type CONTENT_TYPE \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Étape 3 : vérifier que les métadonnées ont été appliquées

Exécutez la commande suivante pour confirmer les métadonnées :

aws s3api head-object --bucket BUCKET_NAME --key OBJECT_KEY

La réponse inclut vos métadonnées POSIX :

{ "AcceptRanges": "bytes", "LastModified": "Mon, 18 May 2026 14:43:00 GMT", "ContentLength": 7214, "ETag": "\"abc123...\"", "ContentType": "image/png", "Metadata": { "file-owner": "1000", "file-group": "1000", "file-permissions": "0100644" } }

Étape 4 : vérifier les autorisations sur le système de fichiers S3

$ ls -ltr /mnt/s3files/
-rw-r--r--. 1 ec2-user ec2-user 7214 May 18 14:43 s3.png

Le fichier appartient désormais à root ec2-user et n'a plus besoin d'y accéder.

Configuration des métadonnées POSIX sur les nouveaux téléchargements

Vous pouvez inclure des métadonnées POSIX lorsque vous chargez des objets dans votre bucket.

Utilisation d'AWS S3 PC

aws s3 cp localfile.txt s3://BUCKET_NAME/localfile.txt \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Utilisation d'aws s3api put-object

aws s3api put-object \ --bucket BUCKET_NAME \ --key localfile.txt \ --body localfile.txt \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Vérifier les métadonnées de l'objet chargé

aws s3api head-object --bucket BUCKET_NAME --key localfile.txt

Référence aux valeurs d'autorisation

Le tableau suivant répertorie les valeurs d'autorisation POSIX courantes et leurs cas d'utilisation.

Valeur octale Mode fichier Cas d’utilisation
0100644 -rw-r--r-- Fichier standard : propriétaire read/write, autres en lecture seule
0100664 -rw-rw-r-- Fichier partagé : propriétaire et groupe read/write, autres en lecture seule
0100755 -rwxr-xr-x Exécutable : accès complet du propriétaire, lecture et exécution par les autres
0100666 -rw-rw-rw- World-writable fichier : tous les utilisateurs peuvent lire et écrire
0040755 drwxr-xr-x Répertoire standard : accès complet du propriétaire, lecture et traversée par les autres

Bonnes pratiques

Téléchargez des fichiers via le système de fichiers S3 dans la mesure du possible. S3 Files enregistre automatiquement la propriété et les autorisations du fichier sous forme de métadonnées d'objet. Aucune étape supplémentaire n'est donc requise. Lors du téléchargement direct vers le compartiment S3, incluez les métadonnées POSIX dans la commande de téléchargement pour vous assurer que la propriété et les autorisations appropriées sont définies dès le départ.