Mengirim dan menerima AS2 pesan - AWS Transfer Family

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengirim dan menerima AS2 pesan

Bagian ini menjelaskan proses untuk mengirim dan menerima AS2 pesan. Ini juga memberikan rincian tentang nama file dan lokasi yang terkait dengan pesan. AS2

Proses kirim AS2 pesan

Proses keluar didefinisikan sebagai pesan atau file yang dikirim dari AWS ke klien atau layanan eksternal. Urutan pesan keluar adalah sebagai berikut:

  1. Admin memanggil perintah start-file-transfer AWS Command Line Interface (AWS CLI) atau StartFileTransfer API operasi. Operasi ini mereferensikan connector konfigurasi.

  2. Transfer Family mendeteksi permintaan file baru dan menemukan file tersebut. File dikompresi, ditandatangani, dan dienkripsi.

  3. HTTPKlien transfer melakukan HTTP POST permintaan untuk mengirimkan muatan ke AS2 server mitra.

  4. Proses mengembalikan MDN respons yang ditandatangani, sejalan dengan HTTP respons (MDNsinkron).

  5. Saat file bergerak di antara berbagai tahap transmisi, proses memberikan tanda terima MDN respons dan detail pemrosesan kepada pelanggan.

  6. AS2Server jarak jauh membuat file yang didekripsi dan diverifikasi tersedia untuk admin mitra.

Diagram yang menunjukkan urutan pemrosesan untuk pesan keluar.

AS2Processing mendukung banyak dari RFC 4130 protokol, dengan fokus pada kasus penggunaan umum dan integrasi dengan implementasi server AS2 -enabled yang ada. Untuk detail konfigurasi yang didukung, lihatAS2konfigurasi yang didukung.

Menerima proses AS2 pesan

Proses inbound didefinisikan sebagai pesan atau file yang sedang ditransfer ke AWS Transfer Family server Anda. Urutan pesan masuk adalah sebagai berikut:

  1. Admin atau proses otomatis memulai transfer AS2 file di AS2 server jarak jauh mitra.

  2. AS2Server jarak jauh mitra menandatangani dan mengenkripsi konten file, lalu mengirimkan HTTP POST permintaan ke titik akhir AS2 masuk yang dihosting di Transfer Family.

  3. Menggunakan nilai yang dikonfigurasi untuk server, mitra, sertifikat, dan perjanjian, Transfer Family mendekripsi dan memverifikasi muatan. AS2 Isi file disimpan di toko file Amazon S3 yang dikonfigurasi.

  4. MDNRespons yang ditandatangani dikembalikan baik sejalan dengan HTTP respons, atau secara asinkron melalui HTTP POST permintaan terpisah kembali ke server asal.

  5. Jejak audit ditulis ke Amazon CloudWatch dengan rincian tentang pertukaran.

  6. File yang didekripsi tersedia dalam folder bernama. inbox/processed

Diagram yang menunjukkan urutan pemrosesan untuk pesan masuk.

Mengirim dan menerima AS2 pesan HTTPS

Bagian ini menjelaskan cara mengonfigurasi server Transfer Family yang menggunakan AS2 protokol untuk mengirim dan menerima pesanHTTPS.

Kirim AS2 pesan HTTPS

Untuk mengirim AS2 pesan menggunakanHTTPS, buat konektor dengan informasi berikut:

  • UntukURL, tentukan HTTPS URL

  • Untuk algoritma enkripsi, tentukanNONE.

  • Berikan nilai yang tersisa untuk konektor seperti yang dijelaskan dalamKonfigurasikan AS2 konektor.

Menerima AS2 pesan di atas HTTPS

AWS Transfer Family AS2server saat ini hanya menyediakan HTTP transportasi melalui port 5080. Namun, Anda dapat menghentikan TLS penyeimbang beban di depan VPC endpoint server Transfer Family Anda dengan menggunakan port dan sertifikat pilihan Anda. Dengan pendekatan ini, Anda dapat menggunakan AS2 HTTPS pesan masuk.

Prasyarat

  • VPCHarus sama Wilayah AWS dengan server Transfer Family Anda.

  • Subnet Anda VPC harus berada dalam Availability Zones tempat Anda ingin menggunakan server Anda.

    catatan

    Setiap server Transfer Family dapat mendukung hingga tiga Availability Zone.

  • Alokasikan hingga tiga alamat IP Elastis di Wilayah yang sama dengan server Anda. Atau, Anda dapat memilih untuk membawa rentang alamat IP Anda sendiri (BYOIP).

    catatan

    Jumlah alamat IP Elastis harus sesuai dengan jumlah Availability Zone yang Anda gunakan dengan endpoint server Anda.

