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.
Utilisation de répertoires logiques pour simplifier vos structures de répertoires Transfer Family
Les répertoires logiques simplifient la structure des répertoires de votre AWS Transfer Family serveur. Avec les répertoires logiques, vous pouvez créer une structure de répertoire virtuel avec des noms faciles à utiliser par les utilisateurs lorsqu'ils se connectent à votre compartiment Amazon S3 ou à votre système de fichiers Amazon EFS. Cela empêche les utilisateurs de voir les chemins de répertoire, les noms des compartiments et les noms des systèmes de fichiers réels.
Note
Vous devez utiliser des politiques de session afin que vos utilisateurs finaux ne puissent effectuer que les opérations que vous les autorisez à effectuer.
Vous devez utiliser des répertoires logiques pour créer un répertoire virtuel convivial pour vos utilisateurs finaux et supprimer les noms de compartiments. Les mappages de répertoires logiques permettent uniquement aux utilisateurs d'accéder à leurs chemins logiques et sous-répertoires désignés, et interdisent les chemins relatifs qui traversent les racines logiques.
Transfer Family valide tous les chemins susceptibles d'inclure des éléments relatifs et bloque activement la résolution de ces chemins avant que nous ne les transmettions à Amazon S3 ; cela empêche vos utilisateurs d'aller au-delà de leurs mappages logiques.
Même si Transfer Family empêche vos utilisateurs finaux d'accéder à des répertoires situés en dehors de leur répertoire logique, nous vous recommandons également d'utiliser des rôles ou des politiques de session uniques pour appliquer le moindre privilège au niveau du stockage.
Comprendre le chroot et la structure des répertoires
Une opération chroot vous permet de définir le répertoire racine d'un utilisateur à n'importe quel emplacement de votre hiérarchie de stockage. Cela limite les utilisateurs à leur répertoire d'accueil ou racine configuré, empêchant ainsi l'accès aux répertoires de niveau supérieur.
Prenons le cas où un utilisateur Amazon S3 est limité àamzn-s3-demo-bucket/home/${transfer:UserName}
. Sans chroot, certains clients peuvent autoriser les utilisateurs à accéder à /amzn-s3-demo-bucket/home, ce qui nécessite une déconnexion et une connexion pour retourner dans leur répertoire approprié. L'exécution d'une opération de chroot permet d'éviter ce problème.
Vous pouvez créer des structures de répertoires personnalisées dans plusieurs compartiments et préfixes. Cela est utile si votre flux de travail nécessite une structure de répertoire spécifique que les préfixes de compartiment ne peuvent fournir à eux seuls. Vous pouvez également créer un lien vers plusieurs emplacements non contigus dans Amazon S3, comme pour créer un lien symbolique dans un système de fichiers Linux où le chemin de votre répertoire fait référence à un emplacement différent dans le système de fichiers.
Règles d'utilisation des répertoires logiques
Cette section décrit certaines règles et autres considérations relatives à l'utilisation de répertoires logiques.
Limites de mappage
-
Un seul mappage est autorisé lorsqu'il l'
Entry
est"/"
(aucun chevauchement de chemins n'est autorisé). -
Les annuaires logiques prennent en charge des mappages allant jusqu'à 2,1 Mo pour les utilisateurs IDP et AD personnalisés, et 2 000 entrées pour les utilisateurs gérés par des services. Vous pouvez calculer la taille de vos mappages comme suit :
-
Rédigez un mappage type dans le format
{"Entry":"/
, oùentry-path
","Target":"/target-path
"}
etentry-path
sont les valeurs réelles que vous allez utiliser.target-path
-
Comptez les caractères de cette chaîne, puis ajoutez-en un (1).
-
Multipliez ce nombre par le nombre approximatif de mappages dont vous disposez pour votre serveur.
Si le nombre que vous avez estimé à l'étape 3 est inférieur à 2,1 Mo, vos mappages se situent dans la limite acceptable.
-
Exigences relatives au chemin cible
-
Utilisez
${transfer:UserName}
une variable si le chemin du bucket ou du système de fichiers a été paramétré en fonction du nom d'utilisateur. -
Les cibles peuvent être configurées pour pointer vers différents compartiments ou systèmes de fichiers Amazon S3, à condition que le rôle IAM associé dispose des autorisations nécessaires pour accéder à ces emplacements de stockage.
-
Toutes les cibles doivent commencer par une barre oblique (
/
) mais ne peuvent pas se terminer par une barre oblique. Par exemple,/amzn-s3-demo-bucket/images
c'est correct, tandis queamzn-s3-demo-bucket/images
ce n'est/amzn-s3-demo-bucket/images/
pas le cas.
Considérations relatives au stockage
-
Amazon S3 est un magasin d'objets dans lequel les dossiers n'existent qu'en tant que concept virtuel. Lorsque vous utilisez le stockage Amazon S3, Transfer Family indique les préfixes sous forme de répertoires dans les opérations STAT, même s'il n'existe aucun objet de zéro octet marqué d'une barre oblique. Un objet zéro octet approprié avec une barre oblique finale est également signalé comme un répertoire dans les opérations STAT. Ce comportement est décrit dans la section Organisation des objets dans la console Amazon S3 à l'aide de dossiers du guide de l'utilisateur d'Amazon Simple Storage Service.
-
Pour les applications qui doivent faire la distinction entre les fichiers et les dossiers, utilisez Amazon Elastic File System (Amazon EFS) comme option de stockage Transfer Family.
-
Si vous spécifiez des valeurs de répertoire logiques pour votre utilisateur, le paramètre que vous utilisez dépend du type d'utilisateur :
-
Pour les utilisateurs gérés par des services, fournissez des valeurs de répertoire logiques dans.
HomeDirectoryMappings
-
Pour les utilisateurs de fournisseurs d'identité personnalisés, fournissez des valeurs de répertoire logiques dans
HomeDirectoryDetails
.
-
Valeurs de l'annuaire des utilisateurs
-
Le paramètre permettant de spécifier des valeurs de répertoire logiques dépend de votre type d'utilisateur :
-
Pour les utilisateurs gérés par des services, fournissez des valeurs de répertoire logiques dans.
HomeDirectoryMappings
-
Pour les utilisateurs de fournisseurs d'identité personnalisés, fournissez des valeurs de répertoire logiques dans
HomeDirectoryDetails
.
-
-
Lorsque vous utilisez LOGICAL HomeDirectoryType, vous pouvez spécifier une HomeDirectory valeur pour les mises en œuvre des utilisateurs gérés par le service, de l'accès Active Directory et du fournisseur d'identité personnalisé lorsqu' HomeDirectoryDetails elles sont fournies dans la réponse. Si ce n'est pas spécifié, la HomeDirectory valeur par défaut est.
/
Pour plus de détails sur la façon d'implémenter des répertoires logiques, consultezImplémentation de répertoires logiques.
Configuration de répertoires logiques pour Amazon EFS
Si votre serveur Transfer Family utilise Amazon EFS, le répertoire personnel de l'utilisateur doit être créé avec un accès en lecture et en écriture pour que l'utilisateur puisse travailler dans son répertoire de base logique. L'utilisateur ne peut pas créer ce répertoire lui-même, car il n'aurait pas les autorisations nécessaires pour mkdir
accéder à son répertoire de base logique.
Si le répertoire personnel de l'utilisateur n'existe pas et que celui-ci exécute une ls
commande, le système répond comme suit :
sftp> ls remote readdir ("/"): No such file or directory
Un utilisateur disposant d'un accès administratif au répertoire parent doit créer le répertoire de base logique de l'utilisateur.
AWS Lambda Réponse personnalisée
Vous pouvez utiliser des répertoires logiques dotés d'une fonction Lambda qui se connecte à votre fournisseur d'identité personnalisé. Pour ce faire, dans votre fonction Lambda, vous spécifiez les Target
valeurs HomeDirectoryType
asLOGICAL
, add Entry
et pour le HomeDirectoryDetails
paramètre. Par exemple :
HomeDirectoryType: "LOGICAL" HomeDirectoryDetails: "[{\"Entry\": \"/\", \"Target\": \"/amzn-s3-demo-bucket/theRealFolder"}]"
Le code suivant est un exemple de réponse réussie à un appel d'authentification Lambda personnalisé.
aws transfer test-identity-provider \ --server-id s-1234567890abcdef0 \ --user-name myuser { "Url": "https://a1b2c3d4e5.execute-api.us-east-2.amazonaws.com/prod/servers/s-1234567890abcdef0/users/myuser/config", "Message": "", "Response": "{\"Role\": \"arn:aws:iam::123456789012:role/bob-usa-role\", \"HomeDirectoryType\": \"LOGICAL\", \"HomeDirectoryDetails\": \"[{\\\"Entry\\\":\\\"/myhome\\\",\\\"Target\\\":\\\"/amzn-s3-demo-bucket/theRealFolder\\\"}]\", \"PublicKeys\": \"[ssh-rsa myrsapubkey]\"}", "StatusCode": 200 }
Note
La "Url":
ligne n'est renvoyée que si vous utilisez une méthode API Gateway comme fournisseur d'identité personnalisé.