كيفية إعداد التحكم في الوصول لمساحة عمل Azure Synapse

ستعلمك هذه المقالة كيفية التحكم في الوصول إلى مساحة عمل Microsoft Azure Synapse باستخدام أدوار Azure وأدوار Azure Synapse وأذونات SQL وأذونات Git.

في هذا الدليل، ستقوم بإعداد مساحة عمل وتكوين نظام أساسي للتحكم في الوصول مناسب للعديد من مشاريع Azure Synapse. ثم يصف خيارات أكثر تقدما للتحكم في الحبيبات الدقيقة إذا كنت بحاجة إليها.

يمكن تبسيط التحكم في الوصول إلى Azure Synapse باستخدام مجموعات الأمان المتوافقة مع الأدوار والشخصيات في مؤسستك. ما عليك سوى إضافة مستخدمين وإزالتهم من مجموعات الأمان لإدارة الوصول.

قبل بدء هذه الإرشادات التفصيلية، اقرأ نظرة عامة على التحكم في الوصول إلى Azure Synapse للتعرف على آليات التحكم في الوصول المستخدمة بواسطة Azure Synapse Analytics.

آليات التحكم في الدخول

ملاحظة

النهج المتبع في هذا الدليل هو إنشاء عدة مجموعات أمان ثم تعيين أدوار لهذه المجموعات. بعد إعداد المجموعات، تحتاج فقط إلى إدارة العضوية داخل مجموعات الأمان للتحكم في الوصول إلى مساحة العمل.

لتأمين مساحة عمل Azure Synapse، ستتبع نمطا لتكوين العناصر التالية:

  • مجموعات الأمان، لتجميع المستخدمين الذين لديهم متطلبات وصول مماثلة.
  • أدوار Azure، للتحكم في من يمكنه إنشاء تجمعات SQL وإدارتها وتجمعات Apache Spark وأوقات تشغيل التكامل والوصول إلى وحدة تخزين ADLS Gen2.
  • أدوار Synapse ، للتحكم في الوصول إلى القطع الأثرية المنشورة للتعليمات البرمجية ، واستخدام موارد الحوسبة Apache Spark وأوقات تشغيل التكامل
  • SQL الأذونات، للتحكم في الوصول الإداري ومستوى البيانات إلى تجمعات SQL.
  • أذونات Git، للتحكم في من يمكنه الوصول إلى عناصر التعليمات البرمجية في عنصر تحكم المصدر إذا قمت بتكوين دعم Git لمساحة العمل

خطوات تأمين مساحة عمل Azure Synapse

يستخدم هذا المستند أسماء قياسية لتبسيط التعليمات. استبدلها بأسماء من اختيارك.

الإعداد الاسم القياسي الوصف
مساحة عمل Synapse workspace1 الاسم الذي سيكون لمساحة عمل Azure Synapse.
حساب ADLSGEN2 storage1 حساب ADLS لاستخدامه مع مساحة العمل الخاصة بك.
الحاوية container1 الحاوية الموجودة في STG1 التي ستستخدمها مساحة العمل بشكل افتراضي.
مستأجر الدليل النشط contoso اسم مستأجر الدليل النشط.

الخطوة 1: إعداد مجموعات الأمان

ملاحظة

أثناء المعاينة، يوصى بإنشاء مجموعات أمان تم تعيينها إلى أدوار Azure Synapse Synapse SQL Administrator و Synapse Apache Spark Administrator. مع إدخال أدوار ونطاقات Synapse RBAC جديدة أكثر دقة، يوصى الآن باستخدام هذه الإمكانات الجديدة للتحكم في الوصول إلى مساحة العمل الخاصة بك. توفر هذه الأدوار والنطاقات الجديدة مزيدا من المرونة في التكوين وتدرك أن المطورين غالبا ما يستخدمون مزيجا من SQL و Spark في إنشاء تطبيقات التحليلات وقد يحتاجون إلى منحهم حق الوصول إلى موارد محددة بدلا من مساحة العمل بأكملها. تعرف على المزيد حول Synapse RBAC.

