Menyiapkan dan menggunakan SFTP konektor - AWS Transfer Family

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

Menyiapkan dan menggunakan SFTP konektor

Tujuan dari konektor adalah untuk membangun hubungan antara AWS penyimpanan Anda dan SFTP server mitra. Anda dapat mengirim file dari Amazon S3 ke tujuan eksternal milik mitra. Anda juga dapat menggunakan SFTP konektor untuk mengambil file dari SFTP server mitra.

Tutorial ini menggambarkan cara mengatur SFTP konektor, dan kemudian mentransfer file antara penyimpanan Amazon S3 dan SFTP server.

SFTPKonektor mengambil SFTP kredensi dari AWS Secrets Manager untuk mengautentikasi ke SFTP server jarak jauh dan membuat koneksi. Konektor mengirim file ke atau mengambil file dari server jarak jauh, dan menyimpan file di Amazon S3. IAMPeran digunakan untuk mengizinkan akses ke bucket Amazon S3 dan ke kredensil yang disimpan di Secrets Manager. Dan Anda dapat masuk ke Amazon CloudWatch.

Diagram arsitektur untuk bagaimana SFTP konektor berinteraksi dengan Secrets Manager, Amazon S3 CloudWatch , log, peranIAM, dan server jarak jauh. SFTP

Langkah 1: Buat sumber daya pendukung yang diperlukan

Anda dapat menggunakan SFTP konektor untuk menyalin file antara Amazon S3 dan server jarak jauh SFTP apa pun. Untuk tutorial ini, kami menggunakan AWS Transfer Family server sebagai SFTP server jarak jauh kami. Kita perlu membuat dan mengkonfigurasi sumber daya berikut:

Buat ember Amazon S3

Untuk membuat bucket Amazon S3
  1. Masuk ke AWS Transfer Family konsol di https://console.aws.amazon.com/s3/.

  2. Pilih Wilayah dan masukkan nama.

    Untuk tutorial ini, ember kami ada diUS East (N. Virginia) us-east-1, dan namanyasftp-server-storage-east.

  3. Terima defaultnya dan pilih Buat bucket.

Untuk detail selengkapnya tentang membuat bucket Amazon S3, lihat Bagaimana cara membuat bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Buat IAM peran dengan izin yang diperlukan

Untuk peran akses, buat kebijakan dengan izin berikut.

Contoh berikut memberikan izin yang diperlukan untuk mengakses DOC-EXAMPLE-BUCKET di Amazon S3, dan rahasia yang ditentukan disimpan di Secrets Manager.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters" } ] }

Ganti item sebagai berikut:

  • Untuk DOC-EXAMPLE-BUCKET, tutorial menggunakans3-storage-east.

  • Untuk region, tutorial menggunakanus-east-1.

  • Untuk account-id, gunakan Akun AWS ID Anda.

  • Untuk SecretName-6RandomCharacters, kami using sftp-connector1 untuk nama (Anda akan memiliki enam karakter acak Anda sendiri untuk rahasia Anda).

Anda juga harus memastikan bahwa peran ini berisi hubungan kepercayaan yang memungkinkan konektor mengakses sumber daya Anda saat melayani permintaan transfer pengguna Anda. Untuk detail tentang membangun hubungan kepercayaan, lihatUntuk membangun hubungan kepercayaan.

catatan

Untuk melihat detail untuk peran yang kita gunakan untuk tutorial, lihatGabungan peran pengguna dan akses.

Buat dan simpan rahasia di AWS Secrets Manager

Kita perlu menyimpan rahasia di Secrets Manager untuk menyimpan kredensil pengguna untuk konektor AndaSFTP. Anda dapat menggunakan kata sandi, kunci SSH pribadi, atau keduanya. Untuk tutorial, kita menggunakan kunci pribadi.

catatan

Ketika Anda menyimpan rahasia di Secrets Manager, Anda Akun AWS dikenakan biaya. Untuk informasi tentang harga, lihat AWS Secrets Manager Harga.

Sebelum Anda memulai prosedur untuk menyimpan rahasia, mengambil dan memformat kunci pribadi Anda. Kunci pribadi harus sesuai dengan kunci publik yang dikonfigurasi untuk pengguna di SFTP server jarak jauh. Untuk tutorial kami, kunci pribadi harus sesuai dengan kunci publik yang disimpan untuk pengguna uji kami di SFTP server Transfer Family yang kami gunakan sebagai server jarak jauh.

Untuk melakukan ini, jalankan perintah berikut:

jq -sR . path-to-private-key-file

