View a markdown version of this page

Keamanan - Pengujian Beban Terdistribusi di AWS

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

Keamanan

Saat Anda membangun sistem pada infrastruktur AWS, tanggung jawab keamanan dibagi antara Anda dan AWS. Model tanggung jawab bersama ini mengurangi beban operasional Anda karena AWS mengoperasikan, mengelola, dan mengontrol komponen termasuk sistem operasi host, lapisan virtualisasi, dan keamanan fisik fasilitas tempat layanan beroperasi. Untuk informasi selengkapnya tentang keamanan AWS, kunjungi AWS Cloud Security.

Peran IAM

Peran AWS Identity and Access Management (IAM) memungkinkan pelanggan menetapkan kebijakan akses terperinci dan izin untuk layanan dan pengguna di AWS Cloud. Solusi ini menciptakan peran IAM yang memberikan akses fungsi AWS Lambda solusi untuk membuat sumber daya Regional.

Amazon CloudFront

Solusi ini menerapkan UI web yang dihosting di bucket Amazon S3, yang didistribusikan oleh Amazon. CloudFront Untuk membantu mengurangi latensi dan meningkatkan keamanan, solusi ini mencakup CloudFront distribusi dengan identitas akses asal, yaitu CloudFront pengguna yang menyediakan akses publik ke konten bucket situs web solusi. Secara default, CloudFront distribusi menggunakan TLS 1.2 untuk menegakkan protokol keamanan tingkat tertinggi. Untuk informasi selengkapnya, lihat Membatasi akses ke asal Amazon S3 di Panduan Pengembang CloudFront Amazon.

CloudFront mengaktifkan mitigasi keamanan tambahan untuk menambahkan header keamanan HTTP ke setiap respons penampil. Untuk informasi selengkapnya, lihat Menambahkan atau menghapus header HTTP dalam CloudFront tanggapan.

Solusi ini menggunakan CloudFront sertifikat default, yang memiliki protokol keamanan minimum yang didukung TLS v1.0. Untuk menegakkan penggunaan TLS v1.2 atau TLS v1.3, Anda harus menggunakan sertifikat SSL kustom alih-alih sertifikat default. CloudFront Untuk informasi selengkapnya, lihat Bagaimana cara mengonfigurasi CloudFront distribusi saya untuk menggunakan SSL/TLS sertifikat.

Amazon API Gateway

Solusi ini menerapkan titik akhir Amazon API Gateway yang dioptimalkan untuk menyediakan API RESTful untuk fungsionalitas pengujian beban menggunakan titik akhir API Gateway default, bukan domain khusus. Untuk API yang dioptimalkan tepi menggunakan titik akhir default, API Gateway menggunakan kebijakan keamanan. TLS-1-0 Untuk informasi selengkapnya, lihat Bekerja dengan REST API di Panduan Pengembang Amazon API Gateway.

Solusi ini menggunakan sertifikat API Gateway default, yang memiliki protokol keamanan minimum yang didukung TLS v1.0. Untuk menerapkan penggunaan TLS v1.2 atau TLS v1.3, Anda harus menggunakan domain kustom dengan sertifikat SSL kustom, bukan sertifikat API Gateway default. Untuk informasi selengkapnya, lihat Menyiapkan nama domain khusus untuk REST API.

Grup keamanan AWS Fargate

Secara default, solusi ini membuka aturan keluar grup keamanan AWS Fargate kepada publik. Jika Anda ingin memblokir AWS Fargate agar tidak mengirim lalu lintas ke mana pun, ubah aturan keluar menjadi Classless Inter-Domain Routing (CIDR) tertentu.

Grup keamanan ini juga menyertakan aturan masuk yang memungkinkan lalu lintas lokal di port 50.000 ke sumber apa pun yang termasuk dalam grup keamanan yang sama. Ini digunakan untuk memungkinkan wadah berkomunikasi satu sama lain.

Amazon VPC

VPC: Virtual Private Cloud (VPC) berbasis layanan Amazon VPC memberi Anda jaringan pribadi yang terisolasi secara logis di AWS Cloud.

