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.
Envoyer et recevoir AS2 des messages
Cette section décrit les processus d'envoi et de réception de AS2 messages. Il fournit également des détails sur les noms de fichiers et les emplacements associés AS2 aux messages.
Le tableau suivant répertorie les algorithmes de chiffrement disponibles pour les AS2 messages et indique dans quels cas vous pouvez les utiliser.
Algorithme de chiffrement | HTTP | HTTPS | Remarques |
---|---|---|---|
AES128_CBC | Oui | Oui | |
AES192_CBC | Oui | Oui | |
AES256_CBC | Oui | Oui | |
DES__CBC EDE3 | Oui | Oui | N'utilisez cet algorithme que si vous devez prendre en charge un ancien client qui en a besoin, car il s'agit d'un algorithme de chiffrement faible. |
NONE | Non | Oui | Si vous envoyez des messages à un serveur Transfer Family, vous ne pouvez sélectionner que NONE si vous utilisez un Application Load Balancer (ALB). |
Rubriques
Processus de réception des AS2 messages
Le processus entrant est défini comme un message ou un fichier transféré vers votre AWS Transfer Family serveur. La séquence des messages entrants est la suivante :
-
Un administrateur ou un processus automatisé lance un transfert de AS2 fichiers sur le AS2 serveur distant du partenaire.
-
Le AS2 serveur distant du partenaire signe et chiffre le contenu du fichier, puis envoie une requête HTTP POST à un point de terminaison AS2 entrant hébergé sur Transfer Family.
-
À l'aide des valeurs configurées pour le serveur, les partenaires, les certificats et le contrat, Transfer Family déchiffre et vérifie la charge utile. AS2 Le contenu du fichier est stocké dans le magasin de fichiers Amazon S3 configuré.
-
La réponse MDN signée est renvoyée soit en ligne avec la réponse HTTP, soit de manière asynchrone via une requête HTTP POST distincte au serveur d'origine.
-
Une piste d'audit contenant les détails de l'échange est écrite pour Amazon CloudWatch .
-
Le fichier déchiffré est disponible dans un dossier nommé.
inbox/processed

