تأمين نظام مجموعة مستقل على Windows باستخدام أمان Windows

لمنع الوصول غير المصرح به إلى نظام مجموعة Service Fabric، يجب تأمين نظام المجموعة. يعد الأمان مهماً بشكل خاص عندما تشغل المجموعة أحمال عمل الإنتاج. توضح هذه المقالة كيفية تكوين أمان العقدة إلى العقدة والعميل إلى العقدة باستخدام أمان Windows في الملف ClusterConfig.JSON. تتوافق العملية مع خطوة أمان تكوين إنشاء نظام مجموعة مستقل يعمل على Windows. لمزيد من المعلومات عن كيفية استخدام Service Fabric لأمان Windows، راجع سيناريوهات أمان نظام المجموعة.

ملاحظة

يجب أن تفكر في اختيار أمان العقدة إلى العقدة بعنايةٍ لأنه لا توجد ترقية لنظام المجموعة من خيار أمان لآخر. لتغيير تحديد الأمان، يجب عليك إعادة بناء نظام المجموعة الكامل.

تكوين أمان Windows باستخدام gMSA

gMSA هو نموذج الأمان المفضل. نموذج ملف التكوين ClusterConfig.gMSA.Windows.MultiMachine.JSON الذي تم تنزيله باستخدام الإصدار Microsoft.Azure.ServiceFabric.WindowsServer.<>.zip حزمة نظام المجموعة المستقلة تحتوي على قالب لتكوين أمان Windows باستخدام حساب الخدمة المُدارة للمجموعة (gMSA):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
إعداد التكوين الوصف
ClusterCredentialType اضبط على Windows لتمكين أمان Windows للاتصال بين العقدة والعقدة. 
ServerCredentialType اضبط على Windows لتمكين أمان Windows للاتصال بين العميل والعقدة.
WindowsIdentities يحتوي على هويات نظام المجموعة والعميل.
ClustergMSAIdentity تكوين أمان من عقدة إلى عقدة. حساب خدمة مُدارة بواسطة مجموعة. يجب أن تكون بتنسيق "mysfgmsa@mydomain".
ClusterSPN SPN مُسجَّل لحساب gMSA
ClientIdentities تكوين أمان العميل إلى العقدة. صفيف حسابات المستخدمين العملاء.
الهوية إضافة مستخدم المجال، المجال\اسم المستخدم، لهوية العميل.
IsAdmin بادر بالتعيين إلى "صواب" لتحديد أن مستخدم المجال لديه وصول عميل مسؤول أو "خطأ" لوصول عميل المستخدم.

أمان العقدة إلى العقدة مُكوَّن عن طريق تعيين ClustergMSAIdentity عند الحاجة إلى تشغيل "service fabric" ضمن gMSA. من أجل بناء علاقات ثقة بين العُقد، يجب أن تكون على دراية ببعضها البعض. يمكن تحقيق ذلك بطريقتين مختلفتين: تحديد حساب الخدمة المُدارة للمجموعة الذي يتضمن جميع العُقد في نظام المجموعة أو تحديد مجموعة أجهزة المجال التي تتضمن جميع العُقد في المجموعة. نوصي بشدة باستخدام نهج حساب الخدمة المُدارة للمجموعة (gMSA)، خاصةً بالنسبة لنُظم المجموعات الأكبر حجماً (أكثر من 10 عُقد) أو للمجموعات التي من المحتمل أن تنمو أو تتقلص.
لا يتطلب هذا النهج إنشاء مجموعة مجال تم منح مسؤولي نظام المجموعة لها حقوق الوصول لإضافة أعضاء وإزالتهم. هذه الحسابات مفيدة أيضاً للإدارة التلقائية لكلمات المرور. لمزيدٍ من المعلومات، راجع الشروع في العمل مع حسابات الخدمة المُدارة بواسطة المجموعة.

أمان العميل إلى العُقدة مُكوَّن باستخدام ClientIdentity. من أجل بناء الثقة بين عميل ونظام المجموعة، يجب تكوين نظام المجموعة لمعرفة هويات العميل التي يمكنه الوثوق بها. يمكن إجراء ذلك بطريقتين مختلفتين: تحديد مُستخدمي مجموعة المجالات الذين يمكنهم الاتصال أو تحديد مُستخدمي عقدة المجال الذين يمكنهم الاتصال. تدعم خدمة Service Fabric نوعين مختلفين من التحكم بالوصول للعملاء المتصلين بنظام مجموعة Service Fabric: المسؤول والمستخدم. يمنح التحكم بالوصول مسؤول نظام المجموعة القدرة على تقييد الوصول إلى أنواع معينة عمليات نظام مجموعة لمجموعات مختلفة من المستخدمين، مما يجعل المجموعة أكثر أماناً. يتمتع المسؤولون بحق الوصول الكامل إلى إمكانات الإدارة (بما في ذلك إمكانات القراءة/الكتابة). بشكل افتراضي، لا يتمتع المستخدمون إلا بإمكانية الوصول للقراءة فقط إلى إمكانات الإدارة (على سبيل المثال، إمكانات الاستعلام)، والقدرة على حل التطبيقات والخدمات. لمزيدٍ من المعلومات عن أدوار الوصول، راجع التحكم في الوصول المستند إلى الأدوار لعملاء Service Fabric.

