Configuration et utilisation des connecteurs SFTP - 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.

Configuration et utilisation des connecteurs SFTP

L'objectif d'un connecteur est d'établir une relation entre votre système AWS de stockage et le serveur SFTP d'un partenaire. Vous pouvez envoyer des fichiers depuis Amazon S3 vers une destination externe appartenant à un partenaire. Vous pouvez également utiliser un connecteur SFTP pour récupérer des fichiers depuis le serveur SFTP d'un partenaire.

Ce didacticiel explique comment configurer un connecteur SFTP avec des types de sortie gérés par le service et VPC_LATTICE, puis transférer des fichiers entre le stockage Amazon S3 et un serveur SFTP.

Un connecteur SFTP récupère les informations d'identification SFTP AWS Secrets Manager pour s'authentifier sur un serveur SFTP distant et établir une connexion. Le connecteur envoie des fichiers au serveur distant ou en extrait des fichiers, puis les stocke dans Amazon S3. Vous pouvez choisir entre une sortie gérée par service (à l'aide d'une infrastructure AWS gérée) ou une sortie VPC (routage via votre VPC à l'aide d'un accès aux ressources inter-VPC). Un rôle IAM est utilisé pour autoriser l'accès au compartiment Amazon S3 et aux informations d'identification stockées dans Secrets Manager. Et vous pouvez vous connecter à Amazon CloudWatch.

Schéma d'architecture illustrant la manière dont le connecteur SFTP interagit avec Secrets Manager, Amazon S3, CloudWatch les journaux, les rôles IAM et le serveur SFTP distant.

Le billet de blog suivant fournit une architecture de référence pour créer un flux de travail MFT à l'aide de connecteurs SFTP, y compris le chiffrement de fichiers à l'aide de PGP avant de les envoyer à un serveur SFTP distant à l'aide de connecteurs SFTP : Architecture de transferts de fichiers gérés sécurisés et conformes avec AWS Transfer Family les connecteurs SFTP et le chiffrement PGP.

Types de sorties de connecteurs

Les connecteurs SFTP prennent en charge deux types de sortie qui déterminent la manière dont votre connecteur achemine le trafic vers les serveurs SFTP distants :

  • SERVICE_MANAGED (par défaut) : utilise l'infrastructure gérée par AWS Transfer Family avec des adresses IP statiques pour les connexions sortantes.

  • VPC : achemine le trafic via votre VPC à l'aide de l'accès aux ressources inter-VPC, permettant ainsi la connectivité des points de terminaison privés et l'utilisation de vos propres passerelles NAT.

Ce didacticiel couvre les deux types de sortie. Choisissez le type de sortie VPC lorsque vous devez :

  • Connectez-vous à des serveurs SFTP privés dans votre VPC (adresses IP privées)

  • Connectez-vous aux serveurs SFTP locaux via Direct Connect ou VPN

  • Acheminez le trafic des points de terminaison publics via votre VPC pour les contrôles de sécurité

  • Utilisez vos propres adresses IP élastiques pour les connexions sortantes

Étape 1 : créer les ressources de soutien nécessaires

Vous pouvez utiliser des connecteurs SFTP pour copier des fichiers entre Amazon S3 et n'importe quel serveur SFTP distant. Pour ce didacticiel, nous utilisons un AWS Transfer Family serveur comme serveur SFTP distant. Nous devons créer et configurer les ressources suivantes :

Pour les connecteurs de type sortie VPC, vous avez également besoin de :

Création de compartiments Amazon S3

Pour créer un compartiment Amazon S3
  1. Connectez-vous à la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/s3/.

  2. Choisissez une région et entrez un nom.

    Pour ce didacticiel, notre bucket est dedansUS East (N. Virginia) us-east-1, et son nom l'estsftp-server-storage-east.

  3. Acceptez les valeurs par défaut et choisissez Create bucket.

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

Créez un rôle IAM avec les autorisations nécessaires

Pour le rôle d'accès, créez une politique avec les autorisations suivantes.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters" } ] }

Remplacez les éléments comme suit :

  • Caramzn-s3-demo-bucket, le didacticiel utilisesftp-server-storage-east.

  • Carregion, le didacticiel utiliseus-east-1.

  • Pouraccount-id, utilisez votre Compte AWS identifiant.

  • Car SecretName-6RandomCharacters nous sommes là using sftp-connector1 pour le nom (vous aurez vos propres six caractères aléatoires pour votre secret).

Vous devez également vous assurer que ce rôle contient une relation de confiance qui permet au connecteur d'accéder à vos ressources lorsqu'il répond aux demandes de transfert de vos utilisateurs. Pour plus de détails sur l'établissement d'une relation de confiance, voirÉtape 1 : Établir une relation d'approbation.

Note

Pour en savoir plus sur le rôle que nous utilisons dans le didacticiel, consultezUtilisateur et rôle d'accès combinés.

Créez et stockez un secret dans AWS Secrets Manager

Nous devons enregistrer un secret dans Secrets Manager afin de stocker les informations d'identification utilisateur de votre connecteur SFTP. Vous pouvez utiliser un mot de passe, une clé privée SSH ou les deux. Pour le didacticiel, nous utilisons une clé privée.

Note

Lorsque vous stockez des secrets dans Secrets Manager, des frais Compte AWS vous sont facturés. Pour plus d’informations sur la tarification, consultez la section AWS Secrets Manager Tarification.

Avant de commencer la procédure de stockage du secret, récupérez et formatez votre clé privée. La clé privée doit correspondre à la clé publique configurée pour l'utilisateur sur le serveur SFTP distant. Pour notre tutoriel, la clé privée doit correspondre à la clé publique qui est stockée pour notre utilisateur de test sur le serveur SFTP Transfer Family que nous utilisons comme serveur distant.

Pour ce faire, exécutez la commande suivante :

jq -sR . path-to-private-key-file

Par exemple, si votre fichier de clé privée se trouve dans~/.ssh/sftp-testuser-privatekey, la commande est la suivante.

jq -sR . ~/.ssh/sftp-testuser-privatekey

Cela affiche la clé dans le format correct (avec des caractères de nouvelle ligne intégrés) sur la sortie standard. Copiez ce texte quelque part, car vous devez le coller dans la procédure suivante (étape 6).

Pour stocker les informations d'identification de l'utilisateur dans Secrets Manager pour un connecteur SFTP
  1. Connectez-vous à la AWS Secrets Manager console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/secretsmanager/.

  2. Dans le panneau de navigation de gauche, choisissez Secrets.

  3. Sur la page Secrets, choisissez Enregistrer un nouveau secret.

  4. Sur la page Choisir un type de secret, pour Type de secret, choisissez Autre type de secret.

  5. Dans la section Paires clé/valeur, choisissez l'onglet clé/valeur.

    • Clé — EntréeUsername.

    • valeur — Entrez le nom de notre utilisateur,sftp-testuser.

  6. Pour saisir la clé, nous vous recommandons d'utiliser l'onglet Texte en clair.

    1. Choisissez Ajouter une ligne, puis entrezPrivateKey.

    2. Choisissez l'onglet Plaintext. Le champ contient désormais le texte suivant :

      {"Username":"sftp-testuser","PrivateKey":""}
    3. Collez le texte de votre clé privée (enregistré précédemment) entre guillemets vides (« »).

      Votre écran doit se présenter comme suit (les données clés sont grisées).

      Le secret en texte brut, indiquant le nom d'utilisateur et la clé privée.
  7. Choisissez Suivant.

  8. Sur la page Configurer le secret, entrez le nom de votre secret. Pour ce didacticiel, nous nommons le secretaws/transfer/sftp-connector1.

  9. Choisissez Next, puis acceptez les valeurs par défaut sur la page Configurer la rotation. Ensuite, sélectionnez Suivant.

  10. Sur la page Révision, choisissez Store pour créer et stocker le secret.

Création d'une passerelle de ressources (type de sortie VPC uniquement)

Pour les connecteurs de type sortie VPC, vous devez créer une passerelle de ressources dans votre VPC. La passerelle de ressources sert de point d'entrée pour l'accès aux ressources entre VPC.

Pour créer une passerelle de ressources
  1. Exécutez la commande suivante pour créer une passerelle de ressources (remplacez l'ID VPC et le sous-réseau IDs par vos valeurs) :

    aws vpc-lattice create-resource-gateway \ --name my-sftp-resource-gateway \ --vpc-identifier vpc-12345678 \ --subnet-ids subnet-12345678 subnet-87654321
    Note

    Les passerelles de ressources nécessitent des sous-réseaux dans au moins 2 zones de disponibilité.

  2. Notez l'ID de passerelle de ressources indiqué dans la réponse à utiliser à l'étape suivante.

Création d'une configuration de ressource (type de sortie VPC uniquement)

Créez une configuration de ressources qui pointe vers votre serveur SFTP. Il peut s'agir d'une adresse IP privée pour les serveurs de votre VPC ou d'un nom DNS public pour les serveurs externes. Pour plus d'informations sur les configurations des ressources, consultez la section Configurations des ressources dans le guide de l'utilisateur Amazon VPC Lattice.

Pour créer une configuration de ressources
  1. Pour un serveur SFTP privé, exécutez :

    aws vpc-lattice create-resource-configuration \ --name my-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition ipResource={ipAddress="10.0.1.100"}
  2. Pour un serveur SFTP public (nom DNS uniquement), exécutez :

    aws vpc-lattice create-resource-configuration \ --name my-public-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition dnsResource={domainName="sftp.example.com"}
    Note

    Les points de terminaison publics doivent utiliser des noms DNS et non des adresses IP.

  3. Notez l'ARN de configuration des ressources indiqué dans la réponse à utiliser lors de la création du connecteur.

Étape 2 : créer et tester un connecteur SFTP

Dans cette section, nous créons un connecteur SFTP qui utilise toutes les ressources que nous avons créées précédemment. Pour en savoir plus, consultez Création de connecteurs SFTP.

Pour créer un connecteur SFTP
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, choisissez SFTP Connectors, puis Create SFTP connector.

  3. Pour le type de sortie, choisissez l'une des options suivantes :

    • Service géré (par défaut) : utilise l'infrastructure gérée par AWS Transfer Family avec des adresses IP statiques pour les connexions sortantes.

    • Réseau VPC : achemine le trafic via votre VPC à l'aide de l'accès aux ressources inter-VPC. Choisissez cette option pour la connectivité des terminaux privés ou pour utiliser vos propres passerelles NAT.

    Important

    Vous ne pouvez pas modifier le type de sortie après avoir créé le connecteur. Choisissez avec soin en fonction de vos besoins en matière de connectivité.

  4. Dans la section Configuration du connecteur, fournissez les informations suivantes :

    • Pour l'URL, entrez l'URL du serveur SFTP distant. Pour le didacticiel, nous saisissons l'URL du serveur Transfer Family que nous utilisons comme serveur SFTP distant.

      sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

      1111aaaa2222bbbb3Remplacez-le par votre identifiant de serveur Transfer Family.

    • Pour le rôle Access, entrez le rôle que nous avons créé précédemment,sftp-connector-role.

    • Pour l'ARN de configuration des ressources (type de sortie VPC Lattice uniquement), entrez l'ARN de la configuration des ressources que vous avez créée précédemment :

      arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678
    • Pour le rôle Logging, choisissez un rôle qui inclut une politique de confiance transfer.amazonaws.com dans l'élément Principal.

      Conseil : Outre l'ajout de Transfer Family en tant qu'entité de confiance, vous pouvez ajouter la politique AWSTransferLoggingAccess AWS gérée au rôle. Cette politique est décrite en détail dans AWSTransferLoggingAccess.

    La console du connecteur SFTP Transfer Family, qui affiche les paramètres de configuration du connecteur.
  5. Dans la section Configuration SFTP, fournissez les informations suivantes :

    • Pour les informations d'identification du connecteur, choisissez le nom de votre ressource Secrets Manager qui contient les informations d'identification SFTP. Pour le didacticiel, choisissezaws/transfer/sftp-connector1.

    • Pour les clés d'hôte fiables, collez la partie publique de la clé d'hôte. Vous pouvez récupérer cette clé en lançant ssh-keyscan votre commande sur votre serveur SFTP. Pour plus de détails sur le formatage et le stockage de la clé d'hôte fiable, consultez la documentation sur les types de SftpConnectorConfigdonnées.

    • Pour le nombre maximal de connexions simultanées, sélectionnez une valeur entière comprise entre 1 et 5 : la valeur par défaut est 5.

    La console du connecteur SFTP Transfer Family, qui affiche les paramètres de configuration SFTP.
  6. Après avoir confirmé tous vos paramètres, choisissez Create connector pour créer le connecteur SFTP.

Vous pouvez également créer des connecteurs à l'aide du AWS Command Line Interface.

  • Pour créer un connecteur SFTP avec une sortie gérée par service, exécutez la commande suivante :

    aws transfer create-connector \ --url "sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..."
  • Pour créer un connecteur SFTP avec une sortie basée sur VPC, exécutez la commande suivante :

    aws transfer create-connector \ --url "sftp://my.sftp.server.com:22" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn="arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678",PortNumber=22}