قم بإنشاء مجموعات الأمان التالية لمساحة العمل الخاصة بك:

  • workspace1_SynapseAdministrators، للمستخدمين الذين يحتاجون إلى تحكم كامل في مساحة العمل. أضف نفسك إلى مجموعة الأمان هذه، على الأقل في البداية.
  • workspace1_SynapseContributors، للمطورين الذين يحتاجون إلى تطوير التعليمات البرمجية وتصحيحها ونشرها على الخدمة.
  • workspace1_SynapseComputeOperators، للمستخدمين الذين يحتاجون إلى إدارة ومراقبة تجمعات Apache Spark وأوقات تشغيل التكامل.
  • workspace1_SynapseCredentialUsers، للمستخدمين الذين يحتاجون إلى تصحيح أخطاء خطوط أنابيب التزامن وتشغيلها باستخدام بيانات اعتماد MSI (هوية الخدمة المدارة) لمساحة العمل وإلغاء عمليات تشغيل خطوط الأنابيب.

ستقوم بتعيين أدوار Synapse لهذه المجموعات في نطاق مساحة العمل قريبا.

قم أيضا بإنشاء مجموعة الأمان هذه:

  • workspace1_SQLAdmins، مجموعة للمستخدمين الذين يحتاجون SQL سلطة مسؤول Active Directory داخل تجمعات SQL في مساحة العمل.

سيتم استخدام المجموعة workspace1_SQLAdmins عند تكوين أذونات SQL في تجمعات SQL أثناء إنشائها.

بالنسبة للإعداد الأساسي ، تكون هذه المجموعات الخمس كافية. في وقت لاحق، يمكنك إضافة مجموعات أمان للتعامل مع المستخدمين الذين يحتاجون إلى وصول أكثر تخصصا أو لمنح المستخدمين حق الوصول إلى موارد محددة فقط.

ملاحظة

تلميح

يمكن لمستخدمي Synapse الفرديين استخدام Azure Active Directory في مدخل Azure لعرض عضويات المجموعات الخاصة بهم لتحديد الأدوار التي تم منحهم إياها.

الخطوة 2: إعداد حساب تخزين ADLS Gen2 الخاص بك

تستخدم مساحة عمل Azure Synapse حاوية تخزين افتراضية من أجل:

  • تخزين ملفات بيانات النسخ الاحتياطي لجداول Spark
  • سجلات التنفيذ لمهام Spark
  • إدارة المكتبات التي تختار تثبيتها

حدد المعلومات التالية حول مساحة التخزين الخاصة بك:

  • حساب ADLS Gen2 لاستخدامه لمساحة العمل الخاصة بك. هذه الوثيقة تسميها storage1. storage1 يعتبر حساب التخزين "الأساسي" لمساحة العمل الخاصة بك.

  • سيتم استخدام الحاوية الموجودة بداخلها workspace1 مساحة عمل Synapse بشكل افتراضي. هذه الوثيقة تسميها container1.

  • حدد Access control (IAM).

  • حدد Add>Add role assignment لفتح صفحة إضافة تعيين الدور.

  • تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع ⁧⁩تعيين أدوار Azure باستخدام مدخل Microsoft Azure⁧⁩.

    إعداد القيمة
    الدور مساهم بيانات Storage Blob
    تعيين الوصول إلى SERVICEPRINCIPAL
    الأعضاء workspace1_SynapseAdministrators workspace1_SynapseContributors workspace1_SynapseComputeOperators

    Add role assignment page in Azure portal.

الخطوة 3: إنشاء مساحة عمل Azure Synapse وتكوينها

في مدخل Azure، قم بإنشاء مساحة عمل Azure Synapse:

  • اختر اشتراكك

  • حدد أو أنشئ مجموعة موارد لديك دور مالك Azure لها.

  • تسمية مساحة العمل workspace1

  • اختر storage1 لحساب التخزين

  • اختر container1 للحاوية التي يتم استخدامها ك "نظام ملفات".

  • افتح WS1 في Synapse Studio

  • انتقل إلى ManageAccess>Control وقم بتعيين أدوار Synapse في نطاق مساحة العمل إلى مجموعات الأمان كما يلي:

    • تعيين دور مسؤول Synapse إلى workspace1_SynapseAdministrators
    • تعيين دور مساهم Synapse إلى workspace1_SynapseContributors
    • تعيين دور مشغل الحوسبة Synapse إلى workspace1_SynapseComputeOperators

