Configurer le stockage à utiliser avec AWS Transfer Family - AWS Transfer Family

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.

Configurer le stockage à utiliser avec AWS Transfer Family

Cette rubrique décrit les options de stockage que vous pouvez utiliser avec AWS Transfer Family. Vous pouvez utiliser Amazon S3 ou Amazon EFS comme espace de stockage pour vos serveurs Transfer Family.

Configuration d'un compartiment Amazon S3

AWS Transfer Family accède à votre compartiment Amazon S3 pour répondre aux demandes de transfert de vos utilisateurs. Vous devez donc fournir un compartiment Amazon S3 dans le cadre de la configuration de votre serveur compatible avec le protocole de transfert de fichiers. Vous pouvez utiliser un compartiment existant ou en créer un nouveau.

Note

Vous n'êtes pas obligé d'utiliser un serveur et un compartiment Amazon S3 situés dans la même AWS région, mais nous vous recommandons de le faire en tant que bonne pratique.

Lorsque vous configurez vos utilisateurs, vous leur attribuez à chacun un rôle IAM. Ce rôle détermine le niveau d'accès dont ils disposent à votre compartiment Amazon S3.

Pour plus d'informations sur la création d'un nouveau compartiment, consultez Comment créer un compartiment S3 ? dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Note

Vous pouvez utiliser Amazon S3 Object Lock pour empêcher le remplacement d'objets pendant une durée déterminée ou indéfiniment. Cela fonctionne de la même manière avec Transfer Family qu'avec les autres services. Si un objet existe et est protégé, il est interdit d'écrire dans ce fichier ou de le supprimer. Pour plus de détails sur Amazon S3 Object Lock, consultez la section Utilisation d'Amazon S3 Object Lock dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Points d'accès Amazon S3

AWS Transfer Family prend en charge les points d'accès Amazon S3, une fonctionnalité d'Amazon S3 qui vous permet de gérer facilement l'accès granulaire aux ensembles de données partagés. Vous pouvez utiliser des alias de point d'accès S3 partout où vous utilisez un nom de compartiment S3. Vous pouvez créer des centaines de points d'accès dans Amazon S3 pour les utilisateurs disposant d'autorisations différentes pour accéder aux données partagées dans un compartiment Amazon S3.

Par exemple, vous pouvez utiliser des points d'accès pour permettre à trois équipes différentes d'accéder au même ensemble de données partagé où une équipe peut lire les données de S3, une deuxième équipe peut écrire des données dans S3 et la troisième équipe peut lire, écrire et supprimer des données de S3. Pour mettre en œuvre un contrôle d'accès granulaire tel que mentionné ci-dessus, vous pouvez créer un point d'accès S3 contenant une politique qui donne un accès asymétrique aux différentes équipes. Vous pouvez utiliser les points d'accès S3 avec votre serveur Transfer Family pour obtenir un contrôle d'accès précis, sans créer de politique de compartiment S3 complexe couvrant des centaines de cas d'utilisation. Pour en savoir plus sur l'utilisation des points d'accès S3 avec un serveur Transfer Family, consultez le billet de blog Enhance data access control with AWS Transfer Family et Amazon S3.

Note

AWS Transfer Family ne prend actuellement pas en charge les points d'accès multirégionaux Amazon S3.

HeadObject Comportement d'Amazon S3

Note

Lorsque vous créez ou mettez à jour un serveur Transfer Family, vous pouvez optimiser les performances de vos annuaires Amazon S3, ce qui élimine les HeadObject appels.

Dans Amazon S3, les compartiments et les objets sont les ressources principales, et les objets sont stockés dans des compartiments. Amazon S3 peut imiter un système de fichiers hiérarchique, mais peut parfois se comporter différemment d'un système de fichiers classique. Par exemple, les annuaires ne constituent pas un concept de premier ordre dans Amazon S3, mais sont basés sur des clés d'objet. AWS Transfer Family déduit un chemin de répertoire en divisant la clé d'un objet par la barre oblique (/), en traitant le dernier élément comme nom de fichier, puis en regroupant les noms de fichiers portant le même préfixe sous le même chemin. Les objets de zéro octet sont créés pour représenter le chemin d'un dossier lorsque vous créez un répertoire vide à l'aide mkdir ou à l'aide de la console Amazon S3. La touche correspondant à ces objets se termine par une barre oblique. Ces objets de zéro octet sont décrits dans la section Organisation des objets dans la console Amazon S3 à l'aide de dossiers du guide de l'utilisateur Amazon S3.