Envoyer et recevoir AS2 des messages via HTTPS
Cette section décrit comment configurer un serveur Transfer Family qui utilise le AS2 protocole pour envoyer et recevoir des messages via HTTPS.
Envoyer AS2 des messages via HTTPS
Pour envoyer AS2 des messages via HTTPS, créez un connecteur contenant les informations suivantes :
-
Pour l'URL, spécifiez une URL HTTPS
-
Pour l'algorithme de chiffrement, sélectionnez l'un des algorithmes disponibles.
Note
Pour envoyer des messages à un serveur Transfer Family sans utiliser le chiffrement (c'est-à-dire si vous sélectionnez l'algorithme
NONE
de chiffrement), vous devez utiliser un Application Load Balancer (ALB). -
Fournissez les valeurs restantes pour le connecteur, comme décrit dansConfiguration des AS2 connecteurs.
Recevoir AS2 des messages via HTTPS
AWS Transfer Family AS2 les serveurs fournissent actuellement uniquement le transport HTTP via le port 5080. Cependant, vous pouvez mettre fin au protocole TLS sur un réseau ou un équilibreur de charge d'application situé devant le point de terminaison VPC de votre serveur Transfer Family en utilisant un port et un certificat de votre choix. Avec cette approche, vous pouvez faire en sorte que les AS2 messages entrants utilisent le protocole HTTPS.
Prérequis
-
Le VPC doit se trouver dans le même emplacement Région AWS que votre serveur Transfer Family.
-
Les sous-réseaux de votre VPC doivent se trouver dans les zones de disponibilité dans lesquelles vous souhaitez utiliser votre serveur.
Note
Chaque serveur Transfer Family peut prendre en charge jusqu'à trois zones de disponibilité.
-
Allouez jusqu'à trois adresses IP élastiques dans la même région que votre serveur. Vous pouvez également choisir d'apporter votre propre plage d'adresses IP (BYOIP).
Note
Le nombre d'adresses IP élastiques doit correspondre au nombre de zones de disponibilité que vous utilisez avec les points de terminaison de votre serveur.
Vous pouvez configurer un Network Load Balance (NLB) ou un Application Load Balancer (ALB). Le tableau suivant répertorie les avantages et les inconvénients de chaque approche.
Le tableau ci-dessous indique les différences entre les fonctionnalités lorsque vous utilisez un NLB par rapport à un ALB pour mettre fin au protocole TLS.
Fonctionnalité | Network Load Balancer (NLB) | Application Load Balancer (ALB) |
---|---|---|
Latence | Temps de latence réduit car il fonctionne au niveau de la couche réseau. | Latence plus élevée car il fonctionne au niveau de la couche application. |
Prise en charge des adresses IP statiques | Peut associer des adresses IP élastiques qui peuvent être statiques. | Impossible d'associer des adresses IP élastiques : fournit un domaine dont les adresses IP sous-jacentes peuvent changer. |
Routage avancé | Ne prend pas en charge le routage avancé. | Supporte le routage avancé. Peut injecter Cet en-tête est décrit dans X-Forwarded-Proto |
Terminaison TLS/SSL | Supporte TLS/SSL la résiliation | Supporte TLS/SSL la résiliation |
TLS mutuel (MTLS) | Transfer Family ne prend actuellement pas en charge l'utilisation d'un NLB pour les MTL | Support pour les MTL |
Après avoir configuré l'équilibreur de charge, les clients communiquent avec l'équilibreur de charge via l'écouteur de port personnalisé. L'équilibreur de charge communique ensuite avec le serveur via le port 5080.
Pour créer un groupe cible
-
Après avoir choisi Créer un groupe cible dans la procédure précédente, vous êtes redirigé vers la page Spécifier les détails du groupe pour un nouveau groupe cible.
-
Dans la section Configuration de base, entrez les informations suivantes.
-
Pour Choisir un type de cible, choisissez les adresses IP.
-
Pour Nom du groupe cible, saisissez un nom pour le groupe cible.
-
Pour le protocole, votre sélection dépend de l'utilisation d'un ALB ou d'un NLB.
-
Pour un Network Load Balancer (NLB), choisissez TCP
-
Pour un Application Load Balancer (ALB), choisissez HTTP
-
-
Pour Port, entrez
5080
. -
Pour IP address type (Type d'adresse IP), choisissez IPv4.
-
Pour VPC, choisissez le VPC que vous avez créé pour votre serveur Transfer Family. AS2
-
-
Dans la section Health checks, choisissez le protocole Health check.
-
Pour un ALB, choisissez HTTP
-
Pour un NLB, choisissez TCP
-
-
Choisissez Suivant.
-
Sur la page Enregistrer les cibles, entrez les informations suivantes :
-
Pour Network, vérifiez que le VPC que vous avez créé pour votre AS2 serveur Transfer Family est spécifié.
-
Pour IPv4 adresse, entrez l' IPv4adresse privée des points de terminaison de votre AS2 serveur Transfer Family.
Si vous avez plusieurs points de terminaison pour votre serveur, choisissez Ajouter une IPv4 adresse pour ajouter une autre ligne permettant de saisir une autre IPv4 adresse. Répétez ce processus jusqu'à ce que vous ayez saisi les adresses IP privées de tous les points de terminaison de votre serveur.
-
Assurez-vous que Ports est réglé sur
5080
. -
Choisissez Inclure comme en attente ci-dessous pour ajouter vos entrées à la section Objectifs de révision.
-
-
Dans la section Examiner les cibles, passez en revue vos cibles IP.
-
Choisissez Créer un groupe cible, puis revenez à la procédure précédente de création de votre NLB et entrez le nouveau groupe cible à l'endroit indiqué.
Tester l'accès au serveur à partir d'une adresse IP élastique
Connectez-vous au serveur via le port personnalisé à l'aide d'une adresse IP élastique ou du nom DNS du Network Load Balancer.
Important
Gérez l'accès à votre serveur à partir des adresses IP des clients en utilisant les listes de contrôle d'accès réseau (réseau ACLs) pour les sous-réseaux configurés sur l'équilibreur de charge. Les autorisations ACL réseau sont définies au niveau du sous-réseau, de sorte que les règles s'appliquent à toutes les ressources qui utilisent le sous-réseau. Vous ne pouvez pas contrôler l'accès depuis les adresses IP des clients à l'aide de groupes de sécurité, car le type de cible de l'équilibreur de charge est défini sur les adresses IP plutôt que sur les instances. Par conséquent, l'équilibreur de charge ne conserve pas les adresses IP sources. Si les vérifications de santé du Network Load Balancer échouent, cela signifie que l'équilibreur de charge ne peut pas se connecter au point de terminaison du serveur. Pour résoudre ce problème, vérifiez les points suivants :
-
Vérifiez que le groupe de sécurité associé au point de terminaison
du serveur autorise les connexions entrantes provenant des sous-réseaux configurés sur l'équilibreur de charge. L'équilibreur de charge doit pouvoir se connecter au point de terminaison du serveur via le port 5080. -
Vérifiez que l'état du serveur est en ligne.
Transférer des fichiers à l'aide d'un AS2 connecteur
AS2 les connecteurs établissent une relation entre les partenaires commerciaux pour les transferts de AS2 messages d'un serveur Transfer Family vers une destination externe appartenant au partenaire.
Vous pouvez utiliser Transfer Family pour envoyer AS2 des messages en faisant référence à l'ID du connecteur et aux chemins d'accès aux fichiers, comme illustré dans la commande suivante 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
"
Pour obtenir les détails de vos connecteurs, exécutez la commande suivante :
aws transfer list-connectors
La list-connectors
commande renvoie le connecteur IDs et Amazon Resource Names (ARNs) pour vos connecteurs. URLs
Pour renvoyer les propriétés d'un connecteur spécifique, exécutez la commande suivante avec l'ID que vous souhaitez utiliser :
aws transfer describe-connector --connector-id
your-connector-id
La describe-connector
commande renvoie toutes les propriétés du connecteur, notamment son URL, ses rôles, ses profils, ses notifications de disposition des messages (MDNs), ses balises et ses mesures de surveillance.
Vous pouvez vérifier que le partenaire a bien reçu les fichiers en consultant les fichiers JSON et MDN. Ces fichiers sont nommés conformément aux conventions décrites dansNoms et emplacements des fichiers. Si vous avez configuré un rôle de journalisation lors de la création du connecteur, vous pouvez également vérifier l'état des AS2 messages dans vos CloudWatch journaux.
Pour consulter les détails du AS2 connecteur, voirAfficher les détails AS2 du connecteur. Pour plus d'informations sur la création de AS2 connecteurs, consultezConfiguration des AS2 connecteurs.
Pour envoyer un message AS2 sortant
Le processus sortant est défini comme un message ou un fichier envoyé depuis AWS un client ou un service externe. La séquence des messages sortants est la suivante :
-
Un administrateur appelle la commande
start-file-transfer
AWS Command Line Interface (AWS CLI) ou l'opérationStartFileTransfer
API. Cette opération fait référence à uneconnector
configuration. -
Transfer Family détecte une nouvelle demande de fichier et localise le fichier. Le fichier est compressé, signé et chiffré.
-
Un client HTTP de transfert exécute une requête HTTP POST pour transmettre la charge utile au AS2 serveur du partenaire.
-
Le processus renvoie la réponse MDN signée, en ligne avec la réponse HTTP (MDN synchrone).
-
Au fur et à mesure que le fichier passe d'une étape de transmission à l'autre, le processus fournit au client la réception de la réponse MDN et les détails du traitement.
-
Le AS2 serveur distant met le fichier déchiffré et vérifié à la disposition de l'administrateur partenaire.

AS2 le traitement prend en charge de nombreux protocoles RFC 4130, en mettant l'accent sur les cas d'utilisation courants et sur l'intégration avec les implémentations de serveurs AS2 compatibles existantes. Pour plus de détails sur les configurations prises en charge, consultezAS2 configurations.
Noms et emplacements des fichiers
Cette section décrit les conventions de dénomination des fichiers pour AS2 les transferts.
Pour les transferts de fichiers entrants, tenez compte des points suivants :
-
Vous spécifiez le répertoire de base dans un accord. Le répertoire de base est le nom du compartiment Amazon S3 associé à un préfixe, le cas échéant. Par exemple,
/
.amzn-s3-demo-bucket
/AS2-folder -
Si un fichier entrant est traité avec succès, le fichier (et le fichier JSON correspondant) est enregistré
/processed
dans le dossier. Par exemple,/
.amzn-s3-demo-bucket
/AS2-folder/processedLe fichier JSON contient les champs suivants :
-
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 fichier entrant ne peut pas être traité correctement, le fichier (et le fichier JSON correspondant) est enregistré
/failed
dans le dossier. Par exemple,/amzn-s3-demo-bucket/AS2-folder/failed
. -
Le fichier transféré est stocké dans le
processed
dossier sous le nom
. C'est-à-dire que l'ID du message pour le transfert est ajouté au nom du fichier, avant son extension d'origine.original_filename
.messageId
.original_extension
-
Un fichier JSON est créé et enregistré sous le nom
. Outre l'ID du message ajouté, la chaîneoriginal_filename
.messageId
.original_extension
.json.json
est ajoutée au nom du fichier transféré. -
Un fichier MDN (Message Disposition Notice) est créé et enregistré sous
le nom de. Outre l'ID du message ajouté, la chaîneoriginal_filename
.messageId
.original_extension
.mdn.mdn
est ajoutée au nom du fichier transféré. -
Si un fichier entrant est nommé
ExampleFileInS3Payload.dat
, les fichiers suivants sont créés :-
Fichier —
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
-
Pour les transferts sortants, le nom est similaire, à la différence qu'il n'y a pas de fichier de message entrant et que l'ID de transfert du message transféré est également ajouté au nom du fichier. L'ID de transfert est renvoyé par l'opération StartFileTransfer
API (ou lorsqu'un autre processus ou script appelle cette opération).
-
transfer-id
Il s'agit d'un identifiant associé à un transfert de fichier. Toutes les demandes faisant partie d'unStartFileTransfer
appel partagent untransfer-id
. -
Le répertoire de base est le même que le chemin que vous utilisez pour le fichier source. En d'autres termes, le répertoire de base est le chemin que vous spécifiez dans l'opération ou la
start-file-transfer
AWS CLI commande de l'StartFileTransfer
API. Exemples :aws transfer start-file-transfer --send-file-paths
/amzn-s3-demo-bucket/AS2-folder/file-to-send.txt
Si vous exécutez cette commande, les fichiers MDN et JSON sont enregistrés dans
/amzn-s3-demo-bucket/AS2-folder/processed
(pour les transferts réussis) ou/amzn-s3-demo-bucket/AS2-folder/failed
(pour les transferts infructueux). -
Un fichier JSON est créé et enregistré sous le nom
.original_filename
.transferId
.messageId
.original_extension
.json -
Un fichier MDN est créé et enregistré sous le nom
.original_filename
.transferId
.messageId
.original_extension
.mdn -
Si un fichier sortant est nommé
ExampleFileOutTestOutboundSyncMdn.dat
, les fichiers suivants sont créés :-
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
-
Vous pouvez également consulter les CloudWatch journaux pour consulter les détails de vos transferts, y compris ceux qui ont échoué.
Codes d’état
Le tableau suivant répertorie tous les codes de statut qui peuvent être enregistrés dans les CloudWatch journaux lorsque vous ou votre partenaire envoyez un AS2 message. Les différentes étapes de traitement des messages s'appliquent à différents types de messages et sont destinées uniquement à la surveillance. Les états COMPLETED et FAILED représentent l'étape finale du traitement et sont visibles dans les fichiers JSON.
Code | Description | Traitement terminé ? |
---|---|---|
EN TRAITEMENT | Le message est en cours de conversion dans son format final. Par exemple, les étapes de décompression et de déchiffrement ont toutes deux ce statut. | Non |
MDN_TRANSMIT | Le traitement des messages envoie une réponse MDN. | Non |
MDN_RECEIVE | Le traitement des messages reçoit une réponse MDN. | Non |
TERMINÉ | Le traitement des messages s'est terminé avec succès. Cet état inclut l'envoi d'un MDN pour un message entrant ou pour la vérification MDN des messages sortants. | Oui |
ÉCHEC | Le traitement du message a échoué. Pour obtenir la liste des codes d'erreur, consultezAS2 codes d'erreur. | Oui |
Exemples de fichiers JSON
Cette section répertorie des exemples de fichiers JSON pour les transferts entrants et sortants, y compris des exemples de fichiers pour les transferts réussis et les transferts qui échouent.
Exemple de fichier sortant transféré avec succès :
{ "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" }
Exemple de fichier sortant transféré sans succès :
{ "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" }
Exemple de fichier entrant transféré avec succès :
{ "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" }
Exemple de fichier entrant transféré sans succès :
{ "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" }