الخطوة 4: منح MSI مساحة العمل حق الوصول إلى حاوية التخزين الافتراضية

لتشغيل خطوط الأنابيب وتنفيذ مهام النظام، يتطلب Azure Synapse أن تحتاج هوية الخدمة المدارة في مساحة العمل (MSI) إلى الوصول إليها container1 في حساب ADLS Gen2 الافتراضي. لمزيد من المعلومات، راجع الهوية المدارة لمساحة عمل Azure Synapse.

  • افتح مدخل Microsoft Azure

  • حدد موقع حساب التخزين، storage1ثم قم بتحديد موقع container1

  • حدد Access control (IAM).

  • حدد Add>Add role assignment لفتح صفحة إضافة تعيين الدور.

  • تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع ⁧⁩تعيين أدوار Azure باستخدام مدخل Microsoft Azure⁧⁩.

    إعداد القيمة
    الدور مساهم بيانات Storage Blob
    تعيين الوصول إلى MANAGEDIDENTITY
    الأعضاء اسم الهوية المدارة

    ملاحظة

    اسم الهوية المدارة هو أيضاً اسم مساحة العمل.

    Add role assignment page in Azure portal.

الخطوة 5: منح مسؤولي Synapse دور مساهم Azure على مساحة العمل

لإنشاء تجمعات SQL وتجمعات Apache Spark وأوقات تشغيل التكامل، يجب أن يكون لدى المستخدمين دور مساهم Azure على الأقل في مساحة العمل. يسمح دور المساهم أيضا لهؤلاء المستخدمين بإدارة الموارد، بما في ذلك الإيقاف المؤقت وتغيير الحجم. إذا كنت تستخدم مدخل Azure أو Synapse Studio لإنشاء تجمعات SQL وتجمعات Apache Spark وأوقات تشغيل التكامل، فأنت بحاجة إلى دور مساهم Azure على مستوى مجموعة الموارد.

  • افتح مدخل Microsoft Azure

  • حدد موقع مساحة العمل، workspace1

  • حدد Access control (IAM).

  • حدد Add>Add role assignment لفتح صفحة إضافة تعيين الدور.

  • تعيين الدور التالي. للحصول على خطوات تفصيلية، راجع ⁧⁩تعيين أدوار Azure باستخدام مدخل Microsoft Azure⁧⁩.

    إعداد القيمة
    الدور مساهم
    تعيين الوصول إلى SERVICEPRINCIPAL
    الأعضاء workspace1_SynapseAdministrators

    Add role assignment page in Azure portal.

الخطوة 6: تعيين دور مسؤول Active Directory SQL

يتم إعداد منشئ مساحة العمل تلقائيا كمسؤول Active Directory SQL لمساحة العمل. يمكن منح مستخدم واحد أو مجموعة واحدة فقط هذا الدور. في هذه الخطوة، يمكنك تعيين SQL مسؤول Active Directory على مساحة العمل إلى workspace1_SQLAdmins مجموعة الأمان. يمنح تعيين هذا الدور هذه المجموعة وصولا إداريا متميزا للغاية إلى جميع تجمعات SQL وقواعد البيانات في مساحة العمل.

يتحكم حساب مسؤول Azure Active Directory في الوصول إلى تجمعات SQL المخصصة، بينما يتم استخدام أدوار Synapse RBAC للتحكم في الوصول إلى التجمعات بدون خادم. قم بتكوين أدوار Synapse RBAC عبر Synapse Studio، لمزيد من المعلومات، راجع كيفية إدارة تعيينات دور Synapse RBAC في Synapse Studio.

  • افتح مدخل Microsoft Azure
  • انتقل إلى workspace1
  • ضمن الإعدادات، حدد مسؤول Active Directory SQL
  • حدد تعيين المسؤول واختر workspace1_SQLAdmins