Lorsque vous exécutez une ls commande et que certains résultats correspondent à des objets Amazon S3 sans octet (les touches de ces objets se terminent par une barre oblique), Transfer Family émet une HeadObject demande pour chacun de ces objets (voir HeadObjectle manuel Amazon Simple Storage Service API Reference pour plus de détails). Cela peut entraîner les problèmes suivants lorsque vous utilisez Amazon S3 comme espace de stockage avec Transfer Family.

Autoriser uniquement l'écriture et la liste des fichiers

Dans certains cas, vous souhaiterez peut-être n'offrir qu'un accès en écriture à vos objets Amazon S3. Par exemple, vous pouvez autoriser l'accès pour écrire (ou télécharger) et répertorier des objets dans un bucket, mais pas pour lire (télécharger) des objets. Pour exécuter ls des mkdir commandes à l'aide de clients de transfert de fichiers, vous devez disposer de l'Amazon S3 ListObjects et PutObject des autorisations. Toutefois, lorsque Transfer Family doit effectuer un HeadObject appel pour écrire ou répertorier des fichiers, l'appel échoue avec le message d'erreur « Accès refusé », car cet appel nécessite une GetObject autorisation.

Note

Lorsque vous créez ou mettez à jour un serveur Transfer Family, vous pouvez optimiser les performances de vos annuaires Amazon S3, ce qui élimine les HeadObject appels.

