Praktik terbaik keamanan Azure Service Fabric

Selain artikel ini, harap tinjau juga daftar periksa keamanan Service Fabric untuk informasi selengkapnya.

Menyebarkan aplikasi di Azure cepat, mudah, dan hemat biaya. Sebelum Anda menyebarkan aplikasi cloud Anda ke produksi, lihat daftar praktik terbaik kami yang penting dan direkomendasikan untuk menerapkan kluster aman di aplikasi Anda.

Azure Service Fabric adalah platform sistem terdistribusi yang mempermudah pengemasan, penyebaran, dan pengelolaan layanan mikro yang andal dan terukur. Service Fabric juga mengatasi tantangan signifikan dalam mengembangkan dan mengelola aplikasi cloud. Pengembang dan administrator dapat menghindari masalah infrastruktur yang rumit dan fokus pada penerapan beban kerja yang sangat penting dan rumit yang terukur, andal, serta dapat dikelola.

Untuk setiap praktik terbaik, kami menjelaskan:

  • Apa itu praktik terbaik.
  • Mengapa Anda harus menerapkan praktik terbaik.
  • Apa yang mungkin terjadi jika Anda tidak menerapkan praktik terbaik.
  • Bagaimana Anda dapat belajar untuk menerapkan praktik terbaik.

Kami merekomendasikan praktik terbaik keamanan Azure Service Fabric berikut:

  • Gunakan templat Azure Resource Manager dan modul PowerShell Service Fabric untuk membuat kluster yang aman.
  • Gunakan sertifikat X.509.
  • Konfigurasikan kebijakan keamanan.
  • Terapkan konfigurasi keamanan Reliable Actors.
  • Konfigurasikan TLS untuk Azure Service Fabric.
  • Gunakan isolasi dan keamanan jaringan dengan Azure Service Fabric.
  • Konfigurasikan Azure Key Vault untuk keamanan.
  • Tetapkan pengguna ke peran.
  • Hal-hal yang perlu dipertimbangkan jika menghosting aplikasi yang tidak tepercaya di kluster Fabric Layanan.

Praktik terbaik untuk mengamankan kluster Anda

Selalu gunakan kluster yang aman:

  • Terapkan keamanan kluster dengan menggunakan sertifikat.
  • Berikan akses klien (admin dan baca-saja) dengan menggunakan ID Microsoft Entra.

Gunakan penyebaran otomatis:

  • Gunakan skrip untuk menghasilkan, menyebarkan, dan memutar rahasia.
  • Simpan rahasia di Azure Key Vault dan gunakan ID Microsoft Entra untuk semua akses klien lainnya.
  • Perlu otentikasi untuk akses manusia ke rahasia.

Selain itu, pertimbangkan pilihan konfigurasi berikut:

  • Buat jaringan sekitar (juga dikenal sebagai zona demiliterisasi, DMZ, dan subnet tersaring) dengan menggunakan Azure Network Security Groups (NSG).
  • Akses mesin virtual (VM) kluster atau kelola kluster Anda menggunakan server jump dengan Koneksi Desktop Jauh.

Kluster Anda harus diamankan untuk mencegah pengguna yang tidak sah terhubung, terutama saat kluster berjalan dalam produksi. Meskipun mungkin untuk membuat kluster yang tidak aman, pengguna anonim dapat terhubung ke kluster Anda jika kluster tersebut mengekspos titik akhir manajemen ke internet publik.

Ada tiga skenario untuk menerapkan keamanan kluster dengan menggunakan berbagai teknologi:

  • Keamanan simpul-ke-simpul: Skenario ini mengamankan komunikasi antara VM dan komputer di kluster. Bentuk keamanan ini memastikan bahwa hanya komputer yang diizinkan untuk bergabung dengan kluster yang dapat meng-hosting aplikasi dan layanan di kluster. Dalam skenario ini, kluster yang berjalan di Azure, atau kluster mandiri yang berjalan di Windows, dapat menggunakan keamanan sertifikat atau keamanan Windows untuk mesin Windows Server.
  • Keamanan klien-ke-simpul: Skenario ini mengamankan komunikasi antara klien Service Fabric dan simpul individu di kluster.
  • Kontrol akses berbasis peran Service Fabric (Service Fabric RBAC): Skenario ini menggunakan identitas terpisah (sertifikat, ID Microsoft Entra, dan sebagainya) untuk setiap peran administrator dan klien pengguna yang mengakses kluster. Anda menentukan identitas peran saat Anda membuat kluster.

Catatan