Misalnya, jika file kunci pribadi Anda berada di~/.ssh/sftp-testuser-privatekey, perintahnya adalah sebagai berikut.

jq -sR . ~/.ssh/sftp-testuser-privatekey

Ini menghasilkan kunci dalam format yang benar (dengan karakter baris baru yang disematkan) ke output standar. Salin teks ini di suatu tempat, karena Anda harus menempelkannya dalam prosedur berikut (pada langkah 6).

Untuk menyimpan kredensi pengguna di Secrets Manager untuk konektor SFTP
  1. Masuk ke AWS Management Console dan buka AWS Secrets Manager konsol di https://console.aws.amazon.com/secretsmanager/.

  2. Pada panel navigasi kiri, pilih Rahasia.

  3. Pada halaman Rahasia, pilih Simpan rahasia baru.

  4. Pada halaman Pilih jenis rahasia, untuk tipe Rahasia, pilih Jenis rahasia lainnya.

  5. Di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.

    • Kunci — MasukkanUsername.

    • nilai — Masukkan nama pengguna kami,sftp-testuser.

  6. Untuk memasukkan kunci, kami sarankan Anda menggunakan tab Plaintext.

    1. Pilih Tambah baris, lalu masukkanPrivateKey.

    2. Pilih tab Plaintext. Bidang sekarang berisi teks berikut:

      {"Username":"sftp-testuser","PrivateKey":""}
    3. Tempelkan teks untuk kunci pribadi Anda (disimpan sebelumnya) di antara tanda kutip ganda kosong (“”).

      Layar Anda akan terlihat sebagai berikut (data kunci berwarna abu-abu).

      Rahasia dalam teks biasa, menunjukkan nama pengguna dan kunci pribadi.
  7. Pilih Berikutnya.

  8. Pada halaman Konfigurasi rahasia, masukkan nama untuk rahasia Anda. Untuk tutorial ini, kami beri nama rahasianyaaws/transfer/sftp-connector1.

  9. Pilih Berikutnya, dan kemudian terima default pada halaman Konfigurasi rotasi. Lalu pilih Berikutnya.

  10. Pada halaman Review, pilih Store untuk membuat dan menyimpan rahasia.

Langkah 2: Buat dan uji SFTP konektor

Di bagian ini, kami membuat SFTP konektor yang menggunakan semua sumber daya yang kami buat sebelumnya. Untuk detail selengkapnya, lihat Konfigurasikan SFTP konektor.

Untuk membuat SFTP konektor
  1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/.

  2. Di panel navigasi kiri, pilih Konektor, lalu pilih Buat konektor.

  3. Pilih SFTPjenis konektor untuk membuat SFTP konektor, lalu pilih Berikutnya.

    Konsol Transfer Family, menampilkan halaman Buat konektor, tempat Anda memilih jenis konektor. SFTPdipilih.
  4. Di bagian Konfigurasi konektor, berikan informasi berikut:

    • Untuk URL, masukkan URL SFTP server jarak jauh. Untuk tutorialnya, kita masuk ke URL server Transfer Family yang kita gunakan sebagai SFTP server jarak jauh.

      sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

      Ganti 1111aaaa2222bbbb3 dengan ID server Transfer Family Anda.

    • Untuk peran Access, masukkan peran yang kita buat sebelumnya,sftp-connector-role.

    • Untuk peran Logging, pilihAWSTransferLoggingAccess.

      catatan

      AWSTransferLoggingAccessadalah kebijakan yang AWS dikelola. Kebijakan ini dijelaskan secara rinci dalamAWS kebijakan terkelola: AWSTransferLoggingAccess.

    SFTPKonsol konektor Transfer Family, menampilkan pengaturan konfigurasi Konektor.
  5. Di bagian SFTPKonfigurasi, berikan informasi berikut:

    • Untuk kredensil Connector, pilih nama sumber daya Secrets Manager yang berisi SFTP kredensil. Untuk tutorialnya, pilihaws/transfer/sftp-connector1.

    • Untuk kunci host Tepercaya, tempel di bagian publik dari kunci host. Anda dapat mengambil kunci ini dengan menjalankan ssh-keyscan SFTP server Anda. Untuk detail tentang cara memformat dan menyimpan kunci host tepercaya, lihat SftpConnectorConfigdokumentasi tipe data.

    SFTPKonsol konektor Transfer Family, menampilkan pengaturan SFTPkonfigurasi.
  6. Setelah Anda mengkonfirmasi semua pengaturan Anda, pilih Buat konektor untuk membuat SFTP konektor.

