Keamanan Microservices Bagaimana Mengamankan Infrastruktur Microservice Anda?



Artikel tentang Keamanan Layanan Mikro ini akan membahas beberapa praktik terbaik untuk mengamankan layanan mikro secara mendetail.

Di pasar saat ini di mana industri menggunakan berbagai arsitektur dan aplikasi perangkat lunak, hampir mustahil untuk merasakannya, data Anda sepenuhnya aman. Jadi, saat membangun aplikasi menggunakan , masalah keamanan menjadi lebih signifikan, karena, layanan individu berkomunikasi satu sama lain dan dengan klien. Jadi, dalam artikel tentang keamanan layanan mikro kali ini, saya akan membahas berbagai cara yang dapat Anda terapkan untuk mengamankan layanan mikro dalam urutan berikut.

Apa itu layanan mikro?

Layanan mikro, alias arsitektur microservice , adalah gaya arsitektur yang menyusun aplikasi sebagai kumpulan layanan otonom kecil, yang dimodelkan di sekitar a domain bisnis. Jadi, Anda dapat memahami layanan mikro sebagai layanan individu kecil yang berkomunikasi satu sama lain di sekitar logika bisnis tunggal. Jika Anda ingin tahu lebih banyak tentang layanan mikro secara mendalam, Anda bisa





Apa itu Microservices - Microservice Security - Edureka

Sekarang, sering kali ketika perusahaan beralih dari arsitektur monolitik ke layanan mikro, mereka melihat banyak manfaat seperti skalabilitas, fleksibilitas, dan siklus pengembangan yang singkat. Namun, pada saat yang sama, arsitektur ini juga menghadirkan beberapa masalah yang kompleks.



Jadi, selanjutnya dalam artikel tentang keamanan layanan mikro ini, mari kita pahami masalah yang dihadapi dalam arsitektur layanan mikro.

Masalah yang dihadapi di layanan mikro

Masalah yang dihadapi dalam layanan mikro adalah sebagai berikut:

Masalah 1:

Pertimbangkan skenario, di mana pengguna perlu masuk untuk mengakses sumber daya. Sekarang, dalam arsitektur layanan mikro, detail login pengguna harus disimpan sedemikian rupa sehingga, pengguna tidak dimintai verifikasi setiap kali dia mencoba mengakses sumber daya. Sekarang, ini menimbulkan masalah, karena detail pengguna mungkin tidak aman dan juga dapat diakses oleh 3rdpesta.



Masalah 2:

Ketika klien mengirimkan permintaan, maka detail klien perlu diverifikasi dan juga izin yang diberikan kepada klien perlu diperiksa. Jadi, saat Anda menggunakan layanan mikro, mungkin saja untuk setiap layanan Anda harus mengautentikasi dan memberi otorisasi pada klien. Sekarang, untuk melakukan ini, pengembang mungkin menggunakan kode yang sama untuk setiap layanan. Namun, bukankah menurut Anda mengandalkan kode tertentu mengurangi fleksibilitas layanan mikro? Ya, tentu saja. Jadi, inilah salah satu masalah utama yang sering dihadapi dalam arsitektur ini.

Masalah 3:

Masalah berikutnya yang sangat menonjol adalah keamanan masing-masing layanan mikro. Dalam arsitektur ini, semua layanan mikro berkomunikasi satu sama lain secara bersamaan selain 3rdaplikasi pesta. Jadi, ketika klien masuk dari 3rdaplikasi pihak, Anda harus memastikan bahwa klien tidak mendapatkan akses ke data layanan mikro, dengan cara yang dapat dieksploitasi oleh klien.

contoh goto c ++

Baiklah, masalah yang disebutkan di atas bukan satu-satunya masalah yang ditemukan dalam arsitektur layanan mikro. Menurut saya, Anda dapat menghadapi banyak masalah lain yang berkaitan dengan keamanan berdasarkan aplikasi dan arsitektur yang Anda miliki. Oleh karena itu, mari kita lanjutkan dengan artikel ini tentang keamanan layanan mikro dan mengetahui cara terbaik untuk mengurangi tantangan.

Praktik terbaik untuk keamanan layanan mikro

Praktik terbaik untuk meningkatkan keamanan di layanan mikro adalah sebagai berikut:

Mekanisme Pertahanan dalam

