

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
<a name="api-welcome"></a>

Le guide de référence API complet pour Transfer Family est disponible sur [AWS Transfer Family API Reference](https://docs.aws.amazon.com/transfer/latest/APIReference/api-welcome.html). 

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 forme`arn: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](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html).
+ Pour la liste alphabétique des types de données, voir [Types](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Types.html).
+ Pour consulter la liste des paramètres de requête courants, reportez-vous à la page [Paramètres courants](https://docs.aws.amazon.com/transfer/latest/APIReference/CommonParameters.html).
+ Pour la description des codes d'erreur, consultez la page [Erreurs courantes](https://docs.aws.amazon.com/transfer/latest/APIReference/CommonErrors.html).

**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](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html#cli-usage-skeleton-generate).

## Effectuer des demandes d'API
<a name="making-api-requests"></a>

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](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html) 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](https://aws.amazon.com/code).

### Transfer Family a requis les en-têtes de demande
<a name="request-headers"></a>

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'[ListServers](https://docs.aws.amazon.com/transfer/latest/userguide/API_ListServers.html)opé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
<a name="tf-request-structure"></a>

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 exemple`ListServers`, 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](https://docs.aws.amazon.com/transfer/latest/userguide/API_DescribeServer.html). 

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html).

### Réponses d'erreur
<a name="RESTErrorResponses"></a>

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 .  
Certaines exceptions utilisent`message`, d'autres utilisent`Message`. 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 cas`User`.  
*Type* : chaîne

**RetryAfterSeconds**  
Le nombre de secondes à attendre avant de réessayer la commande.  
*Type* : chaîne

#### Exemples de réponses aux erreurs
<a name="RESTErrorResponsesExamples"></a>

Le corps JSON suivant est renvoyé si vous appelez l'`DescribeServer`API 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'`CreateServer`API 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'`CreateUser`API et spécifiez un utilisateur qui existe déjà.

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

### Bibliothèques disponibles
<a name="using-libraries"></a>

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](https://aws.amazon.com/tools/?id=docs_gateway)

Pour les bibliothèques et les exemples de code dans toutes les langues, voir [Exemples de code et bibliothèques](https://aws.amazon.com/code).

## Fournisseurs d'identité
<a name="identity-providers"></a>

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
<a name="conventions"></a>

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
<a name="id-formats"></a>

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
<a name="arn-formats"></a>

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

ARN du serveur  
Pour les serveurs, les ARN prennent la forme`arn: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 forme`arn: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 forme`arn: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 forme`arn: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
<a name="dns-endpoints"></a>

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
<a name="api-endpoints"></a>

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 forme`transfer.{{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
<a name="server-endpoints"></a>

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 forme`{{server-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

1. Fournir un certificat valide

1. 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](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html) dans le. *Références générales AWS*