Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengirim dan menerima pesan AS2
Bagian ini menjelaskan proses untuk mengirim dan menerima pesan AS2. Ini juga memberikan rincian tentang nama file dan lokasi yang terkait dengan pesan AS2.
Tabel berikut mencantumkan algoritma enkripsi yang tersedia untuk pesan AS2, dan kapan Anda dapat menggunakannya.
| Enkripsi algoritme | HTTP | HTTPS | Catatan |
|---|---|---|---|
| AES128_CBC | Ya | Ya | |
| AES192_CBC | Ya | Ya | |
| AES256_CBC | Ya | Ya | |
| DES_EDE3_CBC | Ya | Ya | Gunakan algoritma ini hanya jika Anda harus mendukung klien lama yang membutuhkannya, karena ini adalah algoritma enkripsi yang lemah. |
| NONE | Tidak | Ya | Jika Anda mengirim pesan ke server Transfer Family, Anda hanya dapat memilih NONE jika Anda menggunakan Application Load Balancer (ALB). |
Topik
Menerima proses pesan AS2
Proses inbound didefinisikan sebagai pesan atau file yang ditransfer ke AWS Transfer Family server Anda. Urutan untuk pesan masuk adalah sebagai berikut:
-
Admin atau proses otomatis memulai transfer file AS2 di server AS2 jarak jauh mitra.
-
Server AS2 jarak jauh mitra menandatangani dan mengenkripsi konten file, lalu mengirimkan permintaan HTTP POST ke titik akhir masuk AS2 yang dihosting di Transfer Family.
-
Menggunakan nilai yang dikonfigurasi untuk server, mitra, sertifikat, dan perjanjian, Transfer Family mendekripsi dan memverifikasi payload AS2. Isi file disimpan di penyimpanan file Amazon S3 yang dikonfigurasi.
-
Respons MDN yang ditandatangani dikembalikan baik sebaris dengan respons HTTP, atau secara asinkron melalui permintaan HTTP POST terpisah kembali ke server asal.
-
Jejak audit ditulis ke Amazon CloudWatch dengan rincian tentang pertukaran.
-
File yang didekripsi tersedia dalam folder bernama
inbox/processed.
Mengirim dan menerima pesan AS2 melalui HTTPS
Bagian ini menjelaskan cara mengonfigurasi server Transfer Family yang menggunakan protokol AS2 untuk mengirim dan menerima pesan melalui HTTPS.
Kirim pesan AS2 melalui HTTPS
Untuk mengirim pesan AS2 menggunakan HTTPS, buat konektor dengan informasi berikut:
-
Untuk URL, tentukan URL HTTPS
-
Untuk algoritma enkripsi, pilih salah satu algoritma yang tersedia.
catatan
Untuk mengirim pesan ke server Transfer Family saat tidak menggunakan enkripsi (yaitu, Anda memilih
NONEuntuk algoritma enkripsi), Anda harus menggunakan Application Load Balancer (ALB). -
Berikan nilai yang tersisa untuk konektor seperti yang dijelaskan dalamKonfigurasikan konektor AS2.
Menerima pesan AS2 melalui HTTPS
AWS Transfer Family Server AS2 saat ini hanya menyediakan transportasi HTTP melalui port 5080. Namun, Anda dapat menghentikan TLS pada jaringan atau penyeimbang beban aplikasi di depan titik akhir VPC server Transfer Family Anda dengan menggunakan port dan sertifikat pilihan Anda. Dengan pendekatan ini, Anda dapat meminta pesan AS2 masuk menggunakan HTTPS.
Prasyarat
-
VPC harus Wilayah AWS sama dengan server Transfer Family Anda.
-
Subnet VPC Anda harus berada dalam Zona Ketersediaan tempat Anda ingin menggunakan server Anda.
catatan
Setiap server Transfer Family dapat mendukung hingga tiga Zona Ketersediaan.
-
Alokasikan hingga tiga alamat IP Elastic di Wilayah yang sama dengan server Anda. Atau, Anda dapat memilih untuk membawa rentang alamat IP Anda sendiri (BYOIP).
catatan
Jumlah alamat IP Elastic harus sesuai dengan jumlah Zona Ketersediaan yang Anda gunakan dengan titik akhir server Anda.
Anda dapat mengonfigurasi Network Load Balance (NLB) atau Application Load Balancer (ALB). Tabel berikut mencantumkan pro dan kontra untuk setiap pendekatan.
Tabel di bawah ini memberikan perbedaan kemampuan saat Anda menggunakan NLB versus ALB untuk mengakhiri TLS.
| Fitur | Penyeimbang Beban Jaringan (NLB) | Penyeimbang Beban Aplikasi (ALB) |
|---|---|---|
| Latensi | Latensi lebih rendah saat beroperasi di lapisan jaringan. | Latensi yang lebih tinggi saat beroperasi di lapisan aplikasi. |
| Dukungan IP statis | Dapat melampirkan alamat IP elastis yang bisa statis. | Tidak dapat melampirkan alamat IP elastis: menyediakan domain yang alamat IP dasarnya dapat berubah. |
| Perutean lanjutan | Tidak mendukung perutean lanjutan. | Mendukung perutean lanjutan. Dapat menyuntikkan Header ini dijelaskan di X-Forwarded-Proto |
| TLS/SSL penghentian | Mendukung TLS/SSL penghentian | Mendukung TLS/SSL penghentian |
| TLS Bersama (mTLS) | Transfer Family saat ini tidak mendukung penggunaan NLB untuk MTL | Dukungan untuk MTL |
Setelah Anda mengatur penyeimbang beban, klien berkomunikasi dengan penyeimbang beban melalui pendengar port khusus. Kemudian, load balancer berkomunikasi dengan server melalui port 5080.
Untuk membuat kelompok sasaran
-
Setelah Anda memilih Buat grup target dalam prosedur sebelumnya, Anda akan dibawa ke halaman Tentukan detail grup untuk grup target baru.
-
Di bagian Konfigurasi dasar, masukkan informasi berikut.
-
Untuk Pilih jenis target, pilih alamat IP.
-
Untuk Name, masukkan nama untuk grup target.
-
Untuk Protokol, pilihan Anda tergantung pada apakah Anda menggunakan ALB atau NLB.
-
Untuk Network Load Balancer (NLB), pilih TCP
-
Untuk Application Load Balancer (ALB), pilih HTTP
-
-
Untuk Port, masukkan
5080. -
Untuk jenis alamat IP, pilih IPv4.
-
Untuk VPC, pilih VPC yang Anda buat untuk server Transfer Family AS2 Anda.
-
-
Di bagian Pemeriksaan kesehatan, pilih protokol pemeriksaan kesehatan.
-
Untuk ALB, pilih HTTP
-
Untuk NLB, pilih TCP
-
-
Pilih Berikutnya.
-
Pada halaman Daftar target, masukkan informasi berikut:
-
Untuk Jaringan, konfirmasikan bahwa VPC yang Anda buat untuk server Transfer Family AS2 telah ditentukan.
-
Untuk alamat IPv4, masukkan alamat IPv4 pribadi dari titik akhir server Transfer Family AS2 Anda.
Jika Anda memiliki lebih dari satu titik akhir untuk server Anda, pilih Tambahkan alamat IPv4 untuk menambahkan baris lain untuk memasukkan alamat IPv4 lainnya. Ulangi proses ini sampai Anda memasukkan alamat IP pribadi untuk semua titik akhir server Anda.
-
Pastikan Ports diatur ke
5080. -
Pilih Ser takan sebagai tertunda di bawah ini untuk menambahkan entri Anda ke bagian Target Tinjau.
-
-
Di bagian Tinjau target, tinjau target IP Anda.
-
Pilih Buat grup target, lalu kembali ke prosedur sebelumnya untuk membuat NLB Anda dan masukkan grup target baru di mana ditunjukkan.
Uji akses ke server dari alamat IP Elastic
Hubungkan ke server melalui port khusus dengan menggunakan alamat IP Elastic atau nama DNS dari Network Load Balancer.
penting
Kelola akses ke server Anda dari alamat IP klien dengan menggunakan daftar kontrol akses jaringan (ACL jaringan) untuk subnet yang dikonfigurasi pada penyeimbang beban. Izin ACL jaringan diatur 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 diatur ke alamat IP, bukan Inst ans. 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
mengizinkan koneksi masuk dari subnet yang dikonfigurasi pada penyeimbang beban. Penyeimbang beban harus dapat terhubung ke titik akhir server melalui port 5080. -
Konfirmasikan bahwa Status server sedang Online.
Mentransfer file dengan menggunakan konektor AS2
Konektor AS2 membangun hubungan antara mitra dagang untuk transfer pesan AS2 dari server Transfer Family ke tujuan eksternal milik mitra.
Anda dapat menggunakan Transfer Family untuk mengirim pesan AS2 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 "/amzn-s3-demo-source-bucket/myfile1.txt" "/amzn-s3-demo-source-bucket/myfile2.txt"
Untuk mendapatkan detail konektor Anda, jalankan perintah berikut:
aws transfer list-connectors
Per list-connectors intah mengembalikan ID konektor, URL, dan Nama Sumber Daya Amazon (ARN) untuk konektor Anda.
Untuk mengembalikan properti konektor tertentu, jalankan perintah berikut dengan ID yang ingin Anda gunakan:
aws transfer describe-connector --connector-idyour-connector-id
Per describe-connector intah mengembalikan semua properti untuk konektor, termasuk URL, peran, profil, Pemberitahuan Disposisi Pesan (mDNS), tag, dan metrik pemantauan.
Anda dapat mengonfirmasi bahwa mitra berhasil menerima file dengan melihat file JSON dan MDN. 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 Anda untuk status pesan AS2.
Untuk melihat detail konektor AS2, lihatLihat detail konektor AS2. Untuk informasi selengkapnya tentang membuat konektor AS2, lihatKonfigurasikan konektor AS2.
Untuk mengirim pesan keluar AS2
Proses outbound didefinisikan sebagai pesan atau file yang dikirim dari AWS klien atau layanan eksternal. Urutan untuk pesan keluar adalah sebagai berikut:
-
Admin memanggil perintah
start-file-transferAWS Command Line Interface (AWS CLI) atau operasiStartFileTransferAPI. Operasi ini mereferensiconnectorkan konfigurasi. -
Transfer Family mendeteksi permintaan file baru dan menemukan file tersebut. File dikompresi, ditandatangani, dan dienkripsi.
-
Klien HTTP transfer melakukan permintaan HTTP POST untuk mengirimkan payload ke server AS2 mitra.
-
Proses mengembalikan respons MDN yang ditandatangani, baik sebaris dengan respons HTTP (MDN sinkron atau asinkron).
-
Saat file bergerak di antara berbagai tahap transmisi, proses tersebut mengirimkan tanda terima respons MDN dan detail pemrosesan kepada pelanggan.
-
Server AS2 jarak jauh membuat file yang didekripsi dan diverifikasi tersedia untuk admin mitra.
Pemrosesan AS2 mendukung banyak protokol RFC 4130, dengan fokus pada kasus penggunaan umum dan integrasi dengan implementasi server yang ada AS2-enabled . Untuk detail konfigurasi yang didukung, lihatKonfigurasi AS2.
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,
/.amzn-s3-demo-bucket/AS2-folder -
Jika file masuk berhasil diproses, file (dan file JSON yang sesuai) disimpan ke
/processedfolder. Misalnya,/.amzn-s3-demo-bucket/AS2-folder/processedFile JSON berisi 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 masuk tidak dapat diproses dengan sukses, file (dan file JSON yang sesuai) disimpan ke
/failedfolder. Misalnya,/amzn-s3-demo-bucket/AS2-folder/failed. -
File yang ditransfer disimpan dalam
processedfolder sebagai. Artinya, ID pesan untuk transfer ditambahkan ke nama file, sebelum ekstensi aslinya.original_filename.messageId.original_extension -
File JSON dibuat dan disimpan sebagai
. Selain ID pesan yang ditambahkan, stringoriginal_filename.messageId.original_extension.json.jsonditambahkan ke nama file yang ditransfer. -
File Pemberitahuan Disposisi Pesan (MDN) dibuat dan disimpan sebagai
. Selain ID pesan yang ditambahkan, stringoriginal_filename.messageId.original_extension.mdn.mdnditambahkan ke nama file yang ditransfer. -
Jika ada file masuk bernama
ExampleFileInS3Payload.dat, file berikut dibuat:-
Berkas -
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
-
Untuk transfer keluar, penamaan 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 operasi StartFileTransfer API (atau ketika proses atau skrip lain memanggil operasi ini).
-
Ini
transfer-idadalah pengidentifikasi yang terkait dengan transfer file. Semua permintaan yang merupakan bagian dariStartFileTransferpanggilan berbagi atransfer-id. -
Direktori dasar sama dengan path yang Anda gunakan untuk file sumber. Artinya, direktori dasar adalah jalur yang Anda tentukan dalam operasi atau
start-file-transferAWS CLI perintahStartFileTransferAPI. Contoh:aws transfer start-file-transfer --send-file-paths/amzn-s3-demo-bucket/AS2-folder/file-to-send.txtJika Anda menjalankan perintah ini, file MDN dan JSON disimpan di
/amzn-s3-demo-bucket/AS2-folder/processed(untuk transfer yang berhasil), atau/amzn-s3-demo-bucket/AS2-folder/failed(untuk transfer yang gagal). -
File JSON dibuat dan disimpan sebagai
.original_filename.transferId.messageId.original_extension.json -
File MDN dibuat dan disimpan sebagai
.original_filename.transferId.messageId.original_extension.mdn -
Jika ada file keluar bernama
ExampleFileOutTestOutboundSyncMdn.dat, file berikut dibuat:-
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
-
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 Anda mengirim pesan AS2. Langkah-langkah pemrosesan pesan yang berbeda berlaku untuk jenis pesan yang berbeda dan dimaksudkan untuk pemantauan saja. Status COMPLETED dan FAILED mewakili langkah terakhir dalam pemrosesan, dan terlihat dalam file JSON.
| Kode | Deskripsi | Pemrosesan selesai? |
|---|---|---|
| PENGOLAHAN | Pesan sedang dalam proses dikonversi ke format akhir. Misalnya, langkah dekompresi dan dekripsi keduanya memiliki status ini. | Tidak |
| MDN_MENGIRIMKAN | Pemrosesan pesan mengirimkan respons MDN. | Tidak |
| MDN_TERIMA | Pemrosesan pesan menerima respons MDN. | Tidak |
| DISELESAIKAN | Pemrosesan pesan telah selesai dengan sukses. Status ini termasuk ketika MDN dikirim untuk pesan masuk atau untuk verifikasi MDN pesan keluar. | Ya |
| FAILED | Pemrosesan pesan gagal. Untuk daftar kode kesalahan, lihatKode kesalahan AS2. | Ya |
Contoh file JSON
Bagian ini mencantumkan contoh file JSON 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", "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" }
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": "/amzn-s3-demo-bucket-4c1tq6ohjt9y/as2IntegCell0002/openAs2/openAs2TestOutboundWrongAs2Ids-necco-3VYn5n8wE.dat", "timestamp": "2022-07-11T21:17:24.802378Z" }
Contoh file masuk 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" }