Bagikan melalui


Mengamankan kluster mandiri di Windows menggunakan keamanan Windows

Untuk mencegah akses tidak sah ke kluster Service Fabric, Anda harus mengamankan kluster. Keamanan sangat penting ketika kluster menjalankan beban kerja produksi. Artikel ini menjelaskan cara mengonfigurasi keamanan node-ke-node dan klien-ke-node dengan menggunakan keamanan Windows dalam file ClusterConfig.JSON. Proses ini sesuai dengan langkah mengonfigurasi keamanan Buat kluster mandiri yang berjalan pada Windows. Untuk informasi selengkapnya tentang cara Service Fabric menggunakan keamanan Windows, lihat Skenario keamanan kluster.

Catatan

Anda harus mempertimbangkan pemilihan keamanan node-ke-node dengan hati-hati karena tidak ada peningkatan kluster dari satu pilihan keamanan ke pilihan keamanan lainnya. Untuk mengubah pilihan keamanan, Anda harus membangun kembali kluster lengkap.

Mengonfigurasi keamanan Windows menggunakan gMSA

gMSA adalah model keamanan pilihan. Sampel file konfigurasi ClusterConfig.gMSA.Windows.MultiMachine.JSON yang diunduh dengan paket kluster mandiri Microsoft.Azure.ServiceFabric.WindowsServer.<.zip> berisi templat untuk mengonfigurasi keamanan Windows menggunakan Akun Layanan Terkelola Grup (gMSA):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
Pengaturan konfigurasi Keterangan
ClusterCredentialType Atur ke Windows untuk mengaktifkan keamanan Windows untuk komunikasi node-node. 
ServerCredentialType Atur ke Windows untuk mengaktifkan keamanan Windows untuk komunikasi klien-node.
WindowsIdentities Berisi kluster dan identitas klien.
ClustergMSAIdentity Mengonfigurasi keamanan node-ke-node. Akun layanan terkelola grup. Harus dalam format "mysfgmsa@mydomain".
ClusterSPN SPN terdaftar untuk akun gMSA
ClientIdentities Mengonfigurasi keamanan klien-ke-node. Array akun pengguna klien.
Identitas Tambahkan pengguna domain, domain\nama pengguna, untuk identitas klien.
IsAdmin Atur ke true untuk menentukan bahwa pengguna domain memiliki akses klien administrator atau false untuk akses klien pengguna.

Keamanan node ke node dikonfigurasi dengan mengatur ClustergMSAIdentity saat service fabric perlu berjalan di bawah gMSA. Untuk membangun hubungan kepercayaan antara node, mereka harus saling menyadari satu sama lain. Ini dapat dicapai dengan dua cara berbeda: Tentukan Akun Layanan Terkelola Grup yang menyertakan semua node dalam kluster atau Tentukan grup mesin domain yang menyertakan semua node dalam kluster. Kami sangat menyarankan untuk menggunakan pendekatan Akun Layanan Terkelola Grup (gMSA), terutama untuk kluster yang lebih besar (lebih dari 10 node) atau untuk kluster yang cenderung tumbuh atau menyusut.
Pendekatan ini tidak memerlukan pembuatan grup domain di mana administrator kluster telah diberikan hak akses untuk menambah dan menghapus anggota. Akun-akun ini juga berguna untuk manajemen kata sandi otomatis. Untuk informasi selengkapnya, lihat Memulai Akun Layanan Terkelola Grup.

Keamanan klien ke node dikonfigurasi menggunakan ClientIdentities. Untuk membangun kepercayaan antara klien dan kluster, Anda harus mengonfigurasi kluster untuk mengetahui identitas klien mana yang dapat dipercayainya. Ini dapat dilakukan dengan dua cara berbeda: Tentukan pengguna grup domain yang dapat menghubungkan atau tentukan pengguna node domain yang dapat terhubung. Azure Service Fabric mendukung dua jenis kontrol akses yang berbeda untuk klien yang terhubung dengan kluster Service Fabric: administrator dan pengguna. Kontrol akses memungkinkan administrator kluster untuk membatasi akses ke jenis operasi kluster tertentu untuk berbagai kelompok pengguna, membuat kluster lebih aman. Administrator memiliki akses penuh ke kapabilitas manajemen (termasuk kemampuan baca/tulis). Secara default, pengguna hanya memiliki akses baca ke kapabilitas manajemen (misalnya, kapabilitas kueri), dan kemampuan untuk mengatasi aplikasi dan layanan. Untuk informasi selengkapnya tentang kontrol akses, lihat Kontrol akses berbasis peran untuk klien Service Fabric.