Anda dapat menentukan VPC Anda sendiri dalam CloudFormation parameter AWS selama penerapan. VPC digunakan secara eksklusif oleh tugas ECS yang menghasilkan beban; konsol web dan API tidak digunakan dalam VPC ini. Jika Anda tidak menentukan VPC yang ada, solusinya akan membuat VPC baru dengan konfigurasi jaringan yang diperlukan. Jika Anda memilih untuk menggunakan VPC yang ada, VPC harus memenuhi persyaratan berikut untuk menjalankan tugas pengujian beban dengan sukses.

Persyaratan VPC

Persyaratan minimum untuk VPC yang akan digunakan dengan Pengujian Beban Terdistribusi di AWS tercantum di bawah ini.

  • VPC harus berisi setidaknya dua AZ

  • VPC harus berisi setidaknya dua subnet, masing-masing dalam AZ terpisah

  • Subnet VPC dapat bersifat publik atau pribadi, tetapi mereka harus menggunakan konfigurasi yang sama (baik publik ATAU keduanya pribadi)

  • VPC harus menyediakan akses ke titik akhir untuk ECR, CloudWatch Log, S3, dan IoT Core.

  • VPC harus menyediakan akses ke layanan yang ditargetkan oleh uji beban.

catatan

Jika Anda tidak memiliki VPC yang memenuhi kriteria ini, Anda dapat membuat VPC dengan wizard VPC dengan cepat. Untuk informasi selengkapnya, lihat Membuat VPC.

Subnet publik dapat memenuhi persyaratan ini dengan memasukkan yang berikut:

  • Gateway internet yang terpasang pada VPC

  • Rute ke gateway internet (0.0.0. 0/0)

Subnet pribadi dapat memenuhi persyaratan ini melalui penggunaan Gateway NAT atau titik akhir VPC, seperti yang dijelaskan di bawah ini.

Opsi 1: NAT Gateway

  • Terapkan NAT Gateway di setiap AZ dengan subnet pribadi

  • Konfigurasikan tabel rute untuk merutekan lalu lintas ke internet (0.0.0. 0/0) melalui NAT Gateway

Opsi 2: Titik Akhir VPC

Buat titik akhir VPC berikut di VPC Anda:

  • Titik Akhir API Amazon ECR: com.amazonaws.<region>.ecr.api

  • Titik Akhir Amazon ECR DKR: com.amazonaws.<region>.ecr.dkr

  • Titik akhir CloudWatch Log Amazon: com.amazonaws.<region>.logs

  • Titik akhir Gerbang Amazon S3: com.amazonaws.<region>.s3

  • Titik akhir AWS IoT Core (diperlukan jika menggunakan bagan data langsung) com.amazonaws.<region>.iot.data

Konfigurasi VPC lainnya juga dapat berfungsi.

penting

Grup keamanan yang dilampirkan ke setiap antarmuka titik akhir VPC harus mengizinkan lalu lintas TCP masuk pada port 443 dari grup keamanan tugas ECS.

Konfigurasi Grup Keamanan

Selama penerapan, solusi akan membuat grup keamanan dalam VPC Anda untuk mengizinkan lalu lintas berikut dengan tugas di cluster ECS:

  • Semua lalu lintas keluar

  • Lalu lintas masuk di pelabuhan 50000 dari tugas lain dalam kelompok keamanan yang sama, untuk memfasilitasi koordinasi antara tugas pekerja dan pemimpin.

Tes stress jaringan

Anda bertanggung jawab untuk menggunakan solusi ini di bawah Kebijakan Pengujian Amazon EC2. Kebijakan ini mencakup pengujian jaringan volume tinggi yang dijalankan dari instans Amazon EC2 ke instans Amazon EC2 lainnya, layanan AWS, atau titik akhir eksternal. Tes ini kadang-kadang disebut stress test, load test, atau gameday test. Tinjau kebijakan untuk memahami perbedaan antara stress test jaringan dan simulasi DDoS (yang dilarang pada EC2 dan dicakup secara terpisah oleh kebijakan Pengujian Simulasi DDoS), dan perhatikan bahwa AWS dapat menggunakan teknik lalu lintas atau pembentukan lalu lintas pada volume lalu lintas tinggi. Lihat halaman kebijakan untuk mengetahui ambang batas dan panduan saat ini sebelum menjalankan pengujian volume tinggi.

