Amankan transfer file dengan menggunakan Transfer Family, Amazon Cognito, dan GuardDuty - AWS Prescriptive Guidance

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

Amankan transfer file dengan menggunakan Transfer Family, Amazon Cognito, dan GuardDuty

Manoj Kumar, Amazon Web Services

Ringkasan

Solusi ini membantu Anda mentransfer file dengan aman melalui server SFTP dengan menggunakan. AWS Transfer Family Ini termasuk kemampuan pemindaian malware otomatis melalui Perlindungan Malware untuk S3, fitur Amazon GuardDuty. Ini dirancang untuk organisasi yang perlu bertukar file dengan aman dengan pihak eksternal dan memvalidasi bahwa semua file yang masuk dipindai untuk malware sebelum diproses.

Templat infrastruktur sebagai kode (IAc) yang disediakan dengan pola ini membantu Anda menerapkan yang berikut:

  • Server SFTP yang aman dengan otentikasi Amazon Cognito melalui AWS Lambda

  • Bucket Amazon Simple Storage Service (Amazon S3) untuk upload dan file masuk yang telah dipindai untuk malware

  • Arsitektur berbasis virtual private cloud (VPC) dengan subnet publik dan pribadi di beberapa Availability Zone

  • Kontrol akses berbasis IP untuk lalu lintas masuk dan keluar, dengan daftar izinkan dan tolak yang dapat dikonfigurasi

  • Pemindaian malware otomatis melalui GuardDuty

  • Perutean file cerdas berdasarkan hasil pemindaian melalui Amazon EventBridge dan Lambda

  • Pemberitahuan real-time untuk insiden keamanan melalui Amazon Simple Notification Service (Amazon SNS)

  • Enkripsi untuk bucket Amazon S3 dan variabel lingkungan Lambda melalui () AWS Key Management Service AWS KMS

  • Titik akhir Amazon Virtual Private Cloud (Amazon VPC) untuk akses tanpa eksposur internet

  • Pencatatan komprehensif melalui CloudWatch integrasi Amazon

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS

  • Izin dalam AWS Identity and Access Management (IAM) untuk melakukan tindakan yang dijelaskan dalam pola ini, termasuk menerapkan AWS CloudFormation templat yang menyediakan peran IAM

  • GuardDuty, diaktifkan di akun target

  • Perlindungan Malware untuk S3, diaktifkan di akun target

  • Kuota layanan memungkinkan Anda membuat yang berikut di akun target:

    • Satu VPC

    • Satu subnet pribadi

    • Satu subnet publik

    • Tiga alamat IP elastis

    • Batas konkurensi Lambda yang cukup

  • Alamat email yang valid untuk notifikasi terkait keamanan

  • (Opsional) Daftar alamat IP atau rentang CIDR yang ingin Anda izinkan atau tolak

  • (Opsional) AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi

Batasan

  • Perlindungan Malware untuk S3 tunduk pada kuota, seperti ukuran file maksimum. Untuk informasi selengkapnya, lihat Kuota dalam Perlindungan Malware untuk S3 dan Dukungan fitur Amazon S3 dalam dokumentasi. GuardDuty

  • Solusi ini hanya menggunakan autentikasi nama pengguna dan kata sandi Amazon Cognito. Metode otentikasi berbasis sertifikat atau lainnya tidak didukung dalam template ini. Secara default, solusi ini tidak mengkonfigurasi otentikasi multi-faktor (MFA).

  • Solusi ini mengimplementasikan kontrol akses berbasis IP melalui grup keamanan saja.

Arsitektur

Diagram arsitektur berikut menunjukkan sumber daya yang digunakan dalam pola ini. Solusi ini menggunakan Amazon Cognito untuk otentikasi dan otorisasi pengguna. Server AWS Transfer Family SFTP digunakan untuk upload file. File disimpan dalam bucket Amazon S3, dan Amazon GuardDuty memindai file untuk malware. Amazon SNS mengirimkan pemberitahuan email jika malware terdeteksi.

Menggunakan GuardDuty dan Cognito untuk mentransfer file dengan aman ke bucket Amazon S3.

Diagram menunjukkan alur kerja berikut:

  1. Seorang pengguna terhubung ke titik akhir server SFTP di. AWS Transfer Family Ini memulai proses otentikasi dengan kumpulan pengguna Amazon Cognito.

  2. Fungsi Lambda memulai proses otentikasi dan otorisasi dan memvalidasi kredensi pengguna dengan Amazon Cognito.

  3. Fungsi Lambda mengembalikan bucket Amazon UploadBucket S3 sebagai direktori home. Pengguna mengasumsikan peran IAM untuk server Transfer Family, dan fungsi Lambda memberi tahu pengguna bahwa mereka telah berhasil diautentikasi.

  4. Pengguna mengunggah file ke server SFTP Transfer Family. File disimpan di bucket UploadBucket Amazon S3.

  5. GuardDuty memindai file untuk malware. Hasil pemindaian potensial adalahNO_THREATS_FOUND,THREATS_FOUND,UNSUPPORTED,ACCESS_DENIED, danFAILED. Untuk hasil sampel, lihat hasil pemindaian objek S3 dalam GuardDuty dokumentasi.

  6. EventBridge Aturan mendeteksi peristiwa hasil pemindaian.

  7. EventBridge memulai fungsi Lambda perutean file.

  8. Fungsi Lambda memproses acara dan memfilter file berdasarkan hasil pemindaian sebagai berikut:

    • File yang memiliki hasil NO_THREATS_FOUND pemindaian dikirim ke bucket CleanBucket Amazon S3.

    • File yang memiliki hasil THREATS_FOUND pemindaian dikirim ke bucket MalwareBucket Amazon S3.

    • File yang memiliki hasil UNSUPPORTED pemindaian dikirim ke bucket ErrorBucket Amazon S3.

    • File yang memiliki hasil ACCESS_DENIED pemindaian dikirim ke bucket ErrorBucket Amazon S3.

    • File yang memiliki hasil FAILED pemindaian dikirim ke bucket ErrorBucket Amazon S3.

    Semua file dienkripsi dengan file. AWS KMS key

  9. Jika file dikirim ke bucket MalwareBucket Amazon S3, fungsi Lambda memulai topik Amazon SNS. Topik Amazon SNS mengirimkan pemberitahuan email ke alamat email yang Anda konfigurasikan.

Alat

Layanan AWS

  • Amazon CloudWatch membantu Anda memantau metrik sumber AWS daya Anda dan aplikasi yang Anda jalankan AWS secara real time.

  • Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler.

  • Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS

  • Amazon GuardDuty adalah layanan pemantauan keamanan berkelanjutan yang menganalisis dan memproses log untuk mengidentifikasi aktivitas tak terduga dan berpotensi tidak sah di lingkungan Anda AWS .

  • AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • AWS Transfer Familymembantu Anda mentransfer file masuk dan keluar dari layanan AWS penyimpanan melalui protokol SFTP, FTPS, atau FTP.

  • Amazon Virtual Private Cloud (Amazon VPC) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWS

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub AWS Transfer Family dan GuardDuty Malware Scanning Solution.

Praktik terbaik

CloudFormation Template yang disediakan dirancang untuk menggabungkan banyak praktik AWS terbaik, seperti izin hak istimewa paling sedikit untuk peran dan kebijakan IAM, enkripsi saat istirahat dan dalam perjalanan, dan rotasi kunci otomatis. Untuk lingkungan produksi, pertimbangkan untuk menerapkan rekomendasi tambahan berikut:

  • Aktifkan MFA untuk pengguna Amazon Cognito

  • AWS ShieldMelaksanakan perlindungan penolakan layanan (DDoS) terdistribusi

  • Konfigurasikan AWS Configuntuk pemantauan kepatuhan berkelanjutan

  • Implementasikan AWS CloudTrailuntuk pencatatan API yang komprehensif

  • Siapkan Amazon GuardDuty untuk deteksi ancaman di luar pemindaian malware

  • Implementasikan AWS Security Hubuntuk manajemen keamanan terpusat

  • Gunakan AWS Secrets Manageruntuk manajemen kredensi

  • Menerapkan pemantauan lalu lintas jaringan dengan Traffic Mirroring

  • Konfigurasikan Amazon Macie untuk penemuan dan perlindungan data sensitif di Amazon S3

  • Menerapkan penilaian keamanan reguler dan pengujian penetrasi

  • Menetapkan rencana respon insiden formal

  • Menerapkan penambalan otomatis untuk semua komponen

  • Melakukan pelatihan keamanan reguler untuk administrator

  • Siapkan AWS Organizationsuntuk manajemen keamanan multi-akun

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori.

