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.
Envío y recepción de AS2 mensajes
En esta sección se describen los procesos de envío y recepción de AS2 mensajes. También proporciona detalles sobre los nombres de los archivos y las ubicaciones asociadas a AS2 los mensajes.
En la siguiente tabla se enumeran los algoritmos de cifrado disponibles para AS2 los mensajes y cuándo se pueden utilizar.
| Algoritmo de cifrado | HTTP | HTTPS | Notas |
|---|---|---|---|
| AES128_CBC | Sí | Sí | |
| AES192_CBC | Sí | Sí | |
| AES256_CBC | Sí | Sí | |
| DES_ _CBC EDE3 | Sí | Sí | Utilice este algoritmo únicamente si debe admitir un cliente antiguo que lo requiera, ya que es un algoritmo de cifrado débil. |
| NONE | No | Sí | Si envía mensajes a un servidor de Transfer Family, solo puede seleccionar NONE si utiliza un Application Load Balancer (ALB). |
Temas
Proceso de recepción AS2 de mensajes
El proceso entrante se define como un mensaje o un archivo que se transfiere a tu AWS Transfer Family servidor. La secuencia de los mensajes entrantes es la siguiente:
-
Un proceso automatizado o de administración inicia una transferencia de AS2 archivos en el AS2 servidor remoto del socio.
-
El AS2 servidor remoto del socio firma y cifra el contenido del archivo y, a continuación, envía una solicitud HTTP POST a un punto final de AS2 entrada alojado en Transfer Family.
-
Mediante los valores configurados para el servidor, los socios, los certificados y el acuerdo, Transfer Family descifra y verifica la AS2 carga útil. El contenido del archivo se almacena en el almacén de archivos configurado de Amazon S3.
-
La respuesta MDN firmada se devuelve en línea con la respuesta HTTP o de forma asíncrona mediante una solicitud HTTP POST independiente al servidor de origen.
-
Se escribe un registro de auditoría a Amazon CloudWatch con detalles sobre el intercambio.
-
El archivo descifrado está disponible en una carpeta llamada
inbox/processed.
Enviar y recibir AS2 mensajes a través de HTTPS
En esta sección se describe cómo configurar un servidor Transfer Family que utilice el AS2 protocolo para enviar y recibir mensajes a través de HTTPS.
Envía AS2 mensajes a través de HTTPS
Para enviar AS2 mensajes mediante HTTPS, cree un conector con la siguiente información:
-
Para la URL, especifique una URL HTTPS
-
Para el algoritmo de cifrado, seleccione cualquiera de los algoritmos disponibles.
nota
Para enviar mensajes a un servidor Transfer Family sin utilizar el cifrado (es decir, si selecciona el algoritmo
NONEde cifrado), debe utilizar un Application Load Balancer (ALB). -
Proporcione los valores restantes para el conector tal y como se describe en Configure AS2 los conectores.
Reciba AS2 mensajes a través de HTTPS
AWS Transfer Family AS2 Los servidores actualmente solo proporcionan transporte HTTP a través del puerto 5080. Sin embargo, puede finalizar el TLS en un balanceador de carga de redes o aplicaciones frente al punto final de VPC del servidor Transfer Family mediante el puerto y el certificado que prefiera. Con este enfoque, puedes hacer que los AS2 mensajes entrantes usen HTTPS.
Requisitos previos
-
La VPC debe estar en el mismo lugar que su Región de AWS servidor Transfer Family.
-
Las subredes de la VPC deben estar dentro de las zonas de disponibilidad en las que desee utilizar el servidor.
nota
Cada servidor Transfer Family admite hasta tres zonas de disponibilidad.
-
Asigne hasta tres direcciones IP elásticas en la misma región que su servidor. O puede optar por traer su propio intervalo de direcciones IP (BYOIP).
nota
La cantidad de direcciones IP elásticas debe coincidir con la cantidad de zonas de disponibilidad que utilice con los puntos de conexión del servidor.
Puede configurar un Network Load Balance (NLB) o un Application Load Balancer (ALB). En la siguiente tabla se enumeran las ventajas y desventajas de cada enfoque.
En la siguiente tabla se muestran las diferencias en las capacidades cuando se utiliza un NLB y un ALB para finalizar el TLS.
| Característica | Network Load Balancer (NLB) | Application Load Balancer (ALB) |
|---|---|---|
| Latencia | Menor latencia, ya que funciona en la capa de red. | Mayor latencia, ya que funciona en la capa de aplicación. |
| Compatibilidad con direcciones IP estáticas | Puede adjuntar direcciones IP elásticas que pueden ser estáticas. | No se pueden adjuntar direcciones IP elásticas: proporciona un dominio cuyas direcciones IP subyacentes pueden cambiar. |
| Enrutamiento avanzado | No admite el enrutamiento avanzado. | Admite el enrutamiento avanzado. Puede inyectar el Este encabezado se describe en X-Forwarded-Proto en el sitio web developer.mozilla.org |
| Terminación de TLS/SSL | Soporta la terminación TLS/SSL | Soporta TLS/SSL la terminación |
| TLS mutuo (mTLS) | Actualmente, Transfer Family no admite el uso de un NLB para los mTLs | Support for mTLS |
Tras configurar el equilibrador de carga, los clientes se comunican con el equilibrador de carga a través del receptor de puertos personalizado. A continuación, el equilibrador de carga se comunica con el servidor a través del puerto 5080.
Creación de un grupo de destino
-
Tras seleccionar Crear grupo de destino en el procedimiento anterior, accederá a la página Especificar los detalles del grupo para un nuevo grupo objetivo.
-
En la sección Configuración básica, introduzca la siguiente información:
-
En Elegir un tipo de destino, elija Direcciones IP.
-
En Nombre del grupo de destino, escriba el nombre del grupo de destino.
-
En cuanto al protocolo, su selección depende de si utiliza un ALB o un NLB.
-
Para un Network Load Balancer (NLB), elija TCP
-
Para un Application Load Balancer (ALB), elija HTTP
-
-
En Puerto, escriba
5080. -
En IP address type ((Tipo de dirección IP), elija IPv4.
-
En el caso de la VPC, elija la VPC que creó para el servidor Transfer Family. AS2
-
-
En la sección Health checks, elige el protocolo Health Check.
-
Para un ALB, elija HTTP
-
Para un NLB, elija TCP
-
-
Elija Siguiente.
-
En la página Registrar objetivos, escriba la siguiente información:
-
Para Network, confirme que esté especificada la VPC que creó para el AS2 servidor Transfer Family.
-
Como IPv4 dirección, introduce la IPv4 dirección privada de los puntos finales de tu AS2 servidor Transfer Family.
Si tiene más de un punto final para su servidor, elija Agregar IPv4 dirección para agregar otra fila para ingresar otra IPv4 dirección. Repita este proceso hasta que haya introducido las direcciones IP privadas de todos los puntos de conexión del servidor.
-
Asegúrese de que Puertos esté configurado en
5080. -
Seleccione Incluir como pendiente a continuación para añadir sus entradas a la sección Revisar objetivos.
-
-
En la sección Revisar objetivos, revise sus objetivos de IP.
-
Seleccione Crear grupo de destino y, a continuación, vuelva al procedimiento anterior para crear su NLB e introduzca el nuevo grupo objetivo donde se indica.
Prueba del acceso al servidor desde una dirección IP elástica
Conéctese al servidor a través del puerto personalizado mediante una dirección IP elástica o el nombre DNS del equilibrador de carga de red.
importante
Gestione el acceso al servidor desde las direcciones IP de los clientes mediante las listas de control de acceso a la red (red ACLs) de las subredes configuradas en el balanceador de cargas. Los permisos de las ACL de red se establecen a nivel de subred, por lo que las reglas se aplican a todos los recursos que utilizan la subred. No puede controlar el acceso desde las direcciones IP de los clientes mediante grupos de seguridad, ya que el tipo de destino del equilibrador de carga se establece en Direcciones IP en lugar de en instancias. Por tanto, el equilibrador de carga no conserva las direcciones IP de origen. Si las comprobaciones de estado del equilibrador de carga de red fallan, significa que el equilibrador de carga no puede conectarse al punto de conexión del servidor. Para solucionar este problema, compruebe lo siguiente:
-
Confirme que el grupo de seguridad asociado al punto de conexión del
servidor permita las conexiones entrantes desde las subredes que están configuradas en el equilibrador de carga. El equilibrador de carga debe poder conectarse al punto de conexión del servidor a través del puerto 5080. -
Confirme que el Estado esté en línea.
Transferencia de archivos mediante un conector AS2
AS2 los conectores establecen una relación entre los socios comerciales para la transferencia de AS2 mensajes desde un servidor Transfer Family a un destino externo propiedad del socio.
Puedes usar Transfer Family para enviar AS2 mensajes haciendo referencia al ID del conector y a las rutas de acceso a los archivos, como se muestra en el siguiente comando start-file-transfer AWS Command Line Interface (AWS CLI):
aws transfer start-file-transfer --connector-id c-1234567890abcdef0\ --send-file-paths "/amzn-s3-demo-source-bucket/myfile1.txt" "/amzn-s3-demo-source-bucket/myfile2.txt"
Para obtener los detalles de los conectores, ejecute el siguiente comando:
aws transfer list-connectors
El list-connectors comando devuelve el conector IDs y los nombres de recursos de Amazon (ARNs) de los conectores. URLs
Para devolver las propiedades de un conector concreto, ejecute el siguiente comando con el ID que desee usar:
aws transfer describe-connector --connector-idyour-connector-id
El describe-connector comando devuelve todas las propiedades del conector, incluidas su URL, funciones, perfiles, avisos de disposición de mensajes (MDNs), etiquetas y métricas de monitoreo.
Para confirmar que el socio recibió correctamente los archivos, consulte los archivos JSON y MDN. Estos archivos se nombran de acuerdo con las convenciones descritas en Nombres y ubicaciones de los archivos. Si configuró una función de registro al crear el conector, también puede comprobar el estado de los AS2 mensajes en sus CloudWatch registros.
Para ver los detalles AS2 del conector, consulteVea los detalles AS2 del conector. Para obtener más información sobre la creación de AS2 conectores, consulteConfigure AS2 los conectores.
Para enviar un mensaje AS2 saliente
El proceso saliente se define como un mensaje o un archivo que se envía AWS a un cliente o servicio externo. La secuencia de los mensajes salientes es la siguiente:
-
Un administrador llama al comando
start-file-transferAWS Command Line Interface (AWS CLI) o a la operación de laStartFileTransferAPI. Esta operación hace referencia a una configuraciónconnector. -
Transfer Family detecta una nueva solicitud de archivo y localiza el archivo. El archivo está comprimido, firmado y cifrado.
-
Un cliente HTTP de transferencia realiza una solicitud HTTP POST para transmitir la carga útil al AS2 servidor del socio.
-
El proceso devuelve la respuesta MDN firmada, en línea con la respuesta HTTP (MDN síncrona).
-
A medida que el archivo pasa de una fase a otra de la transmisión, el proceso entrega al cliente el recibo de respuesta MDN y los detalles del procesamiento.
-
El AS2 servidor remoto pone el archivo descifrado y verificado a disposición del administrador del socio.
AS2 el procesamiento es compatible con muchos de los protocolos RFC 4130 y se centra en los casos de uso comunes y en la integración con las implementaciones de servidores AS2 compatibles existentes. Para más información sobre las configuraciones compatibles, consulte AS2 configuraciones.
Nombres y ubicaciones de los archivos
En esta sección se analizan las convenciones de nomenclatura de archivos para las transferencias. AS2
En cuanto a las transferencias de archivos entrantes, tenga en cuenta lo siguiente:
-
El directorio base se especifica en un acuerdo. El directorio base es el nombre del bucket de Amazon S3 combinado con un prefijo, si lo hubiera. Por ejemplo,
/.amzn-s3-demo-bucket/AS2-folder -
Si un archivo entrante se procesa correctamente, el archivo (y el archivo JSON correspondiente) se guardan en la carpeta
/processed. Por ejemplo,/.amzn-s3-demo-bucket/AS2-folder/processedEl archivo JSON contiene los siguientes campos:
-
agreement-id -
as2-from -
as2-to -
as2-message-id -
transfer-id -
client-ip -
connector-id -
failure-message -
file-path -
message-subject -
mdn-message-id -
mdn-subject -
requester-file-name -
requester-content-type -
server-id -
status-code -
failure-code -
transfer-size
-
-
Si un archivo entrante no se puede procesar correctamente, el archivo (y el archivo JSON correspondiente) se guardan en la carpeta
/failed. Por ejemplo,/amzn-s3-demo-bucket/AS2-folder/failed. -
El archivo transferido se guarda en la carpeta
processedcomo. Es decir, el identificador del mensaje de la transferencia se añade al nombre del archivo, antes de su extensión original.original_filename.messageId.original_extension -
Se crea un archivo JSON y se guarda como
. Además de añadir el identificador del mensaje, la cadenaoriginal_filename.messageId.original_extension.json.jsonse añade al nombre del archivo transferido. -
Se crea un archivo de aviso de disposición de mensajes (MDN) y se guarda como
. Además de añadir el identificador del mensaje, la cadenaoriginal_filename.messageId.original_extension.mdn.mdnse añade al nombre del archivo transferido. -
Si hay un archivo entrante con el nombre
ExampleFileInS3Payload.dat, se crean los siguientes archivos:-
File:
ExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat -
JSON:
ExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.json -
MDN:
ExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.mdn
-
En el caso de las transferencias salientes, el nombre es similar, con la diferencia de que no hay ningún archivo de mensajes entrantes y, además, el identificador de transferencia del mensaje transferido se añade al nombre del archivo. La operación de la StartFileTransfer API devuelve el identificador de transferencia (o cuando otro proceso o script llama a esta operación).
-
El
transfer-ides un identificador que está asociado a una transferencia de archivos. Todas las solicitudes que forman parte de una llamadaStartFileTransfercomparten untransfer-id. -
El directorio base es el mismo que la ruta que se utiliza para el archivo fuente. Es decir, el directorio base es la ruta que se especifica en la operación o
start-file-transferAWS CLI el comando de laStartFileTransferAPI. Por ejemplo:aws transfer start-file-transfer --send-file-paths/amzn-s3-demo-bucket/AS2-folder/file-to-send.txtSi ejecutas este comando, los archivos MDN y JSON se guardan en
/amzn-s3-demo-bucket/AS2-folder/processed(si las transferencias se realizan correctamente) o/amzn-s3-demo-bucket/AS2-folder/failed(si las transferencias no se realizan correctamente). -
Se crea un archivo JSON y se guarda como
.original_filename.transferId.messageId.original_extension.json -
Se crea un archivo MDN y se guarda como
.original_filename.transferId.messageId.original_extension.mdn -
Si hay un archivo de salida con nombre
ExampleFileOutTestOutboundSyncMdn.dat, se crean los siguientes archivos:-
JSON:
ExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.json -
MDN:
ExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.mdn
-
También puedes consultar los CloudWatch registros para ver los detalles de tus transferencias, incluidas las que hayan fallado.
Códigos de estado
En la siguiente tabla se enumeran todos los códigos de estado que se pueden registrar en los CloudWatch registros cuando tú o tu pareja enviáis un AS2 mensaje. Los diferentes pasos de procesamiento de mensajes se aplican a diferentes tipos de mensajes y están destinados únicamente a la supervisión. Los estados COMPLETADO y FALLIDO representan el paso final del procesamiento y están visibles en los archivos JSON.
| Código | Descripción | ¿Se ha completado el procesamiento? |
|---|---|---|
| PROCESAMIENTO | El mensaje está en proceso de convertirse a su formato final. Por ejemplo, los pasos de descompresión y descifrado tienen este estado. | No |
| MDN_TRANSMIT | El procesamiento de mensajes envía una respuesta de MDN. | No |
| MDN_RECEIVE | El procesamiento de mensajes recibe una respuesta de MDN. | No |
| COMPLETED | El procesamiento del mensaje se ha completado correctamente. Este estado incluye cuando se envía un MDN para un mensaje entrante o para la verificación por MDN de los mensajes salientes. | Sí |
| ERROR | Se ha producido un error en el procesamiento del mensaje. Para obtener una lista de códigos de error, consulteAS2 códigos de error. | Sí |
Ejemplos de archivos de JSON
En esta sección, se enumeran los archivos JSON de muestra para las transferencias entrantes y salientes, incluidos los archivos de muestra para las transferencias correctas y las transferencias que no se realizan correctamente.
Ejemplo de archivo saliente que se transfirió correctamente:
{ "requester-content-type": "application/octet-stream", "message-subject": "File xyzTest from MyCompany_OID to partner YourCompany", "requester-file-name": "TestOutboundSyncMdn-9lmCr79hV.dat", "as2-from": "MyCompany_OID", "connector-id": "c-c21c63ceaaf34d99b", "status-code": "COMPLETED", "disposition": "automatic-action/MDN-sent-automatically; processed", "transfer-size": 3198, "mdn-message-id": "OPENAS2-11072022063009+0000-df865189-1450-435b-9b8d-d8bc0cee97fd@PartnerA_OID_MyCompany_OID", "mdn-subject": "Message be18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa has been accepted", "as2-to": "PartnerA_OID", "transfer-id": "dedf4601-4e90-4043-b16b-579af35e0d83", "file-path": "/amzn-s3-demo-bucket/as2testcell0000/openAs2/TestOutboundSyncMdn-9lmCr79hV.dat", "as2-message-id": "fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa", "timestamp": "2022-07-11T06:30:10.791274Z" }
Ejemplo de archivo saliente que se transfirió sin éxito:
{ "failure-code": "HTTP_ERROR_RESPONSE_FROM_PARTNER", "status-code": "FAILED", "requester-content-type": "application/octet-stream", "subject": "Test run from Id da86e74d6e57464aae1a55b8596bad0a to partner 9f8474d7714e476e8a46ce8c93a48c6c", "transfer-size": 3198, "requester-file-name": "openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "as2-message-id": "9a9cc9ab-7893-4cb6-992a-5ed8b90775ff@718de4cec1374598", "failure-message": "http://Test123456789.us-east-1.elb.amazonaws.com:10080 returned status 500 for message with ID 9a9cc9ab-7893-4cb6-992a-5ed8b90775ff@718de4cec1374598", "transfer-id": "07bd3e07-a652-4cc6-9412-73ffdb97ab92", "connector-id": "c-056e15cc851f4b2e9", "file-path": "/amzn-s3-demo-bucket-4c1tq6ohjt9y/as2IntegCell0002/openAs2/openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "timestamp": "2022-07-11T21:17:24.802378Z" }
Ejemplo de archivo entrante que se ha transferido correctamente:
{ "requester-content-type": "application/EDI-X12", "subject": "File openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.dat sent from MyCompany to PartnerA", "client-ip": "10.0.109.105", "requester-file-name": "openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.dat", "as2-from": "MyCompany_OID", "status-code": "COMPLETED", "disposition": "automatic-action/MDN-sent-automatically; processed", "transfer-size": 1050, "mdn-subject": "Message Disposition Notification", "as2-message-id": "OPENAS2-11072022233606+0000-5dab0452-0ca1-4f9b-b622-fba84effff3c@MyCompany_OID_PartnerA_OID", "as2-to": "PartnerA_OID", "agreement-id": "a-f5c5cbea5f7741988", "file-path": "processed/openAs2TestInboundAsyncMdn-necco-5Ab6bTfCO.OPENAS2-11072022233606+0000-5dab0452-0ca1-4f9b-b622-fba84effff3c@MyCompany_OID_PartnerA_OID.dat", "server-id": "s-5f7422b04c2447ef9", "timestamp": "2022-07-11T23:36:36.105030Z" }
Ejemplo de archivo entrante que se transfirió sin éxito:
{ "failure-code": "INVALID_REQUEST", "status-code": "FAILED", "subject": "Sending a request from InboundHttpClientTests", "client-ip": "10.0.117.27", "as2-message-id": "testFailedLogs-TestRunConfig-Default-inbound-direct-integ-0c97ee55-af56-4988-b7b4-a3e0576f8f9c@necco", "as2-to": "0beff6af56c548f28b0e78841dce44f9", "failure-message": "Unsupported date format: 2022/123/456T", "agreement-id": "a-0ceec8ca0a3348d6a", "as2-from": "ab91a398aed0422d9dd1362710213880", "file-path": "failed/01187f15-523c-43ac-9fd6-51b5ad2b08f3.testFailedLogs-TestRunConfig-Default-inbound-direct-integ-0c97ee55-af56-4988-b7b4-a3e0576f8f9c@necco", "server-id": "s-0582af12e44540b9b", "timestamp": "2022-07-11T06:30:03.662939Z" }