

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AWS Transfer Family referencia de la API
<a name="api-welcome"></a>

La guía completa de referencia de API para Transfer Family está disponible en [AWS Transfer Family API Reference](https://docs.aws.amazon.com/transfer/latest/APIReference/api-welcome.html). 

AWS Transfer Family es un servicio de transferencia segura que puede utilizar para transferir archivos desde y hacia el almacenamiento del Amazon Simple Storage Service (Amazon S3) mediante los siguientes protocolos:
+ Protocolo de File Transfer (SFTP) Secure Shell (SSH)
+ Protocolo seguro de File Transfer (FTPS)
+ Protocolo de File Transfer (FTP)
+ Declaración de aplicabilidad 2 (AS2)

Los servidores, usuarios y roles se identifican por su nombre de recurso de Amazon (ARN). Puede asignar etiquetas, que son pares clave-valor, a las entidades con un ARN. Las etiquetas son metadatos que se pueden utilizar para agrupar o buscar estas entidades. Un ejemplo donde las etiquetas resultan útiles es en contabilidad.

En los formatos de AWS Transfer Family identificación se respetan las siguientes convenciones:
+ Los valores `ServerId` adoptan la forma `s-01234567890abcdef`.
+ Los valores `SshPublicKeyId` adoptan la forma `key-01234567890abcdef`.

Los formatos del nombre de recurso de Amazon (ARN) adoptan esta forma:
+ En el caso de los servidores, los ARN adoptan la forma `arn:aws:transfer:{{region}}:{{account-id}}:server/{{server-id}}`.

  Un ejemplo de ARN de un servidor es `arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef`.
+ En el caso de los usuarios, los ARN adoptan la forma `arn:aws:transfer:{{region}}:{{account-id}}:user/{{server-id}}/{{username}}`.

  Un ejemplo es `arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1`.

Las entradas de DNS (puntos de conexión) en uso son:
+ Los puntos de enlace de la API adoptan la forma `transfer.{{region}}.amazonaws.com`.
+ Los puntos de enlace de servidor adoptan la forma `{{server-id}}.server.transfer.{{region}}.amazonaws.com`.

Esta referencia de interfaz API para AWS Transfer Family contiene documentación sobre una interfaz de programación que puede usar para administrar AWS Transfer Family. La estructura de la referencia es la siguiente:
+ Para obtener una lista alfabética de las acciones, consulte la [Actions](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html).
+ Para ver una lista de tipos de datos ordenada alfabéticamente, consulte [Types](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Types.html).
+ Para ver una lista de parámetros de consulta comunes, consulte el tema relacionado con los [parámetros comunes](https://docs.aws.amazon.com/transfer/latest/APIReference/CommonParameters.html).
+ Para ver las descripciones de los códigos de error, consulte el tema relacionado con los [errores comunes](https://docs.aws.amazon.com/transfer/latest/APIReference/CommonErrors.html).

**sugerencia**  
En lugar de ejecutar un comando, puede usar el parámetro `--generate-cli-skeleton` con cualquier llamada a la API para generar y mostrar una plantilla de parámetros. Después puede utilizar la plantilla generada para personalizarla y utilizarla como entrada en un comando posterior. Para más información, consulte [Generar y usar un archivo básico de parámetros](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html#cli-usage-skeleton-generate).

## Cómo realizar solicitudes a la API
<a name="making-api-requests"></a>

Además de usar la consola, puede usar la AWS Transfer Family API para configurar y administrar sus servidores mediante programación. En esta sección se describen las AWS Transfer Family operaciones, la firma de solicitudes para la autenticación y la gestión de errores. Para obtener más información acerca de las regiones y los puntos de conexión disponibles para Transfer Family, consulte los [puntos de conexión y cuotas de AWS Transfer Family](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html) en *Referencia general de AWS*.

**nota**  
También puede utilizar los AWS SDK al desarrollar aplicaciones con Transfer Family;. Los AWS SDK para Java, .NET y PHP envuelven la API de Transfer Family subyacente, lo que simplifica las tareas de programación. Para obtener información sobre la descarga de las bibliotecas de SDK, consulte [Código de muestra de bibliotecas](https://aws.amazon.com/code).

### Cabeceras de solicitud obligatorias para Transfer Family
<a name="request-headers"></a>

En esta sección se describen los encabezados obligatorios que debe enviar con cada solicitud POST a AWS Transfer Family. Puede incluir encabezados HTTP para identificar información clave sobre la solicitud, incluidas la operación que desea invocar, la fecha de la solicitud y la información que indica su autorización como remitente de la solicitud. Los encabezados no distinguen entre mayúsculas y minúsculas y el orden de los encabezados no es importante.

El siguiente ejemplo muestra los encabezados que se utilizan en la [ListServers](https://docs.aws.amazon.com/transfer/latest/userguide/API_ListServers.html)operación.

```
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}
```

Los siguientes son los encabezados que se deben incluir con las solicitudes POST a Transfer Family. Los encabezados que se muestran a continuación y que comienzan por «x-amz» son específicos de. AWS El resto de los encabezados que se muestran son encabezados comunes utilizados en transacciones HTTP.

### Entrada y firma de la solicitud de Transfer Family
<a name="tf-request-structure"></a>

Todas las entradas de la solicitud deben enviarse como parte de la carga útil de JSON en el cuerpo de la solicitud. En el caso de las acciones en las que todos los campos de solicitud son opcionales, por ejemplo `ListServers`, tendrá que proporcionar un objeto JSON vacío en el cuerpo de la solicitud, por ejemplo, `{}`. La estructura de la carga útil de Transfer Family request/response está documentada, por ejemplo [DescribeServer](https://docs.aws.amazon.com/transfer/latest/userguide/API_DescribeServer.html), en la referencia de la API existente. 

Transfer Family admite la autenticación mediante AWS Signature Version 4. Para obtener más información, consulte [Firmar solicitudes de API de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html).

### Respuestas de error
<a name="RESTErrorResponses"></a>

Cuando se produce un error, la información de encabezado de la respuesta contiene:
+ Content-Type: `application/x-amz-json-1.1`
+ Un código de estado HTTP `4xx` o `5xx` adecuado

El cuerpo de una respuesta de error contiene información sobre el error que se ha producido. El siguiente ejemplo de respuesta de error muestra la sintaxis de salida de los elementos de respuesta comunes a todas las respuestas de error.

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

En la tabla siguiente se explican los campos de respuesta de error JSON que se muestran en la sintaxis anterior.

**\_\_type**  
Una de las excepciones de una llamada a la API Transfer Family.   
*Tipo:* cadena

**Mensaje** o **mensaje**  
Uno de los mensajes de código de error de operación.  
Algunas excepciones usan `message` y otras usan `Message`. Puede comprobar el código de la interfaz para determinar el tipo de mayúsculas y minúsculas adecuado. Como alternativa, puede probar cada opción para ver cuál funciona.
*Tipo:* cadena

**Resource**  
El recurso para el que se invoca el error. Por ejemplo, si intenta crear un usuario que ya existe, el `Resource` es el nombre de usuario del usuario existente.  
*Tipo:* cadena

**ResourceType**  
El tipo de recurso para el que se invoca el error. Por ejemplo, si intenta crear un usuario que ya existe, el `ResourceType` es `User`.  
*Tipo:* cadena

**RetryAfterSeconds**  
La cantidad de segundos que se debe esperar antes de volver a intentar el comando.  
*Tipo:* cadena

#### Ejemplos de respuestas de error
<a name="RESTErrorResponsesExamples"></a>

Si llama a la API de `DescribeServer` y especifica un servidor que no existe, se devuelve el siguiente cuerpo de JSON.

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

Si la ejecución de una API provoca una limitación, se devuelve el siguiente cuerpo de JSON.

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

Si utiliza la API de `CreateServer` y no tiene permisos suficientes para crear un servidor de Transfer Family, se devuelve el siguiente cuerpo de JSON.

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

Si utiliza la API de `CreateUser` y especifica un usuario que ya existe, se devuelve el siguiente cuerpo de JSON.

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

### Bibliotecas disponibles
<a name="using-libraries"></a>

AWS proporciona bibliotecas, códigos de muestra, tutoriales y otros recursos para los desarrolladores de software que prefieren crear aplicaciones mediante API específicas del idioma en lugar de las herramientas de línea de comandos y la API de Query. Estas bibliotecas proporcionan funciones básicas (que no se incluyen en las API), como la autenticación de solicitudes, los reintentos de solicitudes y la gestión de errores para que se pueda comenzar más fácilmente. [Consulte Herramientas a partir de las cuales desarrollar AWS](https://aws.amazon.com/tools/?id=docs_gateway)

Para ver las bibliotecas y código de ejemplo en todos los idiomas, consulte [Código de muestra y bibliotecas](https://aws.amazon.com/code).

## Proveedores de identidad
<a name="identity-providers"></a>

AWS Transfer Family admite varios tipos de proveedores de identidad para autenticar y administrar los usuarios. Cada servidor solo puede usar un método de autenticación, que debe seleccionarse al crear el servidor.

Servicio gestionado  
Con el método de `SERVICE_MANAGED` autenticación, las credenciales de usuario se almacenan y gestionan en él AWS Transfer Family. Los usuarios se autentican mediante claves públicas SSH asociadas a su nombre de usuario en el servidor.  
Cada usuario puede tener una o más claves públicas de SSH almacenadas en el servicio. Cuando un cliente solicita una operación de archivo, proporciona el nombre de usuario y la clave privada de SSH, que se autentica con la clave pública almacenada.

Directory Service  
El método de `AWS_DIRECTORY_SERVICE` autenticación le permite integrarse con AWS Directory Service para Microsoft Active Directory (AWS Directory Service for Microsoft Active Directory).  
Esta opción le permite administrar la autenticación y el acceso de los usuarios a través de los grupos de Active Directory existentes. Los usuarios pueden autenticarse con sus credenciales de Active Directory.  
Hay un límite predeterminado de 100 grupos de Active Directory por servidor, que se puede aumentar hasta un máximo de 150 grupos mediante un aumento del límite de servicio.

Lambda  
El método de `AWS_LAMBDA` autenticación le permite conectarse a un proveedor de identidad personalizado mediante AWS Lambda.  
Esta opción proporciona flexibilidad para integrarse con sus sistemas de administración de identidades existentes. La función Lambda es responsable de autenticar a los usuarios y devolver las políticas de acceso adecuadas.

Personalizado (API Gateway)  
El método de `API_GATEWAY` autenticación (que se muestra como **personalizado** en la consola) permite utilizar un método de autenticación personalizado que proporciona tanto la autenticación del usuario como el control del acceso.  
Este método consiste en que la Amazon API Gateway utiliza una llamada a la API del proveedor de identidad para validar las solicitudes de los usuarios. Puede utilizar este método personalizado para autenticar a los usuarios mediante un servicio de directorio, un name/password par de bases de datos o algún otro mecanismo.

Para todos los métodos de autenticación, a los usuarios se les asignan políticas que definen su acceso a los buckets de Amazon S3 o a los sistemas de archivos de Amazon Elastic File System. El servidor hereda la relación de confianza del usuario a través de un rol de IAM con una `AssumeRole` acción, lo que le permite realizar operaciones de archivos en nombre del usuario.

## Convenciones de nomenclatura
<a name="conventions"></a>

AWS Transfer Family utiliza formatos estandarizados para los identificadores de recursos y los nombres de recursos de Amazon (ARN). Es importante comprender estas convenciones a la hora de trabajar con la AWS Transfer Family API.

### Formatos de ID
<a name="id-formats"></a>

En los formatos de AWS Transfer Family ID se respetan las siguientes convenciones:

ID de servidor  
Los valores `ServerId` adoptan la forma `s-01234567890abcdef`.

ID de clave pública de SSH  
Los valores `SshPublicKeyId` adoptan la forma `key-01234567890abcdef`.

ID de conector  
Los valores `ConnectorId` adoptan la forma `c-01234567890abcdef`.

ID de flujo de trabajo  
Los valores `WorkflowId` adoptan la forma `w-01234567890abcdef`.

IDs de perfil  
Los valores `ProfileId` adoptan la forma `p-01234567890abcdef`.

WebApp IDs  
Los valores `WebAppId` adoptan la forma `webapp-01234567890abcdef`.

### Formatos ARN
<a name="arn-formats"></a>

Los formatos del nombre de recurso de Amazon (ARN) adoptan esta forma:

ARN de servidor  
En el caso de los servidores, los ARN adoptan la forma `arn:aws:transfer:{{region}}:{{account-id}}:server/{{server-id}}`.  
Ejemplo: `arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef`.

ARN de usuario  
En el caso de los usuarios, los ARN adoptan la forma `arn:aws:transfer:{{region}}:{{account-id}}:user/{{server-id}}/{{username}}`.  
Ejemplo: `arn:aws:transfer:us-east-1:123456789012:user/s-01234567890abcdef/user1`.

ARN de conector  
En el caso de los conectores, los ARN adoptan la forma. `arn:aws:transfer:{{region}}:{{account-id}}:connector/{{connector-id}}`  
Ejemplo: `arn:aws:transfer:us-east-1:123456789012:connector/c-01234567890abcdef`.

Los ARN del flujo de trabajo  
En el caso de los flujos de trabajo, los ARN adoptan la forma. `arn:aws:transfer:{{region}}:{{account-id}}:workflow/{{workflow-id}}`  
Ejemplo: `arn:aws:transfer:us-east-1:123456789012:workflow/w-01234567890abcdef`.

WebApp Los ARN  
En el caso de las aplicaciones web, los ARN adoptan la forma. `arn:aws:transfer:{{region}}:{{account-id}}:webapp/{{webapp-id}}`  
Ejemplo: `arn:aws:transfer:us-east-1:123456789012:webapp/webapp-01234567890abcdef`.

Puede asignar etiquetas, que son pares clave-valor, a las entidades con un ARN. Las etiquetas son metadatos que se pueden utilizar para agrupar o buscar estas entidades. Un ejemplo donde las etiquetas resultan útiles es en contabilidad.

## DNS y puntos finales
<a name="dns-endpoints"></a>

AWS Transfer Family utiliza convenciones de nomenclatura de DNS estandarizadas tanto para los puntos finales de la API como para los puntos finales del servidor. Comprender estos puntos finales es fundamental para configurar los clientes y realizar llamadas a la API.

### Puntos de conexión de API
<a name="api-endpoints"></a>

Los puntos finales de la API se utilizan para realizar llamadas a la API con el fin de gestionar los recursos AWS Transfer Family . Estos puntos finales adoptan las siguientes formas:

Puntos finales de API estándar  
Los puntos finales de la API estándar adoptan la forma. `transfer.{{region}}.amazonaws.com`  
Ejemplo: `transfer.us-east-1.amazonaws.com`

Dual-Stack Los puntos finales de la API  
AWS Transfer Family ofrece puntos de enlace de API de doble pila a los que se puede acceder mediante solicitudes de IPv4 o IPv6:  
+ https://transfer.*{{region-code}}*.api.aws
+ https://transfer-fips.*{{region-code}}*.api.aws

### Puntos finales del servidor
<a name="server-endpoints"></a>

Los clientes de transferencia de archivos utilizan los puntos finales del servidor para conectarse a AWS Transfer Family los servidores. Estos puntos finales adoptan las siguientes formas:

Puntos finales de servidor estándar  
Los puntos finales de servidor estándar adoptan la forma. `{{server-id}}.server.transfer.{{region}}.amazonaws.com`  
Ejemplo: `s-01234567890abcdef.server.transfer.us-east-1.amazonaws.com`

Nombres de host personalizados  
También puede configurar nombres de host personalizados para sus servidores. AWS Transfer Family Los nombres de host personalizados se pueden usar para proporcionar una experiencia más fácil de usar o de marca para sus usuarios.  
Para usar un nombre de host personalizado, debes:  

1. Ser propietario del nombre de dominio

1. Proporcione un certificado válido

1. Configure los registros DNS para que apunten a su AWS Transfer Family servidor

Para obtener una lista completa de los AWS Transfer Family puntos finales por AWS región, consulte los [AWS Transfer Family puntos finales y las cuotas](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html) en. *Referencia general de AWS*