Membatasi akses ke antarmuka pengguna publik

Pendekatan untuk membatasi akses ke konsol web tergantung pada opsi penerapan yang Anda pilih.

Penerapan default (CloudFront + S3) — Untuk membatasi akses ke antarmuka pengguna yang menghadap publik di luar mekanisme autentikasi dan otorisasi yang disediakan oleh IAM dan Amazon Cognito, Anda dapat mengaitkan ACL web AWS WAF dengan distribusi. CloudFront Pertimbangkan untuk menggunakan solusi AWS WAF Security Automations, yang menerapkan serangkaian aturan AWS WAF yang telah dikonfigurasi sebelumnya yang memfilter serangan berbasis web umum. Template CloudFront default+S3 tidak menyebarkan sumber daya WAF secara otomatis.

Penerapan ALB+ECS Fargate — Solusi ini secara otomatis menerapkan ACL web AWS WAF di depan ALB dengan aturan terkelola yang memberikan perlindungan dasar terhadap serangan berbasis web umum. Anda dapat menyesuaikan aturan WAF untuk memenuhi persyaratan keamanan spesifik Anda, termasuk menambahkan daftar IP-based izinkan atau blokir, batasan geografis, pembatasan tarif, atau grup aturan terkelola AWS tambahan. Untuk petunjuk tentang memodifikasi konfigurasi WAF, lihat bagian integrasi WAF dalam instruksi penerapan.

Keamanan MCP Server (Opsional)

Jika Anda menerapkan integrasi MCP Server opsional, solusinya menggunakan Amazon Bedrock AgentCore Gateway untuk menyediakan akses aman untuk memuat data pengujian untuk agen AI. AgentCore Gateway memvalidasi token otentikasi Amazon Cognito untuk setiap permintaan, memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses Server MCP. Fungsi MCP Server Lambda mengimplementasikan pola akses hanya-baca, mencegah agen AI memodifikasi konfigurasi atau hasil pengujian. Semua interaksi MCP Server menggunakan batas izin dan kontrol akses yang sama seperti konsol web.

ALB+ECS Fargate menghosting keamanan konsol web (Opsional)

Jika Anda memilih opsi penyebaran ALB+ECS Fargate, pertimbangan keamanan berikut berlaku:

  • Kompatibilitas Akses Publik Blok VPC — Opsi ALB+ECS Fargate dirancang untuk lingkungan di mana kebijakan VPC Block Public Access (BPA) memblokir lalu lintas dari distribusi publik. CloudFront ALB dapat digunakan sebagai penyeimbang beban internal dalam VPC Anda, hanya dapat diakses melalui jaringan perusahaan, VPN, atau AWS Anda PrivateLink, memenuhi persyaratan nol paparan internet publik.

  • Manajemen sertifikat ACM — ALB menggunakan sertifikat ACM untuk penghentian HTTPS. Anda bertanggung jawab untuk memastikan sertifikat tetap valid dan diperbarui sebelum kedaluwarsa. ACM secara otomatis memperbarui sertifikat yang dikelola, tetapi sertifikat yang diimpor harus diperbarui secara manual. Untuk informasi selengkapnya, lihat Perpanjangan sertifikat terkelola di Panduan Pengguna AWS Certificate Manager.

  • Perlindungan AWS WAF — WAF diterapkan secara default dengan template ALB+ECS Fargate. Untuk detailnya, lihat Membatasi akses ke antarmuka pengguna publik.

Keamanan tanpa kepala (bawa server web Anda sendiri) (Opsional)

