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.
Topik
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 bucket Amazon S3 untuk menyimpan file di AWS lingkungan Anda, dan untuk mengirim dan mengambil file dari server jarak jauh:. SFTP Buat ember Amazon S3
-
Buat AWS Identity and Access Management peran untuk mengakses penyimpanan Amazon S3 dan rahasia kami di Secrets Manager:. Buat IAM peran dengan izin yang diperlukan
-
Buat server Transfer Family yang menggunakan SFTP protokol, dan pengguna yang dikelola layanan yang menggunakan SFTP konektor untuk mentransfer file ke atau dari SFTP server: Membuat SFTP server Transfer Family dan pengguna
-
Buat AWS Secrets Manager rahasia yang menyimpan kredensil yang digunakan oleh SFTP konektor untuk masuk ke SFTP server jarak jauh:. Buat dan simpan rahasia di AWS Secrets Manager
Buat ember Amazon S3
Untuk membuat bucket Amazon S3
-
Masuk ke AWS Transfer Family konsol di https://console.aws.amazon.com/s3/
. -
Pilih Wilayah dan masukkan nama.
Untuk tutorial ini, ember kami ada di
US East (N. Virginia) us-east-1
, dan namanyasftp-server-storage-east
. -
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
, kamiusing 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
-
Masuk ke AWS Management Console dan buka AWS Secrets Manager konsol di https://console.aws.amazon.com/secretsmanager/
. -
Pada panel navigasi kiri, pilih Rahasia.
-
Pada halaman Rahasia, pilih Simpan rahasia baru.
-
Pada halaman Pilih jenis rahasia, untuk tipe Rahasia, pilih Jenis rahasia lainnya.
-
Di bagian pasangan kunci/Nilai, pilih tab kunci/Nilai.
-
Kunci — Masukkan
Username
. -
nilai — Masukkan nama pengguna kami,
sftp-testuser
.
-
-
Untuk memasukkan kunci, kami sarankan Anda menggunakan tab Plaintext.
-
Pilih Tambah baris, lalu masukkan
PrivateKey
. -
Pilih tab Plaintext. Bidang sekarang berisi teks berikut:
{"Username":"sftp-testuser","PrivateKey":""}
-
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).
-
-
Pilih Berikutnya.
-
Pada halaman Konfigurasi rahasia, masukkan nama untuk rahasia Anda. Untuk tutorial ini, kami beri nama rahasianya
aws/transfer/sftp-connector1
. -
Pilih Berikutnya, dan kemudian terima default pada halaman Konfigurasi rotasi. Lalu pilih Berikutnya.
-
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
-
Buka AWS Transfer Family konsol di https://console.aws.amazon.com/transfer/
. -
Di panel navigasi kiri, pilih Konektor, lalu pilih Buat konektor.
-
Pilih SFTPjenis konektor untuk membuat SFTP konektor, lalu pilih Berikutnya.
-
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.rproxy.goskope.comGanti
1111aaaa2222bbbb3
dengan ID server Transfer Family Anda. -
Untuk peran Access, masukkan peran yang kita buat sebelumnya,
sftp-connector-role
. -
Untuk peran Logging, pilih
AWSTransferLoggingAccess
.catatan
AWSTransferLoggingAccessadalah kebijakan yang AWS dikelola. Kebijakan ini dijelaskan secara rinci dalamAWS kebijakan terkelola: AWSTransferLoggingAccess.
-
-
Di bagian SFTPKonfigurasi, berikan informasi berikut:
-
Untuk kredensil Connector, pilih nama sumber daya Secrets Manager yang berisi SFTP kredensil. Untuk tutorialnya, pilih
aws/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.
-
-
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.
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-east
Ember Anda sekarang akan terlihat seperti ini.
Jika Anda tidak melihat file seperti yang diharapkan, periksa CloudWatch log Anda.
Untuk memeriksa CloudWatch log Anda
-
Buka CloudWatch konsol Amazon di https://console.aws.amazon.com/cloudwatch/
-
Pilih Grup log dari menu navigasi kiri.
-
Masukkan ID konektor Anda di bilah pencarian untuk menemukan log Anda.
-
Pilih aliran Log yang dikembalikan dari pencarian.
-
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.
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.