Dans ce cas, vous pouvez accorder l'accès en ajoutant une condition de politique AWS Identity and Access Management (IAM) qui ajoute l'GetObjectautorisation uniquement pour les objets se terminant par une barre oblique ()/. Cette condition empêche les GetObject appels sur des fichiers (afin qu'ils ne puissent pas être lus), mais permet à l'utilisateur de répertorier et de parcourir des dossiers. L'exemple de politique suivant offre uniquement un accès en écriture et en liste à vos compartiments Amazon S3. Pour utiliser cette politique, DOC-EXAMPLE-BUCKET remplacez-la par le nom de votre compartiment.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListing", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }, { "Sid": "AllowReadWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "DenyIfNotFolder", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "NotResource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/" ] } ] }
Note

Cette règle n'autorise pas les utilisateurs à ajouter des fichiers. En d'autres termes, un utilisateur auquel cette politique est affectée ne peut pas ouvrir de fichiers pour y ajouter du contenu ou pour les modifier. De plus, si votre cas d'utilisation nécessite un HeadObject appel avant de télécharger un fichier, cette politique ne fonctionnera pas pour vous.

Grand nombre d'objets de zéro octet provoquant des problèmes de latence

Si vos compartiments Amazon S3 contiennent un grand nombre de ces objets de zéro octet, Transfer Family émet de nombreux HeadObject appels, ce qui peut entraîner des retards de traitement. La solution recommandée pour résoudre ce problème consiste à activer les annuaires optimisés afin de réduire la latence.

Supposons, par exemple, que vous vous rendiez dans votre répertoire personnel et que vous disposiez de 10 000 sous-répertoires. En d'autres termes, votre compartiment Amazon S3 contient 10 000 dossiers. Dans ce scénario, si vous exécutez la commande ls (list), l'opération de liste prend entre six et huit minutes. Toutefois, si vous optimisez vos répertoires, cette opération ne prend que quelques secondes. Vous définissez cette option dans l'écran Configurer les détails supplémentaires lors de la procédure de création ou de mise à jour du serveur. Ces procédures sont détaillées dans la Configuration d'un point de terminaison de serveur SFTP, FTPS ou FTP rubrique.

Note

Les clients de l'interface graphique peuvent émettre une ls commande indépendante de votre volonté. Il est donc important d'activer ce paramètre si possible.

Si vous n'optimisez pas ou ne pouvez pas optimiser vos répertoires, une autre solution à ce problème consiste à supprimer tous vos objets de zéro octet. Notez ce qui suit :

  • Les répertoires vides n'existeront plus. Les répertoires n'existent que parce que leurs noms figurent dans la clé d'un objet.

  • Cela n'empêche pas quelqu'un d'appeler mkdir et de tout casser à nouveau. Vous pouvez atténuer ce problème en élaborant une politique qui empêche la création de répertoires.

  • Certains scénarios utilisent ces objets de 0 octet. Par exemple, vous avez une structure telle que /inboxes/customer1000 et le répertoire de la boîte de réception est nettoyé tous les jours.

Enfin, une autre solution possible consiste à limiter le nombre d'objets visibles par le biais d'une condition de politique afin de réduire le nombre d'HeadObjectappels. Pour que cette solution soit viable, vous devez accepter le fait que vous ne pourrez peut-être afficher qu'un ensemble limité de tous vos sous-répertoires.

Configuration d'un système de fichiers Amazon EFS

AWS Transfer Family accède à Amazon Elastic File System (Amazon EFS) pour traiter les demandes de transfert de vos utilisateurs. Vous devez donc fournir un système de fichiers Amazon EFS dans le cadre de la configuration de votre serveur compatible avec le protocole de transfert de fichiers. Vous pouvez utiliser un système de fichiers existant ou en créer un nouveau.

Notez ce qui suit :

  • Lorsque vous utilisez un serveur Transfer Family et un système de fichiers Amazon EFS, le serveur et le système de fichiers doivent se trouver dans le même emplacement Région AWS.

  • Il n'est pas nécessaire que le serveur et le système de fichiers soient sur le même compte. Si le serveur et le système de fichiers ne sont pas dans le même compte, la politique du système de fichiers doit accorder une autorisation explicite au rôle d'utilisateur.

    Pour plus d'informations sur la configuration de plusieurs comptes, consultez la section Gestion des AWS comptes de votre organisation dans le Guide de AWS Organizations l'utilisateur.

  • Lorsque vous configurez vos utilisateurs, vous leur attribuez à chacun un rôle IAM. Ce rôle détermine le niveau d'accès dont ils disposent à votre système de fichiers Amazon EFS.

  • Pour en savoir plus sur le montage d'un système de fichiers Amazon EFS, consultez Montage de systèmes de fichiers Amazon EFS.

Pour en savoir plus sur la façon dont AWS Transfer Family Amazon EFS fonctionne ensemble, consultez la section Utilisation AWS Transfer Family pour accéder aux fichiers de votre système de fichiers Amazon EFS dans le guide de l'utilisateur Amazon Elastic File System.

Propriété des fichiers Amazon EFS

Amazon EFS utilise le modèle d'autorisation de fichier POSIX (Portable Operating System Interface) pour représenter la propriété des fichiers.

Dans POSIX, les utilisateurs du système sont classés en trois classes d'autorisations distinctes : lorsque vous autorisez un utilisateur à accéder à des fichiers stockés dans un système de fichiers Amazon EFS en utilisant AWS Transfer Family, vous devez lui attribuer un « profil POSIX ». Ce profil est utilisé pour déterminer leur accès aux fichiers et aux répertoires du système de fichiers Amazon EFS.

  • Utilisateur (u) : propriétaire du fichier ou du répertoire. Généralement, le créateur d'un fichier ou d'un répertoire en est également le propriétaire.

  • Groupe (g) : ensemble d'utilisateurs qui ont besoin d'un accès identique aux fichiers et aux répertoires qu'ils partagent.

  • Autres (o) : tous les autres utilisateurs ayant accès au système, à l'exception du propriétaire et des membres du groupe. Cette classe d'autorisation est également appelée « publique ».

Dans le modèle d'autorisation POSIX, chaque objet du système de fichiers (fichiers, répertoires, liens symboliques, canaux nommés et sockets) est associé aux trois ensembles d'autorisations mentionnés précédemment. Un mode de style Unix est associé aux objets Amazon EFS. La valeur de ce mode définit les autorisations permettant d’effectuer des actions au niveau de cet objet.

En outre, sur les systèmes de type Unix, les utilisateurs et les groupes sont mappées à des identificateurs numériques, lesquels sont utilisés par Amazon EFS pour représenter la propriété de fichier. Pour Amazon EFS, les objets appartiennent à un seul propriétaire et à un seul groupe. Amazon EFS utilise les identifiants numériques mappés pour vérifier les autorisations lorsqu’un utilisateur tente d’accéder à un objet du système de fichiers.

Configurer les utilisateurs Amazon EFS pour Transfer Family

Avant de configurer vos utilisateurs Amazon EFS, vous pouvez effectuer l'une des opérations suivantes :

Note

Les serveurs Transfer Family ne prennent pas en charge les points d'accès Amazon EFS pour définir les autorisations POSIX. Les profils POSIX des utilisateurs de Transfer Family (décrits dans la section précédente) offrent la possibilité de définir des autorisations POSIX. Ces autorisations sont définies au niveau de l'utilisateur, pour un accès granulaire, en fonction de l'UID, du GID et des GID secondaires.

Configuration des utilisateurs de Transfer Family sur Amazon EFS

Transfer Family met en correspondance les utilisateurs avec l'UID/GID et les répertoires que vous spécifiez. Si les UID/GID/répertoires n'existent pas déjà dans EFS, vous devez les créer avant de les attribuer dans Transfer to a user. Les détails relatifs à la création d'utilisateurs Amazon EFS sont décrits dans la section Utilisation des utilisateurs, des groupes et des autorisations au niveau du système de fichiers réseau (NFS) du guide de l'utilisateur Amazon Elastic File System.

Étapes pour configurer les utilisateurs Amazon EFS dans Transfer Family
  1. Mappez l'UID et le GID EFS de votre utilisateur dans Transfer Family à l'PosixProfileaide des champs.

  2. Si vous souhaitez que l'utilisateur commence dans un dossier spécifique lors de la connexion, vous pouvez spécifier le répertoire EFS sous le HomeDirectorychamp.

Vous pouvez automatiser le processus à l'aide d'une CloudWatch règle et d'une fonction Lambda. Pour un exemple de fonction Lambda qui interagit avec EFS, consultez la section Utilisation d'Amazon EFS pour vos applications AWS Lambda sans serveur.

En outre, vous pouvez configurer des répertoires logiques pour vos utilisateurs de Transfer Family. Pour plus de détails, consultez la Configuration de répertoires logiques pour Amazon EFS section de cette Utilisation de répertoires logiques pour simplifier vos structures de répertoires Transfer Family rubrique.

Création d'un utilisateur root Amazon EFS

Si votre organisation accepte que vous autorisiez l'accès des utilisateurs root via SFTP/FTPS pour la configuration de vos utilisateurs, vous pouvez créer un utilisateur dont l'UID et le GID sont 0 (utilisateur root), puis utiliser cet utilisateur root pour créer des dossiers et attribuer des propriétaires d'ID POSIX aux autres utilisateurs. L'avantage de cette option est qu'il n'est pas nécessaire de monter le système de fichiers Amazon EFS.

Suivez les étapes décrites dans Ajouter des utilisateurs gérés par le service Amazon EFS et entrez 0 (zéro) pour l'ID utilisateur et l'ID de groupe.

Astuce

Ne laissez pas ce compte de superutilisateur exister plus longtemps que nécessaire. Ou, si vous conservez le compte utilisateur root, assurez-vous qu'il est bien protégé.

Commandes Amazon EFS prises en charge

Les commandes suivantes sont prises en charge par Amazon EFS pour AWS Transfer Family.

  • cd

  • ls/dir

  • pwd

  • put

  • get

  • rename

  • chown: Seul le root (c'est-à-dire les utilisateurs avec uid=0) peut modifier la propriété et les autorisations des fichiers et des répertoires.

  • chmod: Seul le superutilisateur peut modifier la propriété et les autorisations des fichiers et des répertoires.

  • chgrp: Pris en charge soit pour le root, soit pour le propriétaire du fichier, qui ne peut modifier le groupe d'un fichier que pour en faire l'un de ses groupes secondaires.

  • ln -s/symlink

  • mkdir

  • rm/delete

  • rmdir

  • chmtime