Karena layanan mikro diketahui mengadopsi mekanisme apa pun pada tingkat yang terperinci, Anda dapat menerapkan mekanisme Pertahanan dalam Kedalaman untuk membuat layanan lebih aman. Dalam istilah awam, mekanisme Defense in Depth pada dasarnya adalah teknik di mana Anda dapat menerapkan lapisan tindakan pengamanan untuk melindungi layanan sensitif. Jadi, sebagai pengembang, Anda hanya perlu mengidentifikasi layanan dengan informasi paling sensitif dan kemudian menerapkan sejumlah lapisan keamanan untuk melindunginya. Dengan cara ini, Anda dapat memastikan bahwa penyerang potensial tidak dapat memecahkan keamanan sekaligus, dan harus maju dan mencoba untuk memecahkan mekanisme pertahanan semua lapisan.

sort () c ++

Selain itu, karena dalam arsitektur layanan mikro, Anda dapat menerapkan lapisan keamanan yang berbeda pada layanan yang berbeda, penyerang, yang berhasil memanfaatkan layanan tertentu, mungkin tidak dapat memecahkan mekanisme pertahanan layanan lain.

Token dan API Gateway

Seringkali, saat Anda membuka aplikasi, Anda melihat kotak dialog yang bertuliskan, 'Terima Perjanjian Lisensi dan izin untuk cookie'. Apa arti pesan ini? Nah, setelah Anda menerimanya, kredensial pengguna Anda akan disimpan dan sesi akan dibuat. Sekarang, lain kali Anda membuka halaman yang sama, halaman tersebut akan dimuat dari memori cache daripada server itu sendiri. Sebelum konsep ini muncul, sesi disimpan di sisi server secara terpusat. Tapi, ini adalah salah satu penghalang terbesar dalam penskalaan horizontal, aplikasi.

Token

Jadi, solusi untuk masalah ini adalah dengan menggunakan token, untuk mencatat kredensial pengguna. Token ini digunakan untuk mengidentifikasi pengguna dengan mudah dan disimpan dalam bentuk cookie. Sekarang, setiap kali klien meminta halaman web, permintaan tersebut diteruskan ke server, dan kemudian, server menentukan apakah pengguna memiliki akses ke sumber daya yang diminta atau tidak.

Sekarang, masalah utamanya adalah token di mana informasi pengguna disimpan. Jadi, data token perlu dienkripsi untuk menghindari eksploitasi dari 3rdsumber daya pesta. Jason Web Format atau yang paling sering disebut JWT adalah standar terbuka yang mendefinisikan format token, menyediakan library untuk berbagai bahasa dan juga mengenkripsi token tersebut.

Gateway API

API Gateways ditambahkan sebagai elemen tambahan untuk mengamankan layanan melalui otentikasi token. Itu Gateway bertindak sebagai titik masuk ke semua permintaan klien dan secara efisien menyembunyikan layanan mikro dari klien. Jadi, klien tidak memiliki akses langsung ke layanan mikro dan karenanya, tidak ada klien yang dapat memanfaatkan layanan apa pun.

Pengelolaan Penelusuran dan Sesi Terdistribusi

Pelacakan Terdistribusi

Saat menggunakan layanan mikro, Anda harus memantau semua layanan ini secara terus menerus. Tapi, ketika Anda harus memantau sejumlah besar layanan secara bersamaan, itu menjadi masalah. Untuk menghindari tantangan tersebut, Anda dapat menggunakan metode yang dikenal sebagai Pelacakan Terdistribusi. Pelacakan terdistribusi adalah metode untuk menunjukkan kegagalan dan mengidentifikasi alasan di baliknya. Tidak hanya itu, tetapi Anda juga dapat mengidentifikasi tempat terjadinya kegagalan. Jadi, sangat mudah untuk melacak, layanan mikro mana yang menghadapi masalah keamanan.

Manajemen Sesi

Manajemen Sesi adalah parameter penting yang harus Anda pertimbangkan saat mengamankan layanan mikro. Sekarang, sesi dibuat setiap kali pengguna membuka aplikasi. Jadi, Anda dapat menangani data sesi dengan cara berikut:

  1. Anda dapat menyimpan data sesi dari satu pengguna di server tertentu. Namun, sistem semacam ini, sepenuhnya bergantung pada load balancing antara layanan dan hanya memenuhi penskalaan horizontal.
  2. Data sesi lengkap dapat disimpan dalam satu contoh. Kemudian data tersebut dapat disinkronkan melalui jaringan. Satu-satunya masalah adalah, dalam metode ini, sumber daya jaringan habis.
  3. Anda dapat memastikan bahwa data pengguna dapat diperoleh dari penyimpanan sesi bersama, untuk memastikan, semua layanan dapat membaca data sesi yang sama. Namun, karena data diambil dari penyimpanan bersama, Anda perlu memastikan bahwa Anda memiliki beberapa mekanisme keamanan, untuk mengakses data dengan cara yang aman.

Sesi pertama dan Saling SSL

Ide sesi pertama sangat sederhana. Pengguna perlu masuk ke aplikasi satu kali, lalu mereka dapat mengakses semua layanan di aplikasi. Namun, setiap pengguna pada awalnya harus berkomunikasi dengan layanan otentikasi. Nah, ini pasti dapat menghasilkan banyak lalu lintas di antara semua layanan dan mungkin merepotkan bagi pengembang untuk mengetahui kegagalan dalam skenario seperti itu.

pengembang bersertifikasi cloudera untuk apache hadoop

Datang ke Mutual SSL, aplikasi sering menghadapi lalu lintas dari pengguna, 3rdpihak dan juga layanan mikro yang berkomunikasi satu sama lain. Tapi, karena layanan ini diakses oleh 3 orangrdpihak, selalu ada risiko serangan. Sekarang, solusi untuk skenario semacam itu adalah SSL bersama atau otentikasi timbal balik antara layanan mikro. Dengan ini, data yang ditransfer antar layanan akan dienkripsi. Satu-satunya masalah dengan metode ini adalah, ketika jumlah layanan mikro meningkat, karena setiap layanan akan memiliki sertifikat TLS sendiri, akan sangat sulit bagi pengembang untuk memperbarui sertifikat.

3rdakses aplikasi pesta

Semua dari kita mengakses aplikasi yang 3rdaplikasi pesta. 3rdaplikasi pihak menggunakan token API yang dibuat oleh pengguna dalam aplikasi untuk mengakses sumber daya yang diperlukan. Jadi, aplikasi pihak ketiga dapat mengakses data pengguna tertentu dan bukan kredensial pengguna lain. Nah, ini terkait dengan satu pengguna. Tetapi bagaimana jika aplikasi perlu mengakses data dari banyak pengguna? Menurut Anda, bagaimana permintaan seperti itu dipenuhi?

Penggunaan OAuth

Solusinya adalah dengan menggunakan OAuth. Saat Anda menggunakan OAuth, aplikasi meminta pengguna untuk mengotorisasi 3rdaplikasi pihak, untuk menggunakan informasi yang diperlukan dan menghasilkan token untuknya. Biasanya, kode otorisasi digunakan untuk meminta token guna memastikan bahwa URL panggilan balik pengguna tidak dicuri.

Jadi, saat menyebutkan token akses, klien berkomunikasi dengan server otorisasi, dan server ini memberi otorisasi kepada klien untuk mencegah orang lain memalsukan identitas klien. Jadi, saat Anda menggunakan Microservices dengan OAuth, layanan tersebut bertindak sebagai klien dalam arsitektur OAuth, untuk menyederhanakan masalah keamanan.

Teman-teman, saya tidak akan mengatakan bahwa ini adalah satu-satunya cara Anda dapat mengamankan layanan Anda. Anda dapat mengamankan layanan mikro dengan banyak cara berdasarkan arsitektur aplikasi. Jadi, jika Anda adalah seseorang yang bercita-cita membangun aplikasi berbasis layanan mikro, maka ingatlah bahwa keamanan layanan merupakan salah satu faktor penting yang perlu Anda waspadai. Oleh karena itu, kami mengakhiri artikel ini tentang keamanan layanan mikro. Saya harap Anda menemukan artikel ini informatif.

Jika Anda ingin mempelajari Microservices dan membangun aplikasi Anda sendiri, lihat yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami Layanan Mikro secara mendalam dan membantu Anda menguasai subjek.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar ' Keamanan Microservice 'Dan saya akan menghubungi Anda kembali.