ملاحظة

الخطوة 6 اختيارية. يمكنك اختيار منح المجموعة workspace1_SQLAdmins دورا أقل امتيازا. لتعيين db_owner أدوار أو أدوار SQL أخرى، يجب تشغيل البرامج النصية على كل قاعدة بيانات SQL.

الخطوة 7: منح حق الوصول إلى حمامات السباحة SQL

بشكل افتراضي، يتم أيضا تعيين دور "مسؤول Synapse" لجميع المستخدمين المعينين لدور "مسؤول Synapse" على مجموعات SQL SQL db_owner بدون خادم في مساحة العمل.

يتم التحكم في الوصول إلى تجمعات SQL للمستخدمين الآخرين باستخدام أذونات SQL. يتطلب تعيين أذونات SQL تشغيل البرامج النصية SQL على كل قاعدة بيانات SQL بعد إنشائها. هناك ثلاث حالات تتطلب منك تشغيل هذه البرامج النصية:

  1. منح المستخدمين الآخرين حق الوصول إلى تجمع SQL بدون خادم ، "مدمج" ، وقواعد البيانات الخاصة به
  2. منح أي مستخدم حق الوصول إلى قواعد بيانات تجمع SQL المخصصة

يتم تضمين أمثلة على البرامج النصية SQL أدناه.

لمنح حق الوصول إلى قاعدة بيانات تجمع SQL مخصصة، يمكن تشغيل البرامج النصية بواسطة منشئ مساحة العمل أو أي عضو في workspace1_SynapseAdministrators المجموعة.

لمنح حق الوصول إلى تجمع SQL بدون خادم ، "مضمن" ، يمكن تشغيل البرامج النصية بواسطة أي عضو في workspace1_SQLAdmins المجموعة أو workspace1_SynapseAdministrators المجموعة.

تلميح

يجب تشغيل الخطوات أدناه لكل تجمع SQL لمنح المستخدم حق الوصول إلى كافة قواعد البيانات SQL باستثناء الإذن المقطع نطاق مساحة العمل حيث يمكنك تعيين دور مسؤول النظام للمستخدم على مستوى مساحة العمل.

الخطوة 7.1: تجمع SQL بدون خادم ، مدمج

في هذا القسم، هناك أمثلة على البرامج النصية توضح كيفية منح المستخدم إذنا للوصول إلى قاعدة بيانات معينة أو إلى كافة قواعد البيانات في تجمع SQL بدون خادم، Built-in.

ملاحظة

في أمثلة البرنامج النصي، استبدل الاسم المستعار بالاسم المستعار للمستخدم أو المجموعة التي يتم منحها حق الوصول، والمجال بنطاق الشركة الذي تستخدمه.

إذن نطاق قاعدة البيانات

لمنح حق الوصول إلى مستخدم إلى قاعدة بيانات SQL واحدة بدون خادم، اتبع الخطوات الواردة في هذا المثال:

  1. إنشاء تسجيل دخول. التغيير إلى master سياق قاعدة البيانات.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. إنشاء مستخدم في قاعدة البيانات الخاصة بك. تغيير السياق إلى قاعدة البيانات الخاصة بك.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. إضافة مستخدم كعضو في الدور المحدد في قاعدة البيانات (في هذه الحالة، db_owner الدور).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

إذن نطاق مساحة العمل

لمنح حق الوصول الكامل إلى كافة تجمعات SQL بدون خادم في مساحة العمل، في قاعدة البيانات، استخدم البرنامج النصي في master هذا المثال:

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

الخطوة 7.2: حمامات SQL مخصصة

لمنح حق الوصول إلى قاعدة بيانات تجمع SQL مخصصة واحدة، اتبع الخطوات التالية في محرر البرامج النصية Azure Synapse SQL:

  1. قم بإنشاء المستخدم في قاعدة البيانات عن طريق تشغيل الأمر التالي على قاعدة البيانات الهدف، المحدد باستخدام القائمة المنسدلة الاتصال إلى :

    --Create user in the database
    CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER;
    
  2. منح المستخدم دورا للوصول إلى قاعدة البيانات:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