Après avoir créé un connecteur SFTP, nous vous recommandons de le tester avant de tenter de transférer des fichiers à l'aide de votre nouveau connecteur.

Note

Pour les connecteurs de type sortie VPC, la résolution DNS peut prendre plusieurs minutes après la création. Pendant ce temps, l'état du connecteur sera PENDING et TestConnection retournera « Connecteur non disponible ». Attendez que le statut change ACTIVE avant de tenter de transférer des fichiers.

Test a connector using the console
Pour tester un connecteur SFTP
  1. Ouvrez la AWS Transfer Family console à l'adresse https://console.aws.amazon.com/transfer/.

  2. Dans le volet de navigation de gauche, choisissez SFTP Connectors, puis sélectionnez un connecteur.

  3. Dans le menu Actions, choisissez Tester la connexion.

    La console Transfer Family, qui affiche un connecteur SFTP sélectionné, et l'action Test connection Test connection mise en surbrillance.

Le système renvoie un message indiquant si le test est réussi ou non. Si le test échoue, le système affiche un message d'erreur basé sur la raison de l'échec du test.

Le panneau de connexion de test du connecteur SFTP indique un test réussi.
Le panneau de connexion du connecteur SFTP montre un échec du test : le message d'erreur indique que le rôle d'accès du connecteur est incorrect.
Test a connector using the CLI

Pour tester un connecteur à l'aide de AWS Command Line Interface, exécutez la commande suivante à l'invite de commande (connector-idremplacez-la par votre identifiant de connecteur réel) :

aws transfer test-connection --connector-id c-connector-id

Si le test est réussi, les lignes suivantes sont renvoyées :

{ "Status": "OK", "StatusMessage": "Connection succeeded" }

Si le test échoue, vous recevez un message d'erreur descriptif, par exemple :

{ "Status": "ERROR", "StatusMessage": "Unable to assume the configured access role" }

Lorsque vous décrivez un connecteur de type sortie VPC, la réponse inclut les nouveaux champs :

