View a markdown version of this page

AWS Transfer Family Référence d’API - 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.

AWS Transfer Family Référence d’API

Le guide de référence API complet pour Transfer Family est disponible sur AWS Transfer Family API Reference.

AWS Transfer Family est un service de transfert sécurisé que vous pouvez utiliser pour transférer des fichiers vers et depuis le stockage Amazon Simple Storage Service (Amazon S3) via les protocoles suivants :

  • Protocole de transfert de fichiers (SFTP) Secure Shell (SSH)

  • Protocole de transfert de fichiers sécurisé (FTPS)

  • Protocole de transfert de fichiers (FTP)

  • Déclaration d'applicabilité 2 (AS2)

Les serveurs, les utilisateurs et les rôles sont tous identifiés par leur Amazon Resource Name (ARN). Vous pouvez attribuer des balises, qui sont des paires clé-valeur, à des entités dotées d'un ARN. Les balises sont des métadonnées qui peuvent être utilisées pour regrouper ou rechercher ces entités. Les balises s'avèrent utiles dans le domaine de la comptabilité, notamment.

Les conventions suivantes sont respectées dans les formats AWS Transfer Family d'identification :

  • Les valeurs ServerId se présentent sous la forme s-01234567890abcdef.

  • Les valeurs SshPublicKeyId se présentent sous la forme key-01234567890abcdef.

Les formats Amazon Resource Name (ARN) se présentent sous la forme suivante :

  • Pour les serveurs, les ARN prennent la formearn:aws:transfer:region:account-id:server/server-id.

    Voici un exemple d'ARN de serveur : arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef.

  • Pour les utilisateurs, les ARN se présentent sous la forme arn:aws:transfer:region:account-id:user/server-id/username.

    Par exemple : arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1.

Les entrées DNS (points de terminaison) utilisées sont les suivantes :

  • Les points de terminaison d'API se présentent sous la forme transfer.region.amazonaws.com.

  • Les points de terminaison de serveur se présentent sous la forme server-id.server.transfer.region.amazonaws.com.

Cette référence d'interface d'API AWS Transfer Family contient la documentation d'une interface de programmation que vous pouvez utiliser pour gérer AWS Transfer Family. La structure du document de référence se présente comme suit :

  • Pour la liste alphabétique des actions d'API, voir Actions.

  • Pour la liste alphabétique des types de données, voir Types.

  • Pour consulter la liste des paramètres de requête courants, reportez-vous à la page Paramètres courants.

  • Pour la description des codes d'erreur, consultez la page Erreurs courantes.

Astuce

Plutôt que d'exécuter une commande, vous pouvez utiliser le --generate-cli-skeleton paramètre avec n'importe quel appel d'API pour générer et afficher un modèle de paramètre. Vous pouvez ensuite utiliser le modèle généré pour le personnaliser et l'utiliser comme entrée dans une commande ultérieure. Pour plus de détails, voir Générer et utiliser un fichier squelette de paramètres.

Effectuer des demandes d'API

Outre l'utilisation de la console, vous pouvez utiliser l' AWS Transfer Family API pour configurer et gérer vos serveurs par programmation. Cette section décrit les AWS Transfer Family opérations, la signature des demandes d'authentification et le traitement des erreurs. Pour plus d'informations sur les régions et les points de terminaison disponibles pour Transfer Family, consultez la section AWS Transfer Family Points de terminaison et quotas dans le Références générales AWS

Note

Vous pouvez également utiliser les AWS SDK lorsque vous développez des applications avec Transfer Family ;. Les AWS SDK pour Java, .NET et PHP intègrent l'API Transfer Family sous-jacente, simplifiant ainsi vos tâches de programmation. Pour plus d'informations sur le téléchargement des bibliothèques du SDK, consultez la section Exemples de bibliothèques de code.

Transfer Family a requis les en-têtes de demande