Setelah Anda membuat SFTP konektor, kami sarankan Anda mengujinya sebelum mencoba mentransfer file apa pun menggunakan konektor baru Anda.

Test a connector using the console
Untuk menguji SFTP konektor
  1. Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/.

  2. Di panel navigasi kiri, pilih Konektor, dan pilih konektor.

  3. Dari menu Tindakan, pilih Uji koneksi.

    Konsol Transfer Family, menampilkan SFTP konektor yang dipilih, dan tindakan Koneksi uji uji sambungan disorot.

Sistem mengembalikan pesan, menunjukkan apakah tes lulus atau gagal. Jika tes gagal, sistem memberikan pesan kesalahan berdasarkan alasan pengujian gagal.

Panel koneksi uji SFTP konektor, menunjukkan tes yang berhasil.
Panel koneksi uji SFTP konektor, menunjukkan pengujian yang gagal: pesan kesalahan menunjukkan bahwa peran akses untuk konektor tidak benar.
Test a connector using the CLI

Untuk menguji konektor menggunakan AWS Command Line Interface, jalankan perintah berikut pada prompt perintah (ganti connector-id dengan ID konektor Anda yang sebenarnya):

aws transfer test-connection --connector-id c-connector-id

Jika tes berhasil, baris berikut dikembalikan:

{ "Status": "OK", "StatusMessage": "Connection succeeded" }

Jika tes tidak berhasil, Anda menerima pesan kesalahan deskriptif, misalnya:

{ "Status": "ERROR", "StatusMessage": "Unable to assume the configured access role" }

Langkah 3: Kirim dan ambil file menggunakan konektor SFTP

Untuk mempermudah, kami berasumsi bahwa Anda sudah memiliki file di bucket Amazon S3 Anda.

catatan

Tutorial ini menggunakan bucket Amazon S3 untuk lokasi penyimpanan sumber dan tujuan. Jika SFTP server Anda tidak menggunakan penyimpanan Amazon S3, maka di mana pun Anda melihat sftp-server-storage-east dalam perintah berikut, Anda dapat mengganti jalur dengan jalur ke lokasi file yang dapat diakses dari server AndaSFTP.

  • Kami mengirim file bernama SEND-to-SERVER.txt dari penyimpanan Amazon S3 ke server. SFTP

  • Kami mengambil file bernama RETRIEVE-to-S3.txt dari SFTP server ke penyimpanan Amazon S3.

catatan

Dalam perintah berikut, ganti connector-id dengan ID konektor Anda.

Pertama, kami mengirim file dari bucket Amazon S3 kami ke server jarak jauhSFTP. Dari command prompt, jalankan perintah berikut:

aws transfer start-file-transfer --connector-id c-connector-id --send-file-paths "/s3-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"

sftp-server-storage-eastEmber Anda sekarang akan terlihat seperti ini.

Bucket SFTP server dengan file yang baru ditransfer.

Jika Anda tidak melihat file seperti yang diharapkan, periksa CloudWatch log Anda.

Untuk memeriksa CloudWatch log Anda
  1. Buka CloudWatch konsol Amazon di https://console.aws.amazon.com/cloudwatch/

  2. Pilih Grup log dari menu navigasi kiri.

  3. Masukkan ID konektor Anda di bilah pencarian untuk menemukan log Anda.

  4. Pilih aliran Log yang dikembalikan dari pencarian.

  5. Perluas entri log terbaru.

Jika berhasil, entri log terlihat seperti berikut:

{ "operation": "SEND", "timestamp": "2023-12-18T15:26:57.346283Z", "connector-id": "connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/s3-storage-east/SEND-to-SERVER.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:26:56.915864Z", "end-time": "2023-12-18T15:26:57.298122Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/connector-id", "remote-directory-path": "/sftp-server-storage-east/incoming" }

Jika transfer file gagal, entri log berisi pesan kesalahan yang menentukan masalah. Penyebab umum kesalahan adalah masalah dengan IAM izin dan jalur file yang salah.

Selanjutnya, kami mengambil file dari SFTP server ke bucket Amazon S3. Dari command prompt, jalankan perintah berikut:

aws transfer start-file-transfer --connector-id c-connector-id --retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/s3-storage-east/incoming"

Jika transfer berhasil, bucket Amazon S3 Anda berisi file yang ditransfer, seperti yang ditunjukkan di sini.

Bucket Amazon S3 dengan file yang baru ditransfer.

Jika berhasil, entri log terlihat seperti berikut:

{ "operation": "RETRIEVE", "timestamp": "2023-12-18T15:36:40.017800Z", "connector-id": "c-connector-id", "transfer-id": "transfer-id", "file-transfer-id": "transfer-id/file-transfer-id", "url": "sftp://s-server-id.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:36:39.727626Z", "end-time": "2023-12-18T15:36:39.895726Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/c-connector-id", "local-directory-path": "/s3-storage-east/incoming" }

Prosedur untuk membuat server Transfer Family untuk digunakan sebagai SFTP server jarak jauh Anda

Berikut ini, kami menguraikan langkah-langkah untuk membuat server Transfer Family yang berfungsi sebagai SFTP server jarak jauh Anda untuk tutorial ini. Perhatikan hal berikut:

  • Kami menggunakan server Transfer Family untuk mewakili SFTP server jarak jauh. Pengguna SFTP konektor tipikal memiliki SFTP server jarak jauh mereka sendiri. Lihat Membuat SFTP server Transfer Family dan pengguna.

  • Karena kami menggunakan server Transfer Family, kami juga menggunakan pengguna yang dikelola layananSFTP. Dan, untuk kesederhanaan, kami menggabungkan izin yang dibutuhkan pengguna ini untuk mengakses server Transfer Family dengan izin yang mereka butuhkan untuk menggunakan konektor kami. Sekali lagi, sebagian besar kasus penggunaan SFTP konektor memiliki SFTP pengguna terpisah yang tidak terkait dengan server Transfer Family. Lihat Membuat SFTP server Transfer Family dan pengguna.

  • Untuk tutorial, karena kita menggunakan penyimpanan Amazon S3 untuk SFTP server jarak jauh kita, kita perlu membuat ember kedua,s3-storage-east, sehingga kita dapat mentransfer file dari satu ember ke ember lainnya.

Membuat SFTP server Transfer Family dan pengguna

Sebagian besar pengguna tidak perlu membuat SFTP server Transfer Family dan pengguna, karena Anda sudah memiliki SFTP server dengan pengguna, dan Anda dapat menggunakan server ini untuk mentransfer file ke dan dari. Namun, untuk tutorial ini, untuk kesederhanaan, kami menggunakan server Transfer Family untuk berfungsi sebagai SFTP server jarak jauh.

Ikuti prosedur yang dijelaskan dalam Buat server SFTP yang diaktifkan untuk membuat server, dan Langkah 3: Tambahkan pengguna yang dikelola layanan untuk menambahkan pengguna. Ini adalah detail pengguna yang kami gunakan untuk tutorial:

  • Buat pengguna yang dikelola layanan Anda,. sftp-testuser

    • Mengatur direktori home ke /sftp-server-storage-east/sftp-testuser

    • Saat Anda membuat pengguna, Anda menyimpan kunci publik. Kemudian, ketika Anda membuat rahasia di Secrets Manager, Anda perlu memberikan kunci pribadi yang sesuai.

  • Peran:sftp-connector-role. Untuk tutorial, kami menggunakan IAM peran yang sama untuk SFTP pengguna kami dan untuk mengakses SFTP konektor. Saat membuat konektor untuk organisasi, Anda mungkin memiliki peran pengguna dan akses yang terpisah.

  • Kunci host server: Anda perlu menggunakan kunci host server saat membuat konektor. Anda dapat mengambil kunci ini dengan menjalankan ssh-keyscan server Anda. Misalnya, jika ID server Andas-1111aaaa2222bbbb3, dan titik akhirnya masukus-east-1, perintah berikut mengambil kunci host server:

    ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

    Salin teks ini di suatu tempat, karena Anda harus menempelkannya dalam Langkah 2: Buat dan uji SFTP konektor prosedur.

Gabungan peran pengguna dan akses

Untuk tutorial, kita menggunakan peran tunggal gabungan. Kami menggunakan peran ini baik untuk SFTP pengguna kami, maupun untuk akses ke konektor. Contoh berikut berisi rincian untuk peran ini, jika Anda ingin melakukan tugas-tugas dalam tutorial.

Contoh berikut memberikan izin yang diperlukan untuk mengakses dua bucket kami di Amazon S3, dan rahasia bernama disimpan di aws/transfer/sftp-connector1 Secrets Manager. Untuk tutorial, peran ini diberi namasftp-connector-role.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::sftp-server-storage-east", "arn:aws:s3:::s3-storage-east" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": [ "arn:aws:s3:::sftp-server-storage-east/*", "arn:aws:s3:::s3-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:500655546075:secret:aws/transfer/sftp-connector1-6RandomCharacters" } ] }

Untuk detail lengkap tentang membuat peran untuk Transfer Family, ikuti prosedur yang dijelaskan Membuat peran pengguna untuk membuat peran.