Jika Anda memilih opsi penyebaran tanpa kepala dan meng-host konsol web di server web Anda sendiri, Anda bertanggung jawab atas pertimbangan keamanan berikut:

  • Konfigurasi HTTPS - Kami sangat menyarankan untuk mengonfigurasi HTTPS di server web Anda.

  • Kontrol akses — Anda bertanggung jawab untuk menerapkan kontrol akses, aturan firewall, dan keamanan jaringan di server web Anda.

  • Pengerasan keamanan — Terapkan standar pengerasan keamanan organisasi Anda ke server web, termasuk patching, monitoring, dan deteksi intrusi.

Third-party kerangka pengujian

Pengujian Beban Terdistribusi pada AWS menggabungkan tiga kerangka pengujian pihak ketiga — Apache JMeter, Grafana K6, dan Locust. Di bawah model tanggung jawab bersama AWS, Anda bertanggung jawab untuk mengevaluasi apakah kerangka kerja ini dan versi bundelnya memenuhi persyaratan keamanan organisasi Anda sebelum menjalankan pengujian beban. Solusinya mendistribusikan setiap kerangka kerja tanpa modifikasi dan memverifikasi binari yang dibundel menggunakan checksum SHA512 pada waktu pembuatan dan runtime.

Untuk detail tentang kapan setiap framework diinstal dan cara penyediaannya, lihat Menguji penyediaan kerangka kerja.

Apache JMeter

Versi bundel Apache JMeter telah mengetahui kerentanan keamanan yang tidak dapat sepenuhnya ditambal secara eksternal tanpa merusak kompatibilitas dengan kerangka otomatisasi pengujian Taurus dan ekosistem plugin JMeter yang bergantung pada solusinya. Sebelum menjalankan tes beban, tinjau saran keamanan Apache JMeter dan evaluasi apakah mereka dapat menyebabkan kerentanan keamanan bagi Anda.

catatan

Apache JMeter juga berjalan di bawah tenda untuk tipe pengujian Single HTTP Endpoint. Saat Anda mengonfigurasi URL, metode, header, dan muatan tubuh di konsol web, solusinya menghasilkan rencana pengujian JMeter dan menjalankannya dengan biner JMeter yang dibundel. Oleh karena itu, pertimbangan keamanan JMeter yang dijelaskan dalam bagian ini berlaku untuk pengujian Titik Akhir HTTP Tunggal juga.

Jika Anda memerlukan versi JMeter yang ditambal, Anda memiliki dua opsi. Kedua opsi memerlukan arsip pengujian dan hanya tersedia untuk jenis uji JMeter:

  • Menyediakan biner JMeter yang ditambal - Sertakan biner JMeter yang ditambal dalam arsip pengujian Anda. Solusinya menggunakan biner Anda sebagai pengganti versi yang dibundel.

  • Ganti JAR plugin individual - Gunakan mekanisme penggantian plugin untuk mengganti JAR plugin rentan tertentu dengan versi yang ditambal. Untuk informasi lebih lanjut, lihat tes JMeter.

Jenis pengujian Titik Akhir HTTP Tunggal tidak menerima arsip pengujian dan oleh karena itu tidak dapat mengganti biner atau plugin JMeter yang dibundel. Jika Anda perlu menjalankan pengujian titik akhir HTTP dengan JMeter yang ditambal, gunakan jenis uji JMeter dan berikan skrip JMeter (.jmx) atau arsip.zip yang menyertakan jMeter biner atau plugin JMeter yang ditambal.

Grafana K6

K6 dirilis di bawah AGPL-3.0 lisensi. Konsol web menampilkan pesan pengakuan lisensi saat Anda membuat pengujian K6 baru. Tidak ada kerentanan keamanan yang diketahui diidentifikasi dalam versi bundel K6 pada saat rilis solusi ini. Solusi ini tidak memantau K6 untuk kerentanan baru secara berkelanjutan; Anda bertanggung jawab untuk mengevaluasi K6 terhadap persyaratan keamanan Anda selama penggunaannya.

Belalang

Tidak ada kerentanan keamanan yang diketahui diidentifikasi dalam versi Locust yang dibundel pada saat rilis solusi ini. Solusi ini tidak memantau Locust untuk kerentanan baru secara berkelanjutan; Anda bertanggung jawab untuk mengevaluasi Locust terhadap persyaratan keamanan Anda selama penggunaannya.