Cette section décrit les en-têtes obligatoires que vous devez envoyer avec chaque requête POST à AWS Transfer Family. Vous incluez les en-têtes HTTP pour identifier les informations clés relatives à la demande, y compris l’opération que vous souhaitez appeler, la date de la demande et les informations correspondant à votre autorisation en tant qu’expéditeur de la demande. Les en-têtes ne sont pas sensibles à la casse et leur ordre n’est pas important.

L'exemple suivant montre les en-têtes utilisés dans l'ListServersopération.

POST / HTTP/1.1 Host: transfer.us-east-1.amazonaws.com x-amz-target: TransferService.ListServers x-amz-date: 20220507T012034Z Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20220507/us-east-1/transfer/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de Content-Type: application/x-amz-json-1.1 Content-Length: 17 {"MaxResults":10}

Les en-têtes suivants doivent être inclus dans vos requêtes POST adressées à Transfer Family. Les en-têtes ci-dessous qui commencent par « x-amz » sont spécifiques à. AWS Tous les autres en-têtes répertoriés sont des en-têtes courants utilisés dans les transactions HTTP.

Transfer Family : saisie et signature des demandes

Toutes les entrées de demande doivent être envoyées dans le cadre de la charge utile JSON dans le corps de la demande. Pour les actions dans lesquelles tous les champs de requête sont facultatifs, par exempleListServers, vous devez toujours fournir un objet JSON vide dans le corps de la demande, tel que{}. La structure de la charge utile de Transfer Family request/response est documentée dans la référence d'API existante, par exemple DescribeServer.

Transfer Family prend en charge l'authentification à l'aide de AWS Signature Version 4. Pour plus de détails, consultez la section Signature des demandes d' AWS API.

Réponses d'erreur

Lorsqu’il y a une erreur, les informations de l’en-tête de réponse contiennent :

  • Content-Type: application/x-amz-json-1.1

  • Un code d’état HTTP approprié 4xx ou 5xx

Le corps d’une réponse d’erreur contient des informations sur l’erreur qui s’est produite. L’exemple de réponse d’erreur suivant illustre la syntaxe de sortie des éléments de réponse commune à toutes les réponses d’erreur.

{ "__type": "String", "Message": "String", <!-- Message is lowercase in some instances --> "Resource": "String", "ResourceType": "String", "RetryAfterSeconds": "String" }

Le tableau suivant explique les champs de réponse d’erreur JSON affichés dans la syntaxe précédente.

__type

L'une des exceptions à un appel d'API Transfer Family.

Type : chaîne

Message ou message

Un des messages de code d’erreur d’opération .

Note

Certaines exceptions utilisentmessage, d'autres utilisentMessage. Vous pouvez vérifier le code de votre interface afin de déterminer le cas approprié. Vous pouvez également tester chaque option pour voir laquelle fonctionne.

Type : chaîne

Ressource

La ressource pour laquelle l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà, il Resource s'agit du nom d'utilisateur de l'utilisateur existant.

Type : chaîne

ResourceType

Type de ressource pour lequel l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà, ResourceType c'est le casUser.

Type : chaîne

RetryAfterSeconds

Le nombre de secondes à attendre avant de réessayer la commande.

Type : chaîne

Exemples de réponses aux erreurs

Le corps JSON suivant est renvoyé si vous appelez l'DescribeServerAPI et spécifiez un serveur qui n'existe pas.

{ "__type": "ResourceNotFoundException", "Message": "Unknown server", "Resource": "s-11112222333344444", "ResourceType": "Server" }

Le corps JSON suivant est renvoyé si l'exécution d'une API entraîne un ralentissement.

{ "__type":"ThrottlingException", "RetryAfterSeconds":"1" }

Le corps JSON suivant est renvoyé si vous utilisez l'CreateServerAPI et que vous ne disposez pas des autorisations suffisantes pour créer un serveur Transfer Family.

{ "__type": "AccessDeniedException", "Message": "You do not have sufficient access to perform this action." }

Le corps JSON suivant est renvoyé si vous utilisez l'CreateUserAPI et spécifiez un utilisateur qui existe déjà.

{ "__type": "ResourceExistsException", "Message": "User already exists", "Resource": "Alejandro-Rosalez", "ResourceType": "User" }