هام

يمكن أن تعمل أدوار قاعدة البيانات db_datareader db_datawriter مع أذونات القراءة/الكتابة إذا لم يكن منح إذن db_owner مطلوبا. ومع ذلك، لكي يتمكن مستخدم Spark من القراءة والكتابة مباشرة من Spark إلى تجمع SQL أو منه، يلزم الحصول على إذن db_owner.

بعد إنشاء المستخدمين، قم بتشغيل الاستعلامات للتحقق من أن تجمع SQL بدون خادم يمكنه الاستعلام عن حساب التخزين.

الخطوة 8: إضافة مستخدمين إلى مجموعات الأمان

اكتمل التكوين الأولي لنظام التحكم في الوصول.

لإدارة الوصول، يمكنك إضافة مستخدمين إلى مجموعات الأمان التي قمت بإعدادها وإزالتهم. على الرغم من أنه يمكنك تعيين المستخدمين يدويا إلى أدوار Azure Synapse، إلا أنه إذا قمت بذلك، فلن يتم تكوين أذوناتهم باستمرار. بدلا من ذلك، يمكنك فقط إضافة مستخدمين إلى مجموعات الأمان أو إزالتهم.

الخطوة 9: أمان الشبكة

كخطوة أخيرة لتأمين مساحة العمل الخاصة بك، يجب عليك تأمين الوصول إلى الشبكة، باستخدام جدار حماية مساحة العمل.

الخطوة 10: الإكمال

تم الآن تكوين مساحة العمل الخاصة بك وتأمينها بالكامل.

دعم سيناريوهات أكثر تقدما

ركز هذا الدليل على إعداد نظام أساسي للتحكم في الوصول. يمكنك دعم سيناريوهات أكثر تقدما من خلال إنشاء مجموعات أمان إضافية وتعيين أدوار أكثر تفصيلا لهذه المجموعات في نطاقات أكثر تحديدا. النظر في الحالات التالية:

تمكين دعم Git لمساحة العمل لسيناريوهات التطوير الأكثر تقدما بما في ذلك CI/CD. أثناء وجودك في وضع Git ، ستحدد أذونات Git و Synapse RBAC ما إذا كان بإمكان المستخدم إجراء تغييرات على فرع العمل الخاص به. يتم النشر إلى الخدمة فقط من فرع التعاون. فكر في إنشاء مجموعة أمان للمطورين الذين يحتاجون إلى تطوير التحديثات وتصحيحها في فرع عامل ولكنهم لا يحتاجون إلى نشر التغييرات على الخدمة المباشرة.

تقييد وصول مطور البرامج إلى موارد محددة. أنشئ مجموعات أمان إضافية أكثر دقة للمطورين الذين يحتاجون إلى الوصول إلى موارد محددة فقط. قم بتعيين أدوار Azure Synapse المناسبة لهذه المجموعات والتي تم تحديد نطاقها إلى تجمعات Spark أو أوقات تشغيل التكامل أو بيانات الاعتماد المحددة.

تقييد المشغلين من الوصول إلى القطع الأثرية التعليمات البرمجية. قم بإنشاء مجموعات أمان للمشغلين الذين يحتاجون إلى مراقبة الحالة التشغيلية لموارد حساب Synapse وعرض السجلات ولكنهم لا يحتاجون إلى الوصول إلى التعليمات البرمجية أو نشر تحديثات الخدمة. قم بتعيين دور مشغل الحوسبة لهذه المجموعات في نطاق تجمعات Spark وأوقات تشغيل تكامل محددة.

تعطيل المصادقة المحلية. من خلال السماح بمصادقة Azure Active Directory فقط، يمكنك إدارة الوصول إلى موارد Azure Synapse مركزيا، مثل تجمعات SQL. يمكن تعطيل المصادقة المحلية لجميع الموارد داخل مساحة العمل أثناء إنشاء مساحة العمل أو بعدها. لمزيد من المعلومات حول المصادقة Azure AD فقط، راجع تعطيل المصادقة المحلية في Azure Synapse Analytics.

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