Konfigurasikan Network Load Balancer

Siapkan Network Load Balancer NLB () yang menghadap ke internet di file Anda. VPC

Untuk membuat Network Load Balancer dan mendefinisikan VPC endpoint server sebagai target load balancer
  1. Buka konsol Amazon Elastic Compute Cloud di https://console.aws.amazon.com/ec2/.

  2. Dari panel navigasi, pilih Load Balancers, lalu pilih Create load balancer.

  3. Di bawah Penyeimbang Beban Jaringan, pilih Buat.

  4. Di bagian Konfigurasi dasar, masukkan informasi berikut:

    • Untuk Nama, masukkan nama deskriptif untuk penyeimbang beban.

    • Untuk Skema, pilih yang menghadap ke Internet.

    • Untuk jenis alamat IP, pilih IPv4.

  5. Di bagian Pemetaan jaringan, masukkan informasi berikut:

    • Untuk VPC, pilih virtual private cloud (VPC) yang Anda buat.

    • Di bawah Pemetaan, pilih Availability Zones yang terkait dengan subnet publik yang tersedia sama dengan VPC yang Anda gunakan dengan endpoint server Anda.

    • Untuk IPv4alamat setiap subnet, pilih salah satu alamat IP elastis yang Anda alokasikan.

  6. Di bagian Pendengar dan perutean, masukkan informasi berikut:

    • Untuk Protokol, pilih TLS.

    • Untuk Port, masukkan 5080.

    • Untuk tindakan Default, pilih Buat grup target. Untuk detail pembuatan grup target baru, lihatUntuk membuat grup target.

    Setelah Anda membuat grup target, masukkan namanya di bidang Tindakan default.

  7. Di bagian Pengaturan pendengar aman, pilih sertifikat Anda di area SSLTLSDefault/certificate.

  8. Pilih Buat penyeimbang beban untuk membuatNLB.

  9. (Opsional, tetapi disarankan) Aktifkan log akses untuk Network Load Balancer untuk mempertahankan jejak audit penuh, seperti yang dijelaskan dalam log Access untuk Network Load Balancer Anda.

    Kami merekomendasikan langkah ini karena TLS koneksi diakhiri di. NLB Oleh karena itu, alamat IP sumber yang tercermin dalam grup AS2 CloudWatch log Transfer Family Anda adalah alamat IP pribadi, bukan alamat IP eksternal mitra dagang Anda. NLB

Setelah Anda mengatur penyeimbang beban, klien berkomunikasi dengan penyeimbang beban melalui pendengar port kustom. Kemudian, penyeimbang beban berkomunikasi dengan server melalui port 5080.

Untuk membuat grup target
  1. Setelah Anda memilih Buat grup target dalam prosedur sebelumnya, Anda akan dibawa ke halaman Tentukan rincian grup untuk grup target baru.

  2. Di bagian Konfigurasi dasar, masukkan informasi berikut.

    • Untuk Pilih jenis target, pilih alamat IP.

    • Untuk Name, masukkan nama untuk grup target.

    • Untuk Protokol, pilih TCP.

    • Untuk Port, masukkan 5080.

    • Untuk jenis alamat IP, pilih IPv4.

    • Untuk VPC, pilih VPC yang Anda buat untuk AS2 server Transfer Family Anda.

  3. Di bagian Pemeriksaan Kesehatan, TCPpilih protokol pemeriksaan Kesehatan.

  4. Pilih Berikutnya.

  5. Pada halaman Daftar target, masukkan informasi berikut:

    • Untuk Jaringan, konfirmasikan VPC bahwa yang Anda buat untuk AS2 server Transfer Family Anda ditentukan.

    • Untuk IPv4alamat, masukkan IPv4 alamat pribadi titik akhir AS2 server Transfer Family Anda.

      Jika Anda memiliki lebih dari satu titik akhir untuk server Anda, pilih Tambah IPv4 alamat untuk menambahkan baris lain untuk memasukkan IPv4 alamat lain. Ulangi proses ini sampai Anda memasukkan alamat IP pribadi untuk semua titik akhir server Anda.

    • Pastikan bahwa Port diatur ke5080.

    • Pilih Sertakan sebagai tertunda di bawah ini untuk menambahkan entri Anda ke bagian Tinjau target.

  6. Di bagian Tinjau target, tinjau target IP Anda.

  7. Pilih Buat grup target, lalu kembali ke prosedur sebelumnya untuk membuat Anda NLB dan masukkan grup target baru di mana ditunjukkan.

Uji akses ke server dari alamat IP Elastis