Bibliothèques disponibles

AWS fournit des bibliothèques, des exemples de code, des didacticiels et d'autres ressources aux développeurs de logiciels qui préfèrent créer des applications à l'aide d'API spécifiques au langage plutôt que des outils de ligne de commande et de l'API de requête. Ces bibliothèques fournissent des fonctions de base (non incluses dans les API), telles que l'authentification des demandes, les nouvelles tentatives et la gestion des erreurs, afin de faciliter le démarrage. Voir Outils sur lesquels s'appuyer AWS

Pour les bibliothèques et les exemples de code dans toutes les langues, voir Exemples de code et bibliothèques.

Fournisseurs d'identité

AWS Transfer Family prend en charge plusieurs types de fournisseurs d'identité pour authentifier et gérer les utilisateurs. Chaque serveur ne peut utiliser qu'une seule méthode d'authentification, qui doit être sélectionnée lors de la création du serveur.

Service géré

Avec la méthode SERVICE_MANAGED d'authentification, les informations d'identification des utilisateurs sont stockées et gérées au sein de celle-ci AWS Transfer Family. Les utilisateurs sont authentifiés à l'aide de clés publiques SSH associées à leur nom d'utilisateur sur le serveur.

Chaque utilisateur peut avoir une ou plusieurs clés publiques SSH stockées dans le service. Lorsqu'un client demande une opération sur un fichier, il fournit le nom d'utilisateur et la clé privée SSH, qui sont authentifiés par rapport à la clé publique enregistrée.

Directory Service

La méthode AWS_DIRECTORY_SERVICE d'authentification vous permet d'intégrer AWS Directory Service for Microsoft Active Directory (AWS Directory Service for Microsoft Active Directory).

Cette option vous permet de gérer l'authentification et l'accès des utilisateurs par le biais de vos groupes Active Directory existants. Les utilisateurs peuvent s'authentifier à l'aide de leurs informations d'identification Active Directory.

Il existe une limite par défaut de 100 groupes Active Directory par serveur, qui peut être portée à un maximum de 150 groupes par le biais d'une augmentation de la limite de service.

Lambda

La méthode AWS_LAMBDA d'authentification vous permet de vous connecter à un fournisseur d'identité personnalisé à l'aide de AWS Lambda.

Cette option offre la flexibilité nécessaire pour s'intégrer à vos systèmes de gestion des identités existants. La fonction Lambda est chargée d'authentifier les utilisateurs et de renvoyer les politiques d'accès appropriées.

Personnalisé (API Gateway)

La méthode API_GATEWAY d'authentification (affichée sous la forme Personnalisée dans la console) vous permet d'utiliser une méthode d'authentification personnalisée qui fournit à la fois l'authentification des utilisateurs et le contrôle d'accès.

Cette méthode repose sur Amazon API Gateway pour utiliser votre appel d'API provenant de votre fournisseur d'identité afin de valider les demandes des utilisateurs. Vous pouvez utiliser cette méthode personnalisée pour authentifier les utilisateurs auprès d'un service d'annuaire, d'une name/password paire de bases de données ou d'un autre mécanisme.

Pour toutes les méthodes d'authentification, les utilisateurs se voient attribuer des politiques qui définissent leur accès aux buckets Amazon S3 ou aux systèmes de fichiers Amazon Elastic File System. Le serveur hérite de la relation de confiance de l'utilisateur par le biais d'un rôle IAM assorti d'une AssumeRole action, ce qui lui permet d'effectuer des opérations sur les fichiers pour le compte de l'utilisateur.

Conventions de dénomination

AWS Transfer Family utilise des formats standardisés pour les identifiants de ressources et les Amazon Resource Names (ARN). Il est important de comprendre ces conventions lorsque vous travaillez avec l' AWS Transfer Family API.

Formats d'identification

Les conventions suivantes sont respectées dans les formats AWS Transfer Family d'identification :

Identifiants de serveur

Les valeurs ServerId se présentent sous la forme s-01234567890abcdef.

Identifiants de clé publique SSH