Rekomendasi keamanan untuk kluster Azure: Gunakan keamanan Microsoft Entra untuk mengautentikasi klien dan sertifikat untuk keamanan node-to-node.

Untuk mengonfigurasi kluster Windows mandiri, lihat Mengonfigurasi pengaturan untuk kluster Windows mandiri.

Gunakan templat Azure Resource Manager dan modul PowerShell Service Fabric untuk membuat kluster yang aman. Untuk petunjuk langkah demi langkah untuk membuat kluster Service Fabric yang aman dengan menggunakan templat Azure Resource Manager, lihat Membuat kluster Service Fabric.

Gunakan templat Azure Resource Manager:

  • Kustomisasi kluster Anda dengan menggunakan templat untuk mengonfigurasi penyimpanan terkelola untuk hard disk virtual (VHD) VM.
  • Terapkan perubahan pada grup sumber daya Anda dengan menggunakan templat untuk manajemen dan audit konfigurasi yang mudah.

Perlakukan konfigurasi kluster Anda sebagai kode:

  • Periksa konfigurasi penyebaran Anda dengan teliti.
  • Hindari menggunakan perintah implisit untuk memodifikasi sumber daya Anda secara langsung.

Banyak aspek siklus hidup aplikasi Service Fabric dapat diotomatisasi. Modul PowerShell Service Fabric mengotomatiskan tugas umum untuk menyebarkan, meningkatkan, menghapus, dan menguji aplikasi Azure Service Fabric. API Terkelola dan API HTTP untuk manajemen aplikasi juga tersedia.

Menggunakan sertifikat X.509

Selalu amankan kluster Anda dengan menggunakan sertifikat X.509 atau keamanan Windows. Keamanan hanya dikonfigurasi pada waktu pembuatan kluster. Keamanan tidak dapat diaktifkan setelah kluster dibuat.

Untuk menentukan sertifikat kluster, atur nilai ClusterCredentialType ke X509. Untuk menentukan sertifikat server untuk koneksi luar, atur properti ServerCredentialType ke X509.

Selain itu, ikuti praktik berikut:

  • Buat sertifikat untuk kluster produksi dengan menggunakan layanan sertifikat Windows Server yang dikonfigurasi dengan benar. Anda juga dapat memperoleh sertifikat dari otoritas sertifikat (OS) yang disetujui.
  • Jangan pernah menggunakan sertifikat sementara atau sertifikat uji untuk kluster produksi jika sertifikat dibuat dengan menggunakan MakeCert.exe atau alat serupa.
  • Gunakan sertifikat yang ditandatangani sendiri untuk kluster uji, tetapi tidak untuk kluster produksi.

Jika kluster tidak aman, siapa pun dapat terhubung ke kluster secara anonim dan melakukan operasi manajemen. Karena itu, selalu amankan kluster produksi dengan menggunakan sertifikat X.509 atau keamanan Windows.

Untuk mempelajari selengkapnya tentang menggunakan sertifikat X.509, lihat Menambahkan atau menghapus sertifikat untuk kluster Service Fabric.

Mengonfigurasi kebijakan keamanan

Service Fabric juga mengamankan sumber daya yang digunakan oleh aplikasi. Sumber daya seperti file, direktori, dan sertifikat disimpan di akun pengguna saat aplikasi disebarkan. Fitur ini membuat aplikasi yang sedang berjalan lebih aman satu sama lain, bahkan di lingkungan yang di-hosting bersama.

  • Gunakan grup atau pengguna domain Direktori Aktif: Jalankan layanan dengan kredensial untuk akun pengguna atau grup Direktori Aktif. Pastikan untuk menggunakan Direktori Aktif lokal dalam domain Anda dan bukan ID Microsoft Entra. Akses sumber daya lain di domain yang telah diberi izin dengan menggunakan pengguna atau grup domain. Misalnya, sumber daya seperti berbagi file.

  • Tetapkan kebijakan akses keamanan untuk titik akhir HTTP dan HTTPS: Tentukan properti SecurityAccessPolicy untuk menerapkan kebijakan RunAs ke layanan saat manifes layanan mendeklarasikan sumber daya titik akhir dengan HTTP. Port yang dialokasikan ke titik akhir HTTP merupakan daftar yang dikontrol akses dengan benar untuk akun pengguna RunAs tempat layanan dijalankan. Jika kebijakan tidak diatur, http.sys tidak memiliki akses ke layanan dan Anda bisa mendapatkan kegagalan panggilan dari klien.

Untuk mempelajari cara menggunakan kebijakan keamanan di kluster Service Fabric, lihat Mengonfigurasi kebijakan keamanan untuk aplikasi Anda.

Menerapkan konfigurasi keamanan Reliable Actors

Reliable Actor Service Fabric adalah implementasi dari pola desain aktor. Seperti pola desain perangkat lunak apa pun, keputusan apakah akan menggunakan pola tertentu dibuat berdasarkan kecocokan antara masalah perangkat lunak dengan polanya.

Secara umum, gunakan pola desain aktor untuk membantu memodelkan solusi untuk masalah perangkat lunak atau skenario keamanan berikut:

  • Ruang masalah Anda melibatkan sejumlah besar (ribuan atau lebih) unit status dan logika yang kecil, independen, dan terisolasi.
  • Anda bekerja dengan objek rangkaian tunggal yang tidak memerlukan interaksi signifikan dari komponen eksternal, termasuk status kueri di seluruh set aktor.
  • Instans aktor Anda tidak akan memblokir pemanggil dengan penundaan yang tidak dapat diprediksi dengan mengeluarkan operasi I/O.

Di Service Fabric, aktor diimplementasikan dalam kerangka kerja aplikasi Reliable Actors. Kerangka kerja ini didasarkan pada pola aktor dan dibangun di atas Layanan Andal Service Fabric. Setiap layanan aktor andal yang Anda tulis merupakan layanan andal yang dipartisi dan berstatus.

Setiap aktor didefinisikan sebagai instans jenis aktor, identik dengan cara objek .NET yang merupakan instans jenis .NET. Misalnya, jenis aktor yang mengimplementasikan fungsionalitas kalkulator mungkin memiliki banyak aktor dari jenis tersebut yang didistribusikan pada berbagai simpul di seluruh kluster. Setiap aktor yang didistribusikan ditandai secara unik oleh pengidentifikasi aktor.

Konfigurasi keamanan replikator digunakan untuk mengamankan saluran komunikasi yang digunakan selama replikasi. Konfigurasi ini mencegah layanan melihat lalu lintas replikasi satu sama lain dan memastikan bahwa data yang sangat tersedia aman. Secara default, bagian konfigurasi keamanan yang kosong mencegah keamanan yang replikasi. Konfigurasi replikator mengonfigurasi replikator yang bertanggung jawab dalam pembuatan status Actor State Provider sangat dapat diandalkan.

Mengonfigurasi TLS untuk Azure Service Fabric

Proses otentikasi server mengotentikasi titik akhir manajemen kluster ke klien manajemen. Klien manajemen kemudian mengetahui bahwa ia berbicara dengan kluster yang sebenarnya. Sertifikat ini juga menyediakan TLS untuk API manajemen HTTPS dan untuk Service Fabric Explorer melalui HTTPS. Anda harus mendapatkan nama domain kustom untuk kluster Anda. Saat Anda meminta sertifikat dari otoritas sertifikat, nama subjek sertifikat harus cocok dengan nama domain kustom yang Anda gunakan untuk kluster Anda.

Untuk mengonfigurasi TLS untuk aplikasi, pertama-tama Anda harus mendapatkan sertifikat SSL/TLS yang telah ditandatangani oleh OS. OS adalah pihak ketiga tepercaya yang mengeluarkan sertifikat untuk tujuan keamanan TLS. Jika Anda belum memiliki sertifikat SSL/TLS, Anda harus mendapatkannya dari perusahaan yang menjual sertifikat SSL/TLS.

Sertifikat harus memenuhi persyaratan berikut untuk sertifikat SSL/TLS di Azure:

  • Sertifikat harus memuat kunci privat.

  • Sertifikat harus dibuat untuk pertukaran kunci dan dapat diekspor ke file pertukaran informasi pribadi/{i>personal information exchange

  • Nama subjek sertifikat harus cocok dengan nama domain yang digunakan untuk mengakses layanan cloud Anda.

    • Dapatkan nama domain kustom yang akan digunakan untuk mengakses layanan cloud Anda.
    • Minta sertifikat dari OS dengan nama subjek yang cocok dengan nama domain kustom layanan Anda. Misalnya, jika nama domain kustom Anda adalah contoso.com,sertifikat dari OS Anda harus memiliki nama subjek .contoso.com atau www.contoso.com.

    Catatan

    Anda tidak dapat memperoleh sertifikat SSL/TLS dari OS untuk domaincloudapp.net.

  • Sertifikat harus menggunakan minimal enkripsi 2.048-bit.

Protokol HTTP tidak aman dan rentan terhadap serangan penyadapan. Data yang dikirimkan melalui HTTP dikirim sebagai teks biasa dari browser web ke server web atau antar titik akhir lainnya. Penyerang dapat mencegat dan melihat data sensitif yang dikirim melalui HTTP, seperti detail kartu kredit dan detail login akun. Ketika data dikirim atau diposting melalui browser melalui HTTPS, SSL memastikan bahwa informasi sensitif tersebut dienkripsi dan aman dari intersepsi.

Untuk mempelajari selengkapnya tentang menggunakan sertifikat SSL/TLS, lihat Mengonfigurasi TLS untuk aplikasi di Azure.

Menggunakan isolasi dan keamanan jaringan dengan Azure Service Fabric

Siapkan kluster aman 3 nodetype dengan menggunakan templat Azure Resource Manager sebagai contoh. Kontrol lalu lintas jaringan masuk dan keluar dengan menggunakan templat dan Network Security Group.

Templat ini memiliki NSG untuk setiap set skala mesin virtual dan digunakan untuk mengontrol lalu lintas masuk dan keluar dari set. Aturan dikonfigurasi secara default untuk mengizinkan semua lalu lintas yang diperlukan untuk layanan sistem dan port aplikasi yang ditentukan dalam templat. Tinjau aturan ini dan buat perubahan agar sesuai dengan kebutuhan Anda, termasuk menambahkan aturan baru untuk aplikasi Anda.

Untuk informasi selengkapnya, lihat Skenario jaringan umum untuk Azure Service Fabric.

Menyiapkan Azure Key Vault untuk keamanan

Service Fabric menggunakan sertifikat untuk menyediakan otentikasi dan enkripsi untuk mengamankan kluster dan aplikasinya.

Service Fabric menggunakan sertifikat X.509 untuk mengamankan kluster dan menyediakan fitur keamanan aplikasi. Anda menggunakan Azure Key Vault untuk mengelola sertifikat untuk kluster Service Fabric di Azure. Penyedia sumber daya Azure yang membuat kluster mengambil sertifikat dari brankas kunci. Penyedia sumber daya kemudian menginstal sertifikat pada VM saat kluster disebarkan di Azure.

Ada hubungan sertifikat antara Azure Key Vault, kluster Service Fabric, dan penyedia sumber daya yang menggunakan sertifikat. Saat kluster dibuat, informasi tentang hubungan sertifikat disimpan dalam brankas kunci.

Ada dua langkah dasar untuk menyiapkan brankas kunci:

  1. Buat grup sumber daya khusus untuk brankas kunci Anda.

    Sebaiknya Anda memasukkan brankas kunci ke dalam grup sumber dayanya sendiri. Tindakan ini membantu mencegah hilangnya kunci dan rahasia Anda jika grup sumber daya lain dihapus, seperti penyimpanan, komputasi, atau grup yang berisi kluster Anda. Grup sumber daya yang berisi key vault Anda harus berada di wilayah yang sama dengan kluster yang menggunakannya.

  2. Buat brankas kunci di grup sumber daya baru.

    Brankas kunci harus diaktifkan untuk penyebaran. Penyedia sumber daya komputasi kemudian bisa mendapatkan sertifikat dari brankas dan menginstalnya pada instans VM.

Untuk mempelajari selengkapnya tentang cara menyiapkan brankas kunci, lihat Apa itu Azure Key Vault?.

Menetapkan pengguna ke peran

Setelah membuat aplikasi untuk mewakili kluster, tetapkan pengguna Anda ke peran yang didukung oleh Service Fabric: baca-saja dan admin. Anda dapat menetapkan peran ini dengan menggunakan portal Microsoft Azure.

Catatan

Untuk informasi selengkapnya tentang menggunakan peran di Service Fabric, lihat Kontrol akses berbasis peran Service Fabric untuk klien Service Fabric.

Azure Service Fabric mendukung dua jenis kontrol akses untuk klien yang terhubung ke kluster Service Fabric: admin dan pengguna. Admin kluster dapat menggunakan kontrol akses untuk membatasi akses ke operasi kluster tertentu untuk kelompok pengguna yang berbeda. Kontrol akses membuat kluster lebih aman.

Hal-hal yang perlu dipertimbangkan jika menghosting aplikasi yang tidak tepercaya di kluster Service Fabric

Harap lihat Menghosting aplikasi yang tidak tepercaya di kluster Fabric Layanan.

Langkah berikutnya