Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Comment puis-je configurer mon serveur AWS Transfer Family afin qu’il utilise un compartiment Amazon S3 situé dans un autre compte AWS ?
Je souhaite que mon serveur AWS Transfer Family du compte A accède à un compartiment Amazon Simple Storage Service (Amazon S3) sur un autre compte, à savoir le compte B. Je souhaite configurer mon serveur avec un accès intercompte au compartiment.
Brève description
Procédez comme suit :
- Créez un rôle Gestion des identités et des accès AWS (AWS IAM) dans le compte A avec accès au compartiment.
- Mettez à jour la politique de compartiment pour accorder un accès intercompte au rôle IAM dans le compte B.
- Créez un utilisateur de serveur Transfer Family configuré avec le rôle IAM dans le compte A.
- Vérifiez que l'utilisateur du serveur Transfer Family du compte A peut accéder au compartiment S3 du compte B.
- (Facultatif) Définissez la propriété des objets S3 sur le propriétaire du compartiment préféré dans le compte B.
Remarque : La console AWS Transfer Family affiche uniquement les compartiments Amazon S3 d'un même compte. Pour utiliser votre serveur Transfer Family avec un compartiment dans un autre compte, vous devez utiliser l'interface de ligne de commande AWS (AWS CLI) ou un kit AWS SDK.
Résolution
Créer un rôle IAM dans le compte A avec accès au compartiment
Créez un rôle IAM pour les utilisateurs de votre serveur. Pour la politique IAM du rôle, utilisez ce qui suit :
Remarque : Remplacez destination-DOC-EXAMPLE-BUCKET par le nom du compartiment S3 auquel vous souhaitez que votre serveur accède.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingBucketReadandWriteandDelete", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET" ] } ] }
Remarque : Transfer Family requiert l'autorisation s3:PutObjectAcl pour effectuer des chargements S3 intercompte.
Après avoir créé le rôle IAM, obtenez son ID en exécutant la commande get-role, comme suit :
$ aws iam get-role --role-name "ROLE_NAME"
Vous aurez besoin de l'ID de rôle pour l'étape suivante.
Mettre à jour la politique de compartiment pour accorder un accès intercompte au rôle IAM dans le compte B
Modifiez la politique de compartiment de destination pour accorder l'accès au rôle IAM que vous avez créé. Vous pouvez utiliser une politique de compartiment similaire à cet exemple :
Remarque : Remplacez arn:aws:iam::123456789012:root par l’Amazon Resource Name (ARN) du compte auquel appartient votre serveur. Remplacez destination-DOC-EXAMPLE-BUCKET par le nom du compartiment. Remplacez AROA1234567890 par l'ID du rôle IAM que vous avez créé.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BucketPolicyForTransferFamily", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*" ], "Condition": { "StringLike": { "aws:userId": "AROA1234567890:*" } } } ] }
L'élément Condition de cet exemple de politique est facultatif. Incluez l'élément Condition pour accorder l'accès au compartiment uniquement au rôle IAM que vous spécifiez. Vous pouvez également supprimer l'élément pour accorder l'accès à tous les rôles et utilisateurs IAM depuis le compte auquel appartient votre serveur.
Créer un utilisateur de serveur Transfer Family configuré avec le rôle IAM dans le compte A
1. Générez des clés SSH pour votre serveur Transfer Family.
2. Obtenez l'ID de votre serveur.
3. Exécutez la commande create-user à l'aide de l'AWS CLI. Pour --server-id, saisissez l'ID de votre serveur. Pour --role, saisissez l’ARN du rôle IAM que vous avez créé. Pour --ssh-public-key-body, saisissez le contenu du fichier .pub que vous avez généré lors de la création de clés SSH.
$ aws transfer create-user --user-name "MY_SERVER_USER_NAME" --server-id "MY_SERVER_ID" --role "MY_IAM_ROLE_ARN" --home-directory "/destination-DOC-EXAMPLE-BUCKET/MY_SERVER_USER_NAME" --ssh-public-key-body "CONTENTS_OF_MY_SSH_.PUB_FILE"
Remarque : Si des erreurs surviennent lors de l'exécution de commandes de l'interface de ligne de commande AWS, vérifiez que vous utilisez la version la plus récente de l'AWS CLI.
La commande renvoie l'ID du serveur et l'utilisateur que vous avez créé :
{ "ServerId": "MY_SERVER_ID", "UserName": "MY_SERVER_USER_NAME" }
Important : Pour limiter l'accès de l'utilisateur du serveur à son répertoire personnel uniquement, créez une politique de réduction de portée dans IAM. Puis, modifiez les propriétés de l'utilisateur du serveur pour appliquer la politique de réduction de portée que vous avez créée.
Vérifier que l'utilisateur du serveur Transfer Family du compte A peut accéder au compartiment du compte B
1. Connectez-vous à votre serveur en tant qu'utilisateur créé par vous-même. Par exemple, cette commande OpenSSH permet de se connecter à un serveur SFTP :
$ sftp -i myserveruser MY_SERVER_USER_NAME@MY_SERVER_ID.server.transfer.us-east-1.amazonaws.com
2. À titre de test, répertoriez le répertoire personnel du compartiment. Si vous utilisez OpenSSH, exécutez cette commande :
$ ls
Si la commande renvoie le répertoire de base, l'utilisateur de votre serveur dispose d'un accès intercompte au compartiment.
(Facultatif) Définir la propriété des objets S3 sur le propriétaire du compartiment préféré dans le compte B
Par défaut, un objet Amazon S3 appartient au compte AWS qui l’a chargé. Cela signifie que les objets chargés dans le compartiment de destination appartiennent par défaut au compte du serveur source.
Pour activer le compte de destination qui détiendra automatiquement les objets provenant de chargements intercompte, définissez la propriété des objets S3 du compartiment de destination sur le propriétaire préféré du compartiment. Ensuite, tous les nouveaux objets chargés via le serveur AWS Transfer Family sont automatiquement détenus par le compte du compartiment de destination.
Informations connexes
CreateUser (Guide de l'utilisateur d’AWS Transfer Family)
Ajouter un utilisateur (Guide de l'utilisateur d’AWS Transfer Family)
- Balises
- AWS Transfer Family
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a un an
- demandé il y a 3 ans
- Réponse acceptéedemandé il y a 11 jours
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 4 mois