Les valeurs SshPublicKeyId se présentent sous la forme key-01234567890abcdef.

Identifiants du connecteur

Les valeurs ConnectorId se présentent sous la forme c-01234567890abcdef.

ID de flux de travail

Les valeurs WorkflowId se présentent sous la forme w-01234567890abcdef.

Identifiants de profil

Les valeurs ProfileId se présentent sous la forme p-01234567890abcdef.

WebApp Identifiants

Les valeurs WebAppId se présentent sous la forme webapp-01234567890abcdef.

Formats ARN

Les formats Amazon Resource Name (ARN) se présentent sous la forme suivante :

ARN du serveur

Pour les serveurs, les ARN prennent la formearn:aws:transfer:region:account-id:server/server-id.

Exemple: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef.

ARN des utilisateurs

Pour les utilisateurs, les ARN se présentent sous la forme arn:aws:transfer:region:account-id:user/server-id/username.

Exemple: arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1.

RNA du connecteur

Pour les connecteurs, les ARN prennent la formearn:aws:transfer:region:account-id:connector/connector-id.

Exemple: arn:aws:transfer:us-east-1:123456789012:connector/c-01234567890abcdef.

ARN du flux de travail

Pour les flux de travail, les ARN prennent la formearn:aws:transfer:region:account-id:workflow/workflow-id.

Exemple: arn:aws:transfer:us-east-1:123456789012:workflow/w-01234567890abcdef.

WebApp ARN

Pour les applications Web, les ARN prennent la formearn:aws:transfer:region:account-id:webapp/webapp-id.

Exemple: arn:aws:transfer:us-east-1:123456789012:webapp/webapp-01234567890abcdef.

Vous pouvez attribuer des balises, qui sont des paires clé-valeur, à des entités dotées d'un ARN. Les balises sont des métadonnées qui peuvent être utilisées pour regrouper ou rechercher ces entités. Les balises s'avèrent utiles dans le domaine de la comptabilité, notamment.

DNS et points de terminaison

AWS Transfer Family utilise des conventions de dénomination DNS standardisées pour les points de terminaison d'API et les points de terminaison de serveur. Il est essentiel de comprendre ces points de terminaison pour configurer les clients et effectuer des appels d'API.

Points de terminaison d'API

Les points de terminaison d'API sont utilisés pour effectuer des appels d'API afin de gérer les AWS Transfer Family ressources. Ces points de terminaison prennent les formes suivantes :

Points de terminaison d'API standard

Les points de terminaison d'API standard prennent la formetransfer.region.amazonaws.com.

Exemple : transfer.us-east-1.amazonaws.com

Dual-Stack Points de terminaison de l'API

AWS Transfer Family propose des points de terminaison d'API à double pile accessibles via des requêtes IPv4 ou IPv6 :

  • https://transfer.region-code.api .aws

  • https://transfer-fips.region-code.api .aws

Points de terminaison du serveur

Les points de terminaison du serveur sont utilisés par les clients de transfert de fichiers pour se connecter aux AWS Transfer Family serveurs. Ces points de terminaison prennent les formes suivantes :

Points de terminaison de serveur standard

Les points de terminaison de serveur standard prennent la formeserver-id.server.transfer.region.amazonaws.com.

Exemple : s-01234567890abcdef.server.transfer.us-east-1.amazonaws.com

Noms d'hôtes personnalisés

Vous pouvez également configurer des noms d'hôte personnalisés pour vos AWS Transfer Family serveurs. Les noms d'hôte personnalisés peuvent être utilisés pour offrir une expérience plus conviviale ou personnalisée à vos utilisateurs.

Pour utiliser un nom d'hôte personnalisé, vous devez :

  1. Posséder le nom de domaine

  2. Fournir un certificat valide

  3. Configurer les enregistrements DNS pour qu'ils pointent vers votre AWS Transfer Family serveur

Pour une liste complète des AWS Transfer Family points de terminaison par AWS région, consultez les AWS Transfer Family points de terminaison et les quotas dans le. Références générales AWS