Masukkan perintah berikut untuk mengkloning repositori solusi pemindaian GuardDuty malware ke workstation lokal Anda:AWS Transfer Family

git clone https://github.com/aws-samples/sample-secure-transfer-family-code.git
Pengembang aplikasi, DevOps insinyur

Buat CloudFormation tumpukan.

  1. Ikuti petunjuk dalam CloudFormation dokumentasi untuk membuat tumpukan melalui CloudFormation konsol atau melalui file AWS CLI. Konfigurasikan parameter berikut:

    • UploadBucketName- Unggah nama bucket

    • CleanBucketName- Bersihkan nama bucket file

    • MalwareBucketName- Nama ember file malware

    • ErrorBucketName- Kesalahan file nama bucket

    • SecurityTeamEmail- Alamat email untuk peringatan

    • VpcCIDR- Rentang CIDR untuk VPC

    • PublicSubnet1CIDR- Rentang CIDR untuk subnet publik 1

    • PublicSubnet2CIDR- Rentang CIDR untuk subnet publik 2

    • PrivateSubnet1CIDR- Rentang CIDR untuk subnet pribadi 1

    • PrivateSubnet2CIDR- Rentang CIDR untuk subnet pribadi 2

    • AllowedIPAddresses- Alamat IP yang diizinkan atau rentang CIDR

    • EnableEgressRules— Jika Anda ingin mengaktifkan aturan jalan keluar untuk grup keamanan, masukkan. true Jika Anda ingin menonaktifkan aturan jalan keluar, masukkan. false

  2. Tunggu hingga penerapan tumpukan selesai.

  3. Dalam output pembuatan tumpukan, catat titik akhir server SFTP. Anda membutuhkan nilai ini nanti.

Administrator cloud, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Aktifkan perlindungan malware.

  1. Masuk ke AWS Management Console dan buka GuardDuty konsol.

  2. Di panel navigasi, pilih Perlindungan Malware untuk S3.

  3. Di bagian Ember yang dilindungi, pilih Aktifkan.

  4. Di bawah Masukkan detail bucket S3, masukkan nama bucket Amazon S3. Atau, pilih Browse S3 untuk memilih bucket. Pilih ember UploadBucket Amazon S3.

  5. Di bawah Awalan, pilih Semua objek di bucket S3.

  6. Di bawah Tag objek yang dipindai, pilih objek Tag.

  7. Di bagian Akses layanan, pilih Buat dan gunakan peran layanan baru.

  8. Pilih Aktifkan.

Administrator cloud, administrator AWS

Tambahkan pengguna ke kumpulan pengguna.

Tambahkan satu atau beberapa pengguna ke kumpulan pengguna Amazon Cognito. Untuk petunjuknya, lihat Mengelola pengguna di kumpulan pengguna Anda di dokumentasi Amazon Cognito.

Administrator cloud, administrator AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Connect ke endpoint server SFTP.

  1. Masukkan perintah berikut untuk mendapatkan endpoint server SFTP, di mana nama <stack-name> tumpukan Anda: CloudFormation

    TRANSFER_ENDPOINT=$(aws cloudformation describe-stacks \   --stack-name <stack-name> \   --query 'Stacks[0].Outputs[?OutputKey==`TransferServerEndpoint`].OutputValue' \   --output text)
  2. Masukkan perintah berikut untuk terhubung ke server SFTP:

    sftp user@company.com@$TRANSFER_ENDPOINT
  3. Validasi bahwa Anda menerima prompt berikut:

    sftp>

    Ini menunjukkan bahwa Anda sekarang dapat memasukkan perintah untuk melakukan transfer file.

Pengembang aplikasi, administrator Cloud, arsitek Cloud, DevOps insinyur

Pemecahan Masalah

IsuSolusi

