Pola gatekeeper

Azure Dedicated Host

Lindungi aplikasi dan layanan dengan menggunakan instans host khusus untuk broker permintaan antara klien dan aplikasi atau layanan. Broker memvalidasi dan membersihkan permintaan, dan dapat memberikan lapisan keamanan tambahan dan membatasi permukaan serangan sistem.

Konteks dan masalah

Layanan cloud mengekspos titik akhir yang memungkinkan aplikasi klien untuk memanggil API mereka. Kode yang digunakan untuk menerapkan pemicu API atau melakukan beberapa tugas, termasuk tetapi tidak terbatas pada autentikasi, otorisasi, validasi parameter, dan beberapa atau semua pemrosesan permintaan. Kode API kemungkinan akan mengakses penyimpanan dan layanan lain atas nama klien.

Jika pengguna berbahaya mengorbankan sistem dan mendapatkan akses ke lingkungan hosting aplikasi, mekanisme keamanan dan aksesnya ke data dan layanan lain diekspos. Akibatnya, pengguna berbahaya dapat memperoleh akses tidak terbatas ke kredensial, kunci penyimpanan, informasi sensitif, dan layanan lainnya.

Solusi

Salah satu solusi untuk masalah ini adalah memisahkan kode yang mengimplementasikan titik akhir publik, dari kode yang memproses permintaan dan mengakses penyimpanan. Anda dapat mencapai pemisahan dengan menggunakan fasad atau tugas khusus yang berinteraksi dengan klien dan kemudian menyerahkan permintaan—mungkin melalui antarmuka yang dipisahkan—ke host atau tugas yang menangani permintaan. Angka tersebut memberikan gambaran tingkat tinggi tentang pola ini.

Gambaran tingkat tinggi tentang pola ini

Pola penjaga gerbang dapat digunakan untuk melindungi penyimpanan, atau dapat digunakan sebagai fasad yang lebih komprehensif untuk melindungi semua fungsi aplikasi. Faktor-faktor yang penting adalah:

  • Validasi terkontrol. Penjaga gerbang memvalidasi semua permintaan, dan menolak permintaan yang tidak memenuhi persyaratan validasi.
  • Risiko dan eksposur yang terbatas. Gatekeeper tidak memiliki akses ke kredensial atau kunci yang digunakan oleh host tepercaya untuk mengakses penyimpanan dan layanan. Jika gatekeeper dikompromikan, penyerang tidak mendapatkan akses ke kredensial atau kunci ini.
  • Keamanan yang tepat. Gatekeeper berjalan dalam mode hak istimewa terbatas, sementara sisa aplikasi berjalan dalam mode kepercayaan penuh yang diperlukan untuk mengakses penyimpanan dan layanan. Jika gatekeeper dikompromikan, ia tidak dapat langsung mengakses layanan aplikasi atau data.

Pola ini bertindak seperti firewall dalam topografi jaringan yang khas. Hal ini memungkinkan penjaga gerbang untuk memeriksa permintaan dan membuat keputusan tentang apakah perlu meneruskan permintaan ke host tepercaya yang melakukan tugas yang diperlukan. Keputusan ini biasanya mengharuskan penjaga gerbang untuk memvalidasi dan membersihkan konten permintaan sebelum meneruskannya ke host tepercaya.

Masalah dan pertimbangan

Pertimbangkan poin-poin berikut saat memutuskan cara menerapkan pola ini:

  • Pastikan bahwa host tepercaya hanya mengekspos titik akhir internal atau terlindungi, yang hanya digunakan oleh penjaga gerbang. Host tepercaya tidak boleh mengekspos titik akhir atau antarmuka eksternal apa pun.
  • Penjaga gerbang harus berjalan dalam mode hak istimewa terbatas, yang biasanya mengharuskan menjalankan penjaga gerbang dan host tepercaya di layanan atau komputer virtual yang dihosting terpisah.
  • Penjaga gerbang tidak boleh melakukan pemrosesan apa pun yang terkait dengan aplikasi atau layanan atau mengakses data apa pun. Fungsinya murni untuk memvalidasi dan membersihkan permintaan. Host tepercaya mungkin perlu melakukan validasi permintaan tambahan, tetapi penjaga gerbang harus melakukan validasi inti.
  • Gunakan saluran komunikasi aman (HTTPS, SSL, atau TLS) antara penjaga gerbang dan host atau tugas tepercaya jika memungkinkan. Namun, beberapa lingkungan hosting tidak mendukung HTTPS pada titik akhir internal.
  • Menambahkan lapisan tambahan untuk mengimplementasikan pola penjaga gerbang kemungkinan akan berdampak pada performa karena pemrosesan tambahan dan komunikasi jaringan yang diperlukan.
  • Penjaga gerbang instans bisa menjadi satu titik kegagalan. Untuk meminimalkan dampak kegagalan, pertimbangkan untuk menyebarkan instans redundan dan menggunakan mekanisme penskalaan otomatis untuk memastikan kapasitas untuk mempertahankan ketersediaan.

Kapan menggunakan pola ini

Pola ini berguna untuk aplikasi yang:

  • menangani informasi sensitif
  • mengekspos layanan yang memerlukan perlindungan tingkat tinggi dari serangan berbahaya
  • melakukan operasi misi penting yang tidak dapat terganggu.
  • memerlukan validasi permintaan dilakukan secara terpisah dari tugas utama, atau untuk memusatkan validasi ini untuk menyederhanakan pemeliharaan dan administrasi

Desain beban kerja

Arsitek harus mengevaluasi bagaimana pola Gatekeeper dapat digunakan dalam desain beban kerja mereka untuk mengatasi tujuan dan prinsip yang tercakup dalam pilar Azure Well-Architected Framework. Contohnya:

Pilar Bagaimana pola ini mendukung tujuan pilar
Keputusan desain keamanan membantu memastikan kerahasiaan, integritas, dan ketersediaan data dan sistem beban kerja Anda. Menambahkan gateway ke dalam alur permintaan memungkinkan Anda memusatkan fungsionalitas keamanan seperti firewall aplikasi web, perlindungan DDoS, deteksi bot, manipulasi permintaan, inisiasi autentikasi, dan pemeriksaan otorisasi.

- Kontrol JARINGAN SE:06
- Pemantauan SE:10 dan deteksi ancaman
Efisiensi Performa membantu beban kerja Anda memenuhi tuntutan secara efisien melalui pengoptimalan dalam penskalaan, data, kode. Pola ini adalah bagaimana Anda dapat menerapkan pembatasan pada tingkat gateway daripada menerapkan pemeriksaan laju di tingkat simpul. Status laju koordinasi di antara semua simpul tidak berkinerja secara inheren.

- PE:03 Memilih layanan

Seperti halnya keputusan desain apa pun, pertimbangkan tradeoff terhadap tujuan pilar lain yang mungkin diperkenalkan dengan pola ini.

Contoh

Dalam skenario yang dihosting cloud, pola ini dapat diimplementasikan dengan memisahkan peran penjaga gerbang atau komputer virtual, dari peran dan layanan tepercaya dalam aplikasi. Implementasi dapat menggunakan titik akhir internal, antrean, atau penyimpanan sebagai mekanisme komunikasi menengah. Gambar mengilustrasikan menggunakan titik akhir internal.

Contoh pola menggunakan web Cloud Services dan peran pekerja

Pola Kunci Valet mungkin juga relevan saat menerapkan pola Gatekeeper. Saat berkomunikasi antara Gatekeeper dan peran tepercaya, ini adalah praktik yang baik untuk meningkatkan keamanan dengan menggunakan kunci atau token yang membatasi izin untuk mengakses sumber daya. Pola menjelaskan penggunaan token atau kunci yang memberi klien akses langsung terbatas ke sumber daya atau layanan tertentu.