Post

Setup SFTP with AWS Transfer Family

Setup SFTP with AWS Transfer Family

SFTP atau Secure File Transfer Protocol adalah protokol yang berfungsi untuk kebutuhan transfer data (upload/download). Pada koneksi antar client dan server, SFTP menggunakan SSH (Secure Shell Protocol) yang menjadikan proses transfer menjadi lebih aman. Kali ini kita akan menggunakan layanan dari AWS yang bernama AWS Transfer Family.

AWS Transfer Family adalah sebuah layanan untuk kebutuhan transfer seperti FTP, SFTP, FTPS. Service ini sudah bisa dibilang serverless, karena server yang bekerja sudah fully managed oleh AWS. Jadi kita tidak perlu memikirkan resource servernya.

Kita juga bisa custom domain untuk endpoint dari SFTP server kita. Untuk penyimpanannya nanti akan dikirimkan ke Amazon S3 seperti diagram di bawah ini.

Oke langsung saja ke tutorialnya.

1. Buat Bucket S3

Pertama kita akan membuat bucket S3 terlebih dahulu sebagai media penyimpanannya.

Masuk ke menu S3 → Bucket → Create bucket

  • Nama bucket diisi bebas
  • Region juga bebas

2. Setup IAM Role untuk User SFTP

Masuk ke menu IAM → Roles → Create role kemudian next:

Add permission ke AmazonS3FullAccess:

Selanjutnya beri nama dan create role:

Untuk membatasi user, bisa edit file JSON pada role yang sudah dibuat:

Edit jadi seperti ini:

3. Membuat SFTP Server

Masuk ke menu AWS Transfer Family, kemudian Create server:

Pilih yang SFTP:

Kemudian pilih Service managed:

Untuk endpoint nya kita biarkan default saja:

Selanjutnya pilih Amazon S3:

Langkah selanjutnya biarkan default saja dan klik Create Server:

Tunggu sampai statusnya Online:

Kemudian tambahkan user: Users → Add users

Kita perlu menambahkan SSH key. Jika belum ada bisa mengikuti perintah dibawah ini:

1
2
3
4
5
# Generate SSH key
ssh-keygen -t rsa -b 4096 -f sftp-key

# Lihat public key
cat sftp-key.pub

Kemudian copy dan paste key publiknya (saya sarankan untuk menjadikannya satu baris pada text editor):

4. Cara Akses SFTP

Menggunakan Terminal Linux

1
sftp -i sftp-key username@server-id.server.transfer.region.amazonaws.com

Menggunakan FileZilla

Opsional: Convert file SSH private key menjadi file PPK menggunakan PuTTY Generator:

Kemudian masuk ke FileZilla dan masuk ke File → Site Manager:

Konfigurasi FileZilla:

  • Protocol: SFTP - SSH File Transfer Protocol
  • Host: server-id.server.transfer.region.amazonaws.com
  • Logon Type: Key file
  • User: username yang sudah dibuat
  • Key file: Browse ke private key file (.pem atau .ppk)

Setelah itu kita sudah bisa konek dan transfer file ke S3:

Kesimpulan

Kita sudah bisa membuat server SFTP sendiri dan transfer ke S3 menggunakan AWS Transfer Family. Keuntungan menggunakan service ini:

  • ✅ Fully managed - tidak perlu maintain server
  • ✅ Scalable - auto scale sesuai kebutuhan
  • ✅ Secure - menggunakan SSH protocol
  • ✅ Terintegrasi dengan S3 - data langsung masuk ke bucket
  • ✅ Custom domain - bisa menggunakan domain sendiri

Sekian dan terima kasih!

This post is licensed under CC BY 4.0 by the author.