Connect ke server melalui port kustom dengan menggunakan alamat IP Elastis atau DNS nama Network Load Balancer.

penting

Kelola akses ke server Anda dari alamat IP klien dengan menggunakan daftar kontrol akses jaringan (jaringanACLs) untuk subnet yang dikonfigurasi pada penyeimbang beban. ACLIzin jaringan ditetapkan pada tingkat subnet, sehingga aturan berlaku untuk semua sumber daya yang menggunakan subnet. Anda tidak dapat mengontrol akses dari alamat IP klien dengan menggunakan grup keamanan, karena jenis target penyeimbang beban disetel ke alamat IP, bukan Instans. Oleh karena itu, penyeimbang beban tidak mempertahankan alamat IP sumber. Jika pemeriksaan kesehatan Network Load Balancer gagal, ini berarti penyeimbang beban tidak dapat terhubung ke titik akhir server. Untuk memecahkan masalah ini, periksa hal berikut:

  • Konfirmasikan bahwa grup keamanan terkait titik akhir server memungkinkan koneksi masuk dari subnet yang dikonfigurasi pada penyeimbang beban. Load balancer harus dapat terhubung ke endpoint server melalui port 5080.

  • Konfirmasikan bahwa Status server sedang Online.

Mentransfer file dengan menggunakan konektor AS2

AS2konektor membangun hubungan antara mitra dagang untuk transfer AS2 pesan dari server Transfer Family ke tujuan eksternal milik mitra.

Anda dapat menggunakan Transfer Family untuk mengirim AS2 pesan dengan mereferensikan ID konektor dan jalur ke file, seperti yang diilustrasikan dalam perintah start-file-transfer AWS Command Line Interface (AWS CLI) berikut:

aws transfer start-file-transfer --connector-id c-1234567890abcdef0 \ --send-file-paths "/DOC-EXAMPLE-SOURCE-BUCKET/myfile1.txt" "/DOC-EXAMPLE-SOURCE-BUCKET/myfile2.txt"

Untuk mendapatkan detail konektor Anda, jalankan perintah berikut:

aws transfer list-connectors

list-connectorsPerintah mengembalikan konektorIDs,URLs, dan Amazon Resource Names (ARNs) untuk konektor Anda.

Untuk mengembalikan properti konektor tertentu, jalankan perintah berikut dengan ID yang ingin Anda gunakan:

aws transfer describe-connector --connector-id your-connector-id

describe-connectorPerintah mengembalikan semua properti untuk konektor, termasuk, peran, profilURL, Pemberitahuan Disposisi Pesan (MDNs), tag, dan metrik pemantauan.

Anda dapat mengonfirmasi bahwa mitra berhasil menerima file dengan melihat JSON dan MDN file. File-file ini diberi nama sesuai dengan konvensi yang dijelaskan dalamNama dan lokasi file. Jika Anda mengonfigurasi peran logging saat membuat konektor, Anda juga dapat memeriksa CloudWatch log untuk status AS2 pesan.

Untuk melihat detail AS2 konektor, lihatLihat detail AS2 konektor. Untuk informasi selengkapnya tentang membuat AS2 konektor, lihatKonfigurasikan AS2 konektor.

Nama dan lokasi file

Bagian ini membahas konvensi penamaan file untuk transfer. AS2

Untuk transfer file masuk, perhatikan hal berikut:

  • Anda menentukan direktori dasar dalam perjanjian. Direktori dasar adalah nama bucket Amazon S3 yang dikombinasikan dengan awalan, jika ada. Misalnya, /DOC-EXAMPLE-BUCKET/AS2-folder.

  • Jika file yang masuk berhasil diproses, file (dan JSON file yang sesuai) disimpan ke /processed folder. Misalnya, /DOC-EXAMPLE-BUCKET/AS2-folder/processed.

    JSONFile berisi bidang-bidang berikut:

    • 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

  • Jika file yang masuk tidak dapat diproses dengan sukses, file (dan JSON file yang sesuai) disimpan ke /failed folder. Misalnya, /DOC-EXAMPLE-BUCKET/AS2-folder/failed.

  • File yang ditransfer disimpan dalam processed folder sebagaioriginal_filename.messageId.original_extension. Artinya, ID pesan untuk transfer ditambahkan ke nama file, sebelum ekstensi aslinya.

  • JSONFile dibuat dan disimpan sebagai fileoriginal_filename.messageId.original_extension.json. Selain ID pesan yang ditambahkan, string .json ditambahkan ke nama file yang ditransfer.

  • File Message Disposition Notice (MDN) dibuat dan disimpan sebagai fileoriginal_filename.messageId.original_extension.mdn. Selain ID pesan yang ditambahkan, string .mdn ditambahkan ke nama file yang ditransfer.

  • Jika ada file inbound bernamaExampleFileInS3Payload.dat, file-file berikut dibuat:

    • BerkasExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat

    • JSONExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.json

    • MDNExampleFileInS3Payload.c4d6b6c7-23ea-4b8c-9ada-0cb811dc8b35@44313c54b0a46a36.dat.mdn