{ "Connector": { "AccessRole": "arn:aws:iam::219573224423:role/sftp-connector-role", "Arn": "arn:aws:transfer:us-east-1:219573224423:connector/c-5dfa309ccabf40759", "ConnectorId": "c-5dfa309ccabf40759", "Status": "ACTIVE", "EgressConfig": { "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:025066256552:resourceconfiguration/rcfg-079259b27a357a190" }, "EgressType": "VPC", "ServiceManagedEgressIpAddresses": null, "SftpConfig": { "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ], "UserSecretId": "aws/transfer/sftp-connector1" }, "Url": "sftp://my.sftp.server.com:22" } }

Notez que cela ServiceManagedEgressIpAddresses est nul pour les connecteurs de type sortie VPC, car le trafic passe par votre VPC plutôt que par l'infrastructure gérée. AWS

Étape 3 : Envoyer et récupérer des fichiers à l'aide du connecteur SFTP

Pour des raisons de simplicité, nous partons du principe que vous avez déjà des fichiers dans votre compartiment Amazon S3.

Note

Le didacticiel utilise des compartiments Amazon S3 pour les emplacements de stockage source et de destination. Si votre serveur SFTP n'utilise pas le stockage Amazon S3, vous pouvez remplacer le chemin par sftp-server-storage-east un chemin d'accès aux emplacements de fichiers accessibles depuis votre serveur SFTP, quel que soit l'endroit indiqué dans les commandes suivantes.

  • Nous envoyons un fichier nommé SEND-to-SERVER.txt depuis le stockage Amazon S3 au serveur SFTP.

  • Nous récupérons un fichier nommé RETRIEVE-to-S3.txt depuis le serveur SFTP vers le stockage Amazon S3.

Note

Dans les commandes suivantes, remplacez par connector-id l'ID de votre connecteur.

Tout d'abord, nous envoyons un fichier depuis notre compartiment Amazon S3 vers le serveur SFTP distant. À partir d'une invite de commande, exécutez la commande suivante :

aws transfer start-file-transfer --connector-id c-connector-id --send-file-paths "/sftp-server-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"

Votre sftp-server-storage-east seau devrait maintenant ressembler à ceci.

Le bucket du serveur SFTP contenant le nouveau fichier transféré.

Si le fichier ne s'affiche pas comme prévu, consultez vos CloudWatch journaux.

Pour consulter vos CloudWatch journaux
  1. Ouvrez la CloudWatch console Amazon à l'adresse https://console.aws.amazon.com/cloudwatch/

  2. Sélectionnez Groupes de journaux dans le menu de navigation de gauche.

  3. Entrez votre identifiant de connecteur dans la barre de recherche pour trouver vos journaux.

  4. Sélectionnez le flux de journal renvoyé par la recherche.

  5. Développez l'entrée de journal la plus récente.

En cas de succès, l'entrée dans le journal ressemble à ce qui suit :

{ "operation": "SEND", "timestamp": "2023-12-18T15:26:57.346283Z", "connector-id": "connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/SEND-to-SERVER.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:26:56.915864Z", "end-time": "2023-12-18T15:26:57.298122Z", "account-id": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id:connector/connector-id", "remote-directory-path": "/sftp-server-storage-east/incoming" }

Si le transfert de fichier a échoué, l'entrée du journal contient un message d'erreur qui précise le problème. Les causes courantes d'erreurs sont les problèmes liés aux autorisations IAM et les chemins de fichiers incorrects.

Ensuite, nous récupérons un fichier du serveur SFTP dans un compartiment Amazon S3. À partir d'une invite de commande, exécutez la commande suivante :

aws transfer start-file-transfer --connector-id c-connector-id --retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/sftp-server-storage-east/incoming"

Si le transfert réussit, votre compartiment Amazon S3 contient le fichier transféré, comme indiqué ici.

Le compartiment Amazon S3 contenant le nouveau fichier transféré.

En cas de succès, l'entrée dans le journal ressemble à ce qui suit :

{ "operation": "RETRIEVE", "timestamp": "2023-12-18T15:36:40.017800Z", "connector-id": "c-connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://s-server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:36:39.727626Z", "end-time": "2023-12-18T15:36:39.895726Z", "account-id": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id:connector/c-connector-id", "local-directory-path": "/sftp-server-storage-east/incoming" }

Résolution des problèmes liés aux connecteurs de sortie VPC

Si vous rencontrez des problèmes avec les connecteurs de sortie VPC, vérifiez les points suivants :

  • L'état du connecteur est EN ATTENTE : la résolution DNS des connecteurs VPC peut prendre plusieurs minutes. Attendez que le statut devienne ACTIF avant de tenter de vous connecter.

  • Délais de connexion : vérifiez que les groupes de sécurité autorisent le trafic sur le port 22 entre vos sous-réseaux Resource Gateway et le serveur SFTP cible.

  • Erreurs de configuration des ressources : assurez-vous que votre configuration des ressources pointe vers la bonne adresse IP ou le bon nom DNS, et que la passerelle de ressources se trouve dans le même VPC que votre serveur SFTP (pour les points de terminaison privés). Pour plus d’informations, consultez Configurations de ressources dans le Guide de l’utilisateur Amazon VPC Lattice.

  • Problèmes liés aux points de terminaison publics : pour les points de terminaison publics, assurez-vous d'utiliser un nom DNS, et non une adresse IP, dans la configuration de vos ressources. Vérifiez que votre VPC dispose d'une passerelle NAT pour l'accès Internet sortant.

  • Disponibilité AZ : les passerelles de ressources nécessitent des sous-réseaux dans au moins 2 zones de disponibilité. Tous ne sont pas AZs compatibles avec le VPC Lattice. Vérifiez s'il est compatible AZs dans votre région.

Considérations financières relatives au type de sortie VPC :

  • VPC Lattice facture 0,006 $/Go pour le traitement des données en tant que fournisseur de ressources (facturé directement par VPC Lattice)

  • AWS Transfer Family absorbe les coûts de consommation de ressources de 0,01 $/Go (1 premier Po)

  • Pour les points de terminaison publics via VPC, des frais supplémentaires de passerelle NAT et de transfert de données peuvent s'appliquer

  • Aucun frais Transfer Family supplémentaire au-delà des frais de traitement des données standard de 0,40 $/Go

Procédures pour créer un serveur Transfer Family à utiliser comme serveur SFTP distant

Nous décrivons ci-dessous les étapes à suivre pour créer un serveur Transfer Family qui servira de serveur SFTP distant pour ce didacticiel. Notez ce qui suit :

  • Nous utilisons un serveur Transfer Family pour représenter un serveur SFTP distant. Les utilisateurs classiques d'un connecteur SFTP disposent de leur propre serveur SFTP distant. Consultez Création d'un serveur SFTP Transfer Family et d'un utilisateur.

  • Comme nous utilisons un serveur Transfer Family, nous utilisons également un utilisateur SFTP géré par service. Et, par souci de simplicité, nous avons combiné les autorisations dont cet utilisateur a besoin pour accéder au serveur Transfer Family avec les autorisations dont il a besoin pour utiliser notre connecteur. Encore une fois, la plupart des cas d'utilisation du connecteur SFTP ont un utilisateur SFTP distinct qui n'est pas associé à un serveur Transfer Family. Consultez Création d'un serveur SFTP Transfer Family et d'un utilisateur.

  • Dans le cadre du didacticiel, étant donné que nous utilisons le stockage Amazon S3 pour notre serveur SFTP distant, nous devons créer un deuxième compartiment afin de pouvoir transférer des fichiers d'un compartiment à un autre. sftp-server-storage-east

Création d'un serveur SFTP Transfer Family et d'un utilisateur

La plupart des utilisateurs n'auront pas besoin de créer un serveur SFTP Transfer Family ni un utilisateur, car vous avez déjà un serveur SFTP avec des utilisateurs, et vous pouvez utiliser ce serveur pour transférer des fichiers depuis et vers. Cependant, pour ce didacticiel, par souci de simplicité, nous utilisons un serveur Transfer Family qui fonctionne comme serveur SFTP distant.

Suivez la procédure décrite dans Création d'un serveur compatible SFTP pour créer un serveur et Étape 3 : Ajouter un utilisateur géré par le service ajouter un utilisateur. Voici les informations utilisateur que nous utilisons pour le didacticiel :

  • Créez votre utilisateur géré par le service,. sftp-testuser

    • Définissez le répertoire de base sur /sftp-server-storage-east/sftp-testuser

    • Lorsque vous créez l'utilisateur, vous stockez une clé publique. Plus tard, lorsque vous créerez le secret dans Secrets Manager, vous devrez fournir la clé privée correspondante.

  • Rôle :sftp-connector-role. Pour le didacticiel, nous utilisons le même rôle IAM pour notre utilisateur SFTP et pour accéder au connecteur SFTP. Lorsque vous créez des connecteurs pour votre organisation, vous pouvez avoir des rôles d'utilisateur et d'accès distincts.

  • Clé d'hôte du serveur : vous devez utiliser la clé d'hôte du serveur lorsque vous créez le connecteur. Vous pouvez récupérer cette clé en exécutant la ssh-keyscan commande pour votre serveur. Par exemple, si l'ID de votre serveur est présent s-1111aaaa2222bbbb3 et que son point de terminaison se trouveus-east-1, la commande suivante permet de récupérer la clé d'hôte du serveur :

    ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

    Copiez ce texte quelque part, car vous devez le coller dans la Étape 2 : créer et tester un connecteur SFTP procédure.

Utilisateur et rôle d'accès combinés

Pour le didacticiel, nous utilisons un seul rôle combiné. Nous utilisons ce rôle à la fois pour notre utilisateur SFTP et pour accéder au connecteur. L'exemple suivant contient les détails de ce rôle, au cas où vous souhaiteriez effectuer les tâches du didacticiel.

L'exemple suivant accorde les autorisations nécessaires pour accéder à nos deux compartiments dans Amazon S3 et au secret nommé aws/transfer/sftp-connector1 stocké dans Secrets Manager. Pour le didacticiel, ce rôle est nommésftp-connector-role.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::sftp-server-storage-east", "arn:aws:s3:::sftp-server-storage-east" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": [ "arn:aws:s3:::sftp-server-storage-east/*", "arn:aws:s3:::sftp-server-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:aws/transfer/sftp-connector1-6RandomCharacters" } ] }

Pour plus de détails sur la création de rôles pour Transfer Family, suivez la procédure décrite dans Créer un rôle d'utilisateur pour créer un rôle.