Otentikasi pengguna gagal

  1. Verifikasi bahwa pengguna ada di kumpulan pengguna Amazon Cognito.

  2. Validasi bahwa pengguna dikonfirmasi dan diaktifkan.

  3. Pastikan pengguna memberikan password yang benar.

  4. Periksa kesalahan di CloudWatch Log.

Untuk daftar AWS CLI perintah yang dapat membantu Anda melakukan langkah pemecahan masalah ini, lihat Perintah berguna untuk pemecahan masalah di bagian Informasi tambahan.

Otentikasi SFTP gagal

  1. Verifikasi bahwa pengguna ada di kumpulan pengguna Amazon Cognito.

  2. Validasi bahwa pengguna dikonfirmasi dan diaktifkan.

  3. Pastikan pengguna memberikan password yang benar.

  4. Verifikasi bahwa alamat IP diizinkan dalam grup keamanan untuk AWS Transfer Family server.

  5. Periksa kesalahan dalam log untuk fungsi Lambda otentikasi.

  6. Verifikasi bahwa peran IAM untuk AWS Transfer Family memiliki izin yang benar.

Untuk daftar AWS CLI perintah yang dapat membantu Anda melakukan langkah pemecahan masalah ini, lihat Perintah berguna untuk pemecahan masalah di bagian Informasi tambahan.

Akses unggahan file ditolak

  1. Verifikasi bahwa izin AWS KMS kunci dikonfigurasi dengan benar.

  2. Periksa kebijakan bucket Amazon S3.

  3. Konfirmasikan bahwa izin peran IAM telah dikonfigurasi dengan benar.

  4. Verifikasi bahwa titik akhir VPC dikonfigurasi dengan benar

  5. Verifikasi bahwa peran IAM untuk AWS Transfer Family memiliki izin yang benar.

Untuk daftar AWS CLI perintah yang dapat membantu Anda melakukan langkah pemecahan masalah ini, lihat Perintah berguna untuk pemecahan masalah di bagian Informasi tambahan.

Tidak ada pemindaian malware

  1. Aktifkan GuardDuty di akun Anda.

  2. Aktifkan Perlindungan Malware untuk S3.

  3. Verifikasi bahwa EventBridge aturan Amazon aktif.

  4. Periksa kesalahan dalam log untuk fungsi Lambda perutean file.

  5. Verifikasi bahwa notifikasi dikonfigurasi dengan benar di Amazon SNS.

Untuk daftar AWS CLI perintah yang dapat membantu Anda melakukan langkah pemecahan masalah ini, lihat Perintah berguna untuk pemecahan masalah di bagian Informasi tambahan.

Kesalahan fungsi Lambda

  1. Periksa konfigurasi VPC.

  2. Verifikasi bahwa titik akhir VPC dikonfigurasi dengan benar.

  3. Verifikasi bahwa peran IAM untuk AWS Transfer Family memiliki izin yang benar.

  4. Periksa kesalahan di CloudWatch Log.

  5. Verifikasi bahwa izin AWS KMS kunci dikonfigurasi dengan benar.

Untuk daftar AWS CLI perintah yang dapat membantu Anda melakukan langkah pemecahan masalah ini, lihat Perintah berguna untuk pemecahan masalah di bagian Informasi tambahan.

Sumber daya terkait

Informasi tambahan

Perintah yang berguna untuk pemecahan masalah

Periksa status CloudFormation tumpukan:

aws cloudformation describe-stacks \ --stack-name <STACK_NAME>

Daftar semua pengguna di kumpulan pengguna Amazon Cognito:

aws cognito-idp list-users \ --user-pool-id <USER_POOL_ID>

Lihat log untuk fungsi Lambda:

aws logs describe-log-groups \ --log-group-name-prefix /aws/lambda/

Periksa status GuardDuty:

aws guardduty list-detectors

Periksa aturan grup keamanan:

aws ec2 describe-security-groups \ --group-ids <SECURITY_GROUP_ID> \ --output table

Periksa status AWS Transfer Family server:

aws transfer describe-server \ --server-id <SERVER_ID>

Daftar semua file dalam ember Amazon S3:

aws s3 ls s3://<BUCKET_NAME>/ \ --recursive

Periksa status EventBridge aturan:

aws events describe-rule \ --name <RULE_NAME>