Untuk transfer keluar, penamaannya serupa, dengan perbedaan bahwa tidak ada file pesan masuk, dan juga, ID transfer untuk pesan yang ditransfer ditambahkan ke nama file. ID transfer dikembalikan oleh StartFileTransfer API operasi (atau ketika proses atau skrip lain memanggil operasi ini).

  • transfer-idIni adalah pengidentifikasi yang terkait dengan transfer file. Semua permintaan yang merupakan bagian dari StartFileTransfer panggilan berbagi atransfer-id.

  • Direktori dasar sama dengan jalur yang Anda gunakan untuk file sumber. Artinya, direktori dasar adalah jalur yang Anda tentukan dalam StartFileTransfer API operasi atau start-file-transfer AWS CLI perintah. Sebagai contoh:

    aws transfer start-file-transfer --send-file-paths /DOC-EXAMPLE-BUCKET/AS2-folder/file-to-send.txt

    Jika Anda menjalankan perintah ini, MDN dan JSON file disimpan di /DOC-EXAMPLE-BUCKET/AS2-folder/processed (untuk transfer yang berhasil), atau /DOC-EXAMPLE-BUCKET/AS2-folder/failed (untuk transfer yang gagal).

  • JSONFile dibuat dan disimpan sebagai fileoriginal_filename.transferId.messageId.original_extension.json.

  • MDNFile dibuat dan disimpan sebagai fileoriginal_filename.transferId.messageId.original_extension.mdn.

  • Jika ada file keluar bernamaExampleFileOutTestOutboundSyncMdn.dat, file-file berikut dibuat:

    • JSONExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.json

    • MDNExampleFileOutTestOutboundSyncMdn.dedf4601-4e90-4043-b16b-579af35e0d83.fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa.dat.mdn

Anda juga dapat memeriksa CloudWatch log untuk melihat detail transfer Anda, termasuk yang gagal.

Kode status

Tabel berikut mencantumkan semua kode status yang dapat dicatat ke CloudWatch log saat Anda atau pasangan mengirim AS2 pesan. Langkah-langkah pemrosesan pesan yang berbeda berlaku untuk jenis pesan yang berbeda dan dimaksudkan untuk pemantauan saja. FAILEDStatus COMPLETED dan mewakili langkah terakhir dalam pemrosesan, dan terlihat dalam JSON file.

Kode Deskripsi Pemrosesan selesai?
PROCESSING Pesan sedang dalam proses dikonversi ke format akhirnya. Misalnya, langkah dekompresi dan dekripsi keduanya memiliki status ini. Tidak
MDN_TRANSMIT Pemrosesan pesan adalah mengirimkan MDN respons. Tidak
MDN_RECEIVE Pemrosesan pesan menerima MDN respons. Tidak
COMPLETED Pemrosesan pesan telah selesai dengan sukses. Status ini mencakup kapan MDN dikirim untuk pesan masuk atau untuk MDN verifikasi pesan keluar. Ya
FAILED Pemrosesan pesan telah gagal. Untuk daftar kode kesalahan, lihatKode kesalahan AS2. Ya

Contoh JSON file

Bagian ini mencantumkan JSON file sampel untuk transfer masuk dan keluar, termasuk file sampel untuk transfer yang berhasil dan transfer yang gagal.

Contoh file keluar yang berhasil ditransfer:

{ "requester-content-type": "application/octet-stream", "mesage-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": "/DOC-EXAMPLE-BUCKET/as2testcell0000/openAs2/TestOutboundSyncMdn-9lmCr79hV.dat", "as2-message-id": "fbe18db8-7361-42ff-8ab6-49ec1e435f34@c9c705f0baaaabaa", "timestamp": "2022-07-11T06:30:10.791274Z" }

Contoh file keluar yang tidak berhasil ditransfer:

{ "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": "/testbucket-4c1tq6ohjt9y/as2IntegCell0002/openAs2/openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "timestamp": "2022-07-11T21:17:24.802378Z" }

Contoh file inbound yang berhasil ditransfer:

{ "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" }

Contoh file masuk yang tidak berhasil ditransfer:

{ "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" }