يكوّن قسم الأمان في المثال التالي أمان Windows باستخدام gMSA ويحدد أن الأجهزة الموجودة في ServiceFabric.clusterA.contoso.com gMSA هي جزء من نظام المجموعة وأن CONTOSO\usera لديها حق وصول عميل المسؤول:

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

تكوين أمان Windows باستخدام مجموعة أجهزة

كما هو مفصل أعلاه يفضل استخدام gMSA، ولكن يتم دعمه أيضاً لاستخدام نموذج الأمان هذا. نموذج ملف التكوين ClusterConfig.Windows.MultiMachine.JSON الذي تم تنزيله باستخدام الإصدار Microsoft.Azure.ServiceFabric.WindowsServer.<>.zip حزمة نظام المجموعة المستقلة تحتوي على قالب لتكوين أمان Windows. يتم تكوين أمان Windows في قسم خصائص:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
إعداد التكوين الوصف
ClusterCredentialType اضبط على Windows لتمكين أمان Windows للاتصال بين العقدة والعقدة. 
ServerCredentialType اضبط على Windows لتمكين أمان Windows للاتصال بين العميل والعقدة.
WindowsIdentities يحتوي على هويات نظام المجموعة والعميل.
ClusterIdentity استخدم اسم مجموعة الجهاز، domain\machinegroup، لتكوين أمان العقدة إلى العقدة.
ClientIdentities تكوين أمان العميل إلى العقدة. صفيف حسابات المستخدمين العملاء.
الهوية إضافة مستخدم المجال، المجال\اسم المستخدم، لهوية العميل.
IsAdmin بادر بالتعيين إلى "صواب" لتحديد أن مستخدم المجال لديه وصول عميل مسؤول أو "خطأ" لوصول عميل المستخدم.

يتم تكوين أمان العقدة إلى العقدة عن طريق الإعداد باستخدام ClusterIdentity إذا كنت تريد استخدام مجموعة أجهزة داخل مجال Active Directory. لمزيد من المعلومات، راجع إنشاء مجموعة أجهزة في Active Directory.

أمان العميل إلى العُقدة مُكوَّن باستخدام ClientIdentity. من أجل بناء الثقة بين عميل ونظام المجموعة، يجب تكوين نظام المجموعة لمعرفة هويات العميل التي يمكن لنظام المجموعة الوثوق بها. يمكنك بناء الثقة بطريقتين مختلفتين:

  • حدد مُستخدمي مجموعة المجالات الذين يمكنهم الاتصال.
  • حدد مُستخدمي عقدة المجالات الذين يمكنهم الاتصال.

تدعم خدمة Service Fabric نوعين مختلفين من التحكم بالوصول للعملاء المتصلين بنظام مجموعة Service Fabric: المسؤول والمستخدم. يمكِّن التحكم بالوصول مسؤول نظام المجموعة من تقييد الوصول إلى أنواع معينة عمليات نظام مجموعة لمجموعات مختلفة من المستخدمين، مما يجعل المجموعة أكثر أماناً. يتمتع المسؤولون بحق الوصول الكامل إلى إمكانات الإدارة (بما في ذلك إمكانات القراءة/الكتابة). بشكل افتراضي، لا يتمتع المستخدمون إلا بإمكانية الوصول للقراءة فقط إلى إمكانات الإدارة (على سبيل المثال، إمكانات الاستعلام)، والقدرة على حل التطبيقات والخدمات.

يكوّن قسم الأمان في المثال التالي أمان Windows ويحدد أن الأجهزة في ServiceFabric/clusterA.contoso.com هي جزء من نظام المجموعة وأن CONTOSO\usera لديها حق وصول عميل المسؤول:

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

ملاحظة

يجب عدم توزيع Service Fabric على وحدة التحكم بالمجال. تأكد من أن ClusterConfig.json لا تتضمن عنوان IP الخاص بوحدة التحكم بالمجال عند استخدام مجموعة أجهزة أو حساب خدمة مُدارة لمجموعة (gMSA).

الخطوات التالية

بعد تكوين أمان Windows في الملف ClusterConfig.JSON، استأنف عملية إنشاء نظام المجموعة في إنشاء نظام مجموعة مستقل يعمل على Windows.

لمزيد من المعلومات عن الأمان من عقدة إلى عقدة والأمان من العميل إلى العقدة والتحكم في الوصول التحكم في الوصول استناداً إلى الدور، راجع سيناريوهات أمان نظام المجموعة.

راجع الاتصال بنظام مجموعة آمن للحصول على أمثلة على الاتصال باستخدام PowerShell أو FabricClient.