Contoh berikut bagian keamanan mengonfigurasi keamanan Windows menggunakan gMSA dan menentukan bahwa mesin di gMSA ServiceFabric.clusterA.contoso.com adalah bagian dari kluster dan bahwa CONTOSO\usera memiliki akses klien admin:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClustergMSAIdentity" : "ServiceFabric.clusterA.contoso.com",
        "ClusterSPN" : "http/servicefabric/clusterA.contoso.com",
        "ClientIdentities": [{
            "Identity": "CONTOSO\\usera",
            "IsAdmin": true
        }]
    }
}

Mengonfigurasi keamanan Windows menggunakan grup mesin

Seperti yang dirinci di atas gMSA lebih disukai, tetapi juga didukung untuk menggunakan model keamanan ini. Sampel file konfigurasi ClusterConfig.Windows.MultiMachine.JSON yang diunduh dengan paket kluster mandiri Microsoft.Azure.ServiceFabric.WindowsServer.<.zip> berisi templat untuk mengonfigurasi keamanan Windows. Keamanan Windows dikonfigurasi di bagian Properti:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
Pengaturan konfigurasi Keterangan
ClusterCredentialType Atur ke Windows untuk mengaktifkan keamanan Windows untuk komunikasi node-node. 
ServerCredentialType Atur ke Windows untuk mengaktifkan keamanan Windows untuk komunikasi klien-node.
WindowsIdentities Berisi kluster dan identitas klien.
ClusterIdentity Gunakan nama grup mesin, domain\machinegroup, untuk mengonfigurasi keamanan node-ke-node.
ClientIdentities Mengonfigurasi keamanan klien-ke-node. Array akun pengguna klien.
Identitas Tambahkan pengguna domain, domain\nama pengguna, untuk identitas klien.
IsAdmin Atur ke true untuk menentukan bahwa pengguna domain memiliki akses klien administrator atau false untuk akses klien pengguna.

Keamanan node ke node dikonfigurasi dengan mengatur menggunakan ClusterIdentity jika Anda ingin menggunakan grup mesin dalam Domain Direktori Aktif. Untuk informasi selengkapnya, lihat Membuat Grup Mesin di Direktori Aktif.

Keamanan klien-ke-node dikonfigurasi dengan menggunakan ClientIdentities. Untuk membangun kepercayaan antara klien dan kluster, Anda harus mengonfigurasi kluster untuk mengetahui identitas klien yang dapat dipercaya oleh kluster. Anda dapat membangun kepercayaan dengan dua cara berbeda:

  • Tentukan pengguna grup domain yang bisa terhubung.
  • Tentukan pengguna node domain yang bisa terhubung.

Azure Service Fabric mendukung dua jenis kontrol akses yang berbeda untuk klien yang terhubung dengan kluster Service Fabric: administrator dan pengguna. Kontrol akses memungkinkan administrator kluster membatasi akses ke jenis operasi kluster tertentu untuk berbagai kelompok pengguna, membuat kluster lebih aman. Administrator memiliki akses penuh ke kapabilitas manajemen (termasuk kemampuan baca/tulis). Secara default, pengguna hanya memiliki akses baca ke kapabilitas manajemen (misalnya, kapabilitas kueri), dan kemampuan untuk mengatasi aplikasi dan layanan.

Contoh bagian keamanan berikut mengonfigurasi keamanan Windows, menentukan bahwa mesin di ServiceFabric/clusterA.contoso.com adalah bagian dari kluster, dan menentukan bahwa CONTOSO\usera memiliki akses klien admin:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "ServiceFabric/clusterA.contoso.com",
        "ClientIdentities": [{
            "Identity": "CONTOSO\\usera",
            "IsAdmin": true
        }]
    }
},

Catatan

Service Fabric tidak boleh digunakan pada pengontrol domain. Pastikan bahwa ClusterConfig.json tidak menyertakan alamat IP pengontrol domain saat menggunakan grup mesin atau Akun Layanan Terkelola grup (gMSA).

Langkah berikutnya

Setelah mengonfigurasi keamanan Windows di file ClusterConfig.JSON, lanjutkan proses pembuatan kluster di Buat kluster mandiri yang berjalan pada Windows.

Untuk informasi selengkapnya tentang keamanan node-ke-node, keamanan klien-ke-node, dan kontrol akses berbasis peran, lihat Skenario keamanan kluster.

Lihat Menyambungkan ke kluster aman misalnya menyambungkan dengan menggunakan PowerShell atau FabricClient.