SEC05-BP01 Buat lapisan jaringan - AWS Well-Architected Framework

SEC05-BP01 Buat lapisan jaringan

Segmentasikan topologi jaringan Anda ke dalam lapisan yang berbeda-beda berdasarkan pengelompokan logis komponen beban kerja Anda sesuai dengan sensitivitas data dan persyaratan aksesnya. Bedakan antara komponen yang memerlukan akses masuk dari internet, seperti titik akhir web publik, dan yang hanya membutuhkan akses internal, seperti basis data.

Hasil yang diinginkan: Lapisan jaringan Anda merupakan bagian dari pendekatan pertahanan mendalam yang integral terhadap keamanan yang melengkapi strategi autentikasi dan otorisasi identitas beban kerja Anda. Lapisan diterapkan berdasarkan sensitivitas data dan persyaratan akses, dengan arus lalu lintas dan mekanisme kontrol yang sesuai.

Antipola umum:

  • Anda membuat semua sumber daya dalam satu VPC atau subnet.

  • Anda menyusun lapisan jaringan tanpa mempertimbangkan persyaratan sensitivitas data, perilaku komponen, atau fungsionalitas.

  • Anda menggunakan VPC dan subnet sebagai default untuk semua pertimbangan lapisan jaringan, dan Anda tidak mempertimbangkan pengaruh layanan terkelola AWS terhadap topologi Anda.

Manfaat menjalankan praktik terbaik ini: Pembuatan lapisan jaringan adalah langkah pertama dalam membatasi jalur yang tidak perlu melalui jaringan, terutama yang mengarah ke sistem dan data kritis. Hal ini mempersulit pelaku yang tidak sah untuk mendapatkan akses ke jaringan Anda dan menavigasi ke sumber daya tambahan di dalamnya. Lapisan jaringan diskrit bermanfaat dalam mengurangi cakupan analisis untuk sistem inspeksi, seperti untuk deteksi intrusi atau pencegahan malware. Hal ini mengurangi potensi positif palsu dan overhead pemrosesan yang tidak perlu.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Tinggi

Panduan implementasi

Saat merancang arsitektur beban kerja, biasanya berbagai komponen dipisahkan menjadi lapisan yang berbeda-beda berdasarkan tanggung jawabnya. Misalnya, aplikasi web dapat memiliki lapisan presentasi, lapisan aplikasi, dan lapisan data. Anda dapat mengambil pendekatan serupa saat merancang topologi jaringan Anda. Kontrol jaringan dasarnya dapat membantu memberlakukan persyaratan akses data pada beban kerja Anda. Misalnya, dalam arsitektur aplikasi web tiga tingkat, Anda dapat menyimpan file lapisan presentasi statis Anda di Amazon S3 dan menyajikannya dari jaringan pengiriman konten (CDN), seperti Amazon CloudFront. Lapisan aplikasi dapat memiliki titik akhir publik yang diberikan oleh Application Load Balancer (ALB) di subnet publik Amazon VPC (mirip dengan zona demiliterisasi, atau DMZ), dengan layanan backend yang di-deploy ke subnet privat. Lapisan data, yang merupakan sumber daya hosting seperti basis data dan sistem file bersama, dapat berada di subnet privat yang berbeda dari sumber daya lapisan aplikasi Anda. Pada setiap batas lapisan ini (CDN, subnet publik, subnet privat), Anda dapat menerapkan kontrol yang hanya mengizinkan lalu lintas sah yang dapat melintasi batas tersebut.

Mirip dengan pemodelan lapisan jaringan berdasarkan tujuan fungsional komponen beban kerja Anda, pertimbangkan juga sensitivitas data yang diproses. Menggunakan contoh aplikasi web, meskipun semua layanan beban kerja Anda mungkin berada dalam lapisan aplikasi, layanan yang berbeda dapat memproses data dengan tingkat sensitivitas yang berbeda. Dalam kasus ini, membagi lapisan aplikasi menggunakan beberapa subnet privat, VPC yang berbeda di Akun AWS yang sama, atau bahkan VPC yang berbeda di Akun AWS yang berbeda untuk setiap tingkat sensitivitas data mungkin sesuai dengan persyaratan kontrol Anda.

Pertimbangan lebih lanjut yang harus dilakukan untuk lapisan jaringan adalah konsistensi perilaku komponen beban kerja Anda. Melanjutkan contoh ini, di lapisan aplikasi, Anda mungkin memiliki layanan yang menerima input dari pengguna akhir atau integrasi sistem eksternal yang secara inheren lebih berisiko daripada input ke layanan lain. Contohnya termasuk unggahan file, skrip kode yang dijalankan, pemindaian email, dan sebagainya. Dengan menempatkan layanan tersebut di lapisan jaringannya sendiri, akan terbentuk batas isolasi yang lebih kuat di sekitarnya, dan perilaku uniknya dapat dicegah agar tidak menghasilkan peringatan positif palsu dalam sistem inspeksi.

Sebagai bagian dari desain Anda, pertimbangkan pengaruh penggunaan layanan terkelola AWS terhadap topologi jaringan Anda. Tinjau manfaat layanan seperti Amazon VPC Lattice dalam membantu mempermudah interoperabilitas komponen beban kerja Anda antarlapisan jaringan. Saat menggunakan AWS Lambda, lakukan deployment layanan ini di subnet VPC Anda kecuali jika ada alasan khusus untuk tidak melakukannya. Tentukan bagian-bagian yang memerlukan titik akhir VPC dan AWS PrivateLink untuk menyederhanakan upaya dalam mematuhi kebijakan keamanan yang membatasi akses ke gateway internet.

Langkah implementasi

  1. Tinjau arsitektur beban kerja Anda. Kelompokkan komponen dan layanan secara logis berdasarkan fungsi yang diberikan, sensitivitas data yang diproses, dan perilakunya.

  2. Untuk komponen yang merespons permintaan dari internet, pertimbangkan untuk menggunakan penyeimbang beban atau perantara lainnya guna menyediakan titik akhir publik. Pertimbangkan pengalihan kontrol keamanan menggunakan layanan terkelola, seperti CloudFront, Amazon API Gateway, Elastic Load Balancing, dan AWS Amplify untuk meng-host titik akhir publik.

  3. Untuk komponen yang berjalan di lingkungan komputasi, seperti instans Amazon EC2, kontainer AWS Fargate, atau fungsi Lambda, lakukan deployment ke subnet privat berdasarkan grup Anda dari langkah pertama.

  4. Untuk layanan AWS terkelola penuh, seperti Amazon DynamoDB, Amazon Kinesis, atau Amazon SQS, pertimbangkan untuk menggunakan titik akhir VPC sebagai default untuk akses melalui alamat IP privat.

Sumber daya

Praktik terbaik terkait:

Video terkait:

Contoh terkait: