Skenario keamanan kluster Service Fabric

Kluster Azure Service Fabric adalah sumber daya yang Anda miliki. Anda bertanggung jawab mengamankan kluster Anda guna membantu mencegah terhubungnya pengguna yang tidak berwenang. Kluster yang aman sangat penting ketika Anda menjalankan beban kerja produksi pada kluster. Dimungkinkan untuk membuat kluster yang tidak aman, namun jika kluster tersebut mengekspos titik akhir manajemen ke internet publik, pengguna anonim dapat terhubung ke sana. Kluster yang tidak aman tidak didukung untuk beban kerja produksi.

Artikel ini adalah gambaran umum skenario keamanan untuk kluster Azure dan kluster standalone, dan berbagai teknologi yang dapat Anda gunakan untuk mengimplementasikannya:

  • Keamanan node-ke-node
  • Keamanan klien-ke-node
  • Kontrol akses berbasis peran Service Fabric

Keamanan node-ke-node

Keamanan node-to-node membantu mengamankan komunikasi antara VM atau komputer dalam sebuah kluster. Skenario keamanan ini memastikan bahwa hanya komputer yang berwenang untuk bergabung dengan kluster yang dapat berpartisipasi dalam aplikasi dan layanan hosting di kluster.

Diagram of node-to-node communication

Kluster yang berjalan di Azure dan kluster standalone yang berjalan di Windows, keduanya dapat menggunakan keamanan sertifikat atau keamanan Windows untuk komputer Windows Server.

Keamanan sertifikat node-to-node

Service Fabric menggunakan sertifikat server X.509 yang Anda tentukan sebagai bagian dari konfigurasi jenis node saat Anda membuat kluster. Anda dapat menyiapkan keamanan sertifikat di portal Microsoft Azure, baik dengan menggunakan templat Azure Resource Manager atau templat JSON mandiri. Di akhir artikel ini, Anda bisa melihat gambaran singkat tentang apa sertifikat ini dan bagaimana Anda bisa mengakuisisi atau membuatnya.

Perilaku default Service Fabric SDK adalah menyebarkan dan menginstal sertifikat dengan tanggal kedaluwarsa paling lama di masa mendatang. Sertifikat primer ini harus berbeda dari klien admin dan sertifikat klien baca-saja yang ditetapkan untuk keamanan klien-ke-simpul. Perilaku klasik SDK memungkinkan penetapan sertifikat primer dan sekunder untuk memungkinkan rollover yang dimulai secara manual; tidak disarankan untuk digunakan pada fungsi baru.

Untuk mempelajari cara menyiapkan keamanan sertifikat dalam kluster untuk Azure, lihat Menyiapkan kluster menggunakan templat Azure Resource Manager.

Untuk mempelajari cara mengatur keamanan sertifikat dalam kluster untuk kluster Windows Server standalone, lihat Mengamankan kluster standalone di Windows menggunakan sertifikat X.509.

Keamanan Windows node-to-node

Catatan

Otentikasi Windows didasarkan pada Kerberos. NTLM tidak didukung sebagai tipe autentikasi.

Jika memungkinkan, gunakan autentikasi sertifikat X.509 untuk kluster Service Fabric.

Untuk mempelajari cara mengatur keamanan sertifikat dalam kluster untuk kluster Windows Server standalone, lihat Mengamankan kluster standalone di Windows menggunakan sertifikat Windows.

Keamanan klien-ke-node

Keamanan klien-ke-node mengautentikasi klien dan membantu mengamankan komunikasi antara klien dan node individual dalam kluster. Jenis keamanan ini membantu memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses kluster dan aplikasi yang disebarkan pada kluster. Klien diidentifikasi secara unik melalui kredensial keamanan Windows atau kredensial keamanan sertifikatnya.

Diagram of client-to-node communication

Kluster yang berjalan di Azure dan kluster standalone yang berjalan di Windows keduanya dapat menggunakan keamanan sertifikat atau keamanan Windows, meskipun rekomendasinya adalah menggunakan autentikasi sertifikat X.509 jika memungkinkan.

Keamanan sertifikat node-to-node

Siapkan keamanan sertifikat client-to-node saat Anda membuat kluster, baik di portal Microsoft Azure, menggunakan templat Resource Manager, maupun menggunakan templat JSON standalone. Untuk membuat sertifikat, tentukan sertifikat klien admin atau sertifikat klien pengguna. Sebagai praktik terbaik, sertifikat klien admin dan klien pengguna yang Anda tentukan harus berbeda dari sertifikat utama dan sekunder yang Anda tentukan untuk keamanan node-to-node. Sertifikat kluster memiliki hak yang sama dengan sertifikat admin klien. Namun, serifikat-sertifikat tersebut harus digunakan hanya oleh kluster dan bukan oleh pengguna administratif sebagai praktik terbaik keamanan.

Klien yang terhubung ke kluster menggunakan sertifikat admin memiliki akses penuh ke kemampuan manajemen. Klien yang terhubung ke kluster menggunakan sertifikat klien pengguna baca-saja hanya memiliki akses baca ke kapabilitas manajemen. Sertifikat ini digunakan untuk Service Fabric RBAC yang dijelaskan kemudian di artikel ini.

Untuk mempelajari cara menyiapkan keamanan sertifikat dalam kluster untuk Azure, lihat Menyiapkan kluster menggunakan templat Azure Resource Manager.

Untuk mempelajari cara mengatur keamanan sertifikat dalam kluster untuk kluster Windows Server standalone, lihat Mengamankan kluster standalone di Windows menggunakan sertifikat X.509.

Keamanan Microsoft Entra klien-ke-simpul di Azure

MICROSOFT Entra ID memungkinkan organisasi (dikenal sebagai penyewa) untuk mengelola akses pengguna ke aplikasi. Aplikasi dibagi menjadi aplikasi dengan UI masuk berbasis web dan aplikasi dengan pengalaman klien native. Jika Anda belum membuat penyewa, mulailah dengan membaca Cara mendapatkan penyewa Microsoft Entra.

Untuk kluster yang berjalan di Azure, Anda juga dapat menggunakan ID Microsoft Entra untuk mengamankan akses ke titik akhir manajemen. Kluster Service Fabric menawarkan beberapa titik masuk ke fungsionalitas manajemennya, termasuk Service Fabric Explorer dan Visual Studio berbasis web. Akibatnya, untuk mengontrol akses ke kluster, Anda membuat dua aplikasi Microsoft Entra: satu aplikasi web dan satu aplikasi asli. Untuk mempelajari cara membuat artefak Microsoft Entra yang diperlukan dan cara mengisinya saat Anda membuat kluster, lihat Menyiapkan ID Microsoft Entra untuk mengautentikasi klien.

Rekomendasi keamanan

Untuk kluster Service Fabric yang diterapkan di jaringan publik yang dihosting di Azure, rekomendasi untuk autentikasi timbal balik klien-ke-simpul adalah:

  • Menggunakan ID Microsoft Entra untuk identitas klien
  • Sertifikat untuk identitas server dan enkripsi TLS komunikasi http

Untuk kluster Service Fabric yang diterapkan di jaringan publik yang dihosting di Azure, rekomendasi keamanan node-ke-node adalah menggunakan sertifikat Kluster untuk mengautentikasi node.

Untuk kluster Windows Server standalone, jika Anda memiliki Windows Server 2012 R2 dan Windows Active Directory, kami sarankan Anda menggunakan keamanan Windows dengan Akun Layanan Terkelola grup. Jika tidak, gunakan keamanan Windows dengan akun Windows.

Kontrol akses berbasis peran Service Fabric

Anda dapat menggunakan kontrol akses untuk membatasi akses ke operasi kluster tertentu untuk berbagai grup pengguna. Ini membantu membuat kluster lebih aman. Dua jenis kontrol akses didukung untuk klien yang terhubung ke kluster: Peran administrator dan peran Pengguna.

Pengguna yang diberi peran Administrator memiliki akses penuh ke kemampuan manajemen, termasuk kemampuan membaca dan menulis. Pengguna yang diberi peran Pengguna, secara default, hanya memiliki akses baca ke kapabilitas manajemen (misalnya, kapabilitas kueri). Mereka juga dapat menyelesaikan masalah aplikasi dan layanan.

Atur peran Administrator dan Klien pengguna saat Anda membuat kluster. Tetapkan peran dengan memberikan identitas terpisah (misalnya, dengan menggunakan sertifikat atau ID Microsoft Entra) untuk setiap jenis peran. Untuk informasi selengkapnya tentang pengaturan kontrol akses default dan cara mengubah pengaturan default, lihat Kontrol akses berbasis peran Service Fabric untuk klien Service Fabric.

Sertifikat X.509 dan Service Fabric

Sertifikat digital X.509 umumnya digunakan untuk mengautentikasi klien dan server. Sertifikat ini juga digunakan untuk mengenkripsi dan menandatangani pesan secara digital. Service Fabric menggunakan sertifikat X.509 untuk mengamankan kluster dan menyediakan fitur keamanan aplikasi. Untuk informasi selengkapnya tentang sertifikat digital X.509, lihat Bekerja dengan sertifikat. Anda menggunakan Vault Kunci untuk mengelola sertifikat untuk Service Fabric di Azure.

Beberapa hal penting untuk dipertimbangkan:

  • Untuk membuat sertifikat untuk kluster yang menjalankan beban kerja produksi, gunakan layanan sertifikat Windows Server yang dikonfigurasi dengan benar, atau sertifikat dari otoritas sertifikat (CA) yang disetujui.
  • Jangan pernah menggunakan sertifikat sementara atau uji yang Anda buat menggunakan alat seperti MakeCert.exe di lingkungan produksi.
  • Anda dapat menggunakan sertifikat yang ditandatangani sendiri, tetapi hanya di kluster pengujian. Jangan gunakan sertifikat yang ditandatangani sendiri dalam produksi.
  • Saat membuat thumbprint sertifikat, pastikan untuk membuat thumbprint SHA1. SHA1 adalah apa yang digunakan saat mengonfigurasi thumbprint sertifikat Klien dan Kluster.

Sertifikat kluster dan server (diperlukan)

Sertifikat ini (satu utama dan opsional sekunder) diperlukan untuk mengamankan kluster dan mencegah akses tidak sah. Sertifikat ini menyediakan autentikasi kluster dan server.

Autentikasi kluster mengautentikasi komunikasi node-to-node untuk federasi kluster. Hanya node yang dapat membuktikan identitas mereka dengan sertifikat ini yang dapat bergabung dengan kluster. Autentikasi server mengautentikasi titik akhir manajemen kluster ke klien manajemen, sehingga klien manajemen tahu jika telah berbicara dengan kluster nyata dan bukan 'man in the middle'. Sertifikat ini juga menyediakan TLS untuk API manajemen HTTPS dan untuk Service Fabric Explorer melalui HTTPS. Ketika klien atau node mengautentikasi sebuah node, salah satu pemeriksaan awal adalah nilai nama umum di bidang Subjek. Nama umum ini atau salah satu Subject Alternative Names (SAN) sertifikat harus ada dalam daftar nama umum yang diizinkan.

Sertifikat harus memenuhi persyaratan berikut:

  • Sertifikat harus memuat kunci privat. Sertifikat ini biasanya memiliki ekstensi .pfx atau .pem
  • Sertifikat harus dibuat untuk pertukaran kunci, yang dapat diekspor ke file Pertukaran Informasi Pribadi (.pfx).
  • Nama subjek sertifikat harus cocok dengan domain yang Anda gunakan untuk mengakses kluster Service Fabric. Kecocokan ini diperlukan untuk menyediakan TLS untuk titik akhir manajemen HTTPS kluster dan Service Fabric Explorer. Anda tidak dapat memperoleh sertifikat TLS/SSL dari otoritas sertifikat (CA) untuk domain *.cloudapp.azure.com. Anda harus mendapatkan nama domain kustom untuk kluster Anda. Saat Anda meminta sertifikat dari CA, nama subjek sertifikat harus cocok dengan nama domain kustom yang Anda gunakan untuk kluster Anda.

Beberapa hal lain yang perlu dipertimbangkan:

  • Bidang Subjek bisa memiliki beberapa nilai. Setiap nilai diawali dengan inisialisasi untuk menunjukkan jenis nilainya. Biasanya, inisialisasinya adalah CN (untuk nama umum); misalnya, CN = www.contoso.com.
  • Bidang Subjek bisa kosong.
  • Jika bidang Subject Alternative Name opsional diisi, bidang tersebut harus memiliki nama umum sertifikat dan satu entri per SAN. Ini dimasukkan sebagai nilai Nama DNS. Untuk mempelajari cara membuat sertifikat yang memiliki SAN, lihat Cara menambahkan Subject Alternative Name ke sertifikat LDAP yang aman.
  • Nilai bidang Tujuan yang Dimaksudkan sertifikat harus berisi nilai yang sesuai, seperti Autentikasi Server atau Autentikasi Klien.

Sertifikat aplikasi (opsional)

Sejumlah sertifikat tambahan dapat diinstal pada kluster untuk tujuan keamanan aplikasi. Sebelum membuat kluster Anda, pertimbangkan skenario keamanan aplikasi yang memerlukan sertifikat untuk diinstal pada node, seperti:

  • Enkripsi dan dekripsi nilai konfigurasi aplikasi.
  • Enkripsi data di seluruh node selama replikasi.

Konsep pembuatan kluster aman adalah sama, baik kluster Linux maupun Windows.

Sertifikat autentikasi klien (opsional)

Sejumlah sertifikat tambahan dapat ditentukan untuk operasi klien admin atau pengguna. Klien dapat menggunakan sertifikat ini ketika diperlukan autentikasi bersama. Sertifikat klien biasanya tidak dikeluarkan oleh CA pihak ketiga. Sebaliknya, penyimpanan Pribadi lokasi pengguna saat ini biasanya berisi sertifikat klien yang ditempatkan di sana oleh otoritas root. Sertifikat harus memiliki nilai Tujuan yang Dimaksudkan dari Autentikasi Klien.

Secara default sertifikat kluster memiliki hak istimewa klien admin. Sertifikat klien tambahan ini tidak boleh diinstal ke dalam kluster, tetapi ditentukan sebagaimana diizinkan dalam konfigurasi kluster. Namun, sertifikat klien perlu diinstal pada komputer klien untuk terhubung ke kluster dan melakukan operasi apa pun.

Catatan

Semua operasi manajemen pada kluster Service Fabric memerlukan sertifikat server. Sertifikat klien tidak dapat digunakan untuk manajemen.

Langkah berikutnya