شعار زيفيرنت

قم بتمكين Amazon SageMaker JumpStart لأدوار تنفيذ IAM المخصصة

التاريخ:

مع ال مجال Amazon SageMaker، يمكنك ضم المستخدمين بامتداد إدارة الهوية والوصول AWS يختلف دور تنفيذ (IAM) عن دور تنفيذ المجال. في مثل هذه الحالة ، لا يمكن لمستخدم المجال الموجود على متن الطائرة إنشاء مشاريع باستخدام القوالب و أمازون سيج ميكر جومب ستارت حلول. يوضح هذا المنشور نهجًا آليًا لتمكين JumpStart لمستخدمي المجال من خلال دور تنفيذ مخصص. نوجهك خلال حالتين مختلفتين من حالات الاستخدام لتمكين JumpStart وكيفية حل هذه الحالات برمجيًا. يمكن أن يساعدك الحل الآلي في توسيع نطاق عمليتك لتمكين JumpStart لمستخدمي المجال بأدوار مخصصة ، وزيادة إنتاجية فريق علوم البيانات لديك و أمازون ساجميكر ستوديو المسؤولين.

JumpStart هي ميزة داخل Studio تساعدك على البدء بسرعة وسهولة في التعلم الآلي (ML). مع المزيد والمزيد من العملاء الذين يستخدمون ML والتبني بشكل متزايد الأمازون SageMaker، يعمل JumpStart على تسهيل وصول فرق علوم البيانات والتعلم الآلي إلى أكثر من 150 نموذجًا مفتوح المصدر شائعًا وضبطها ، مثل معالجة اللغة الطبيعية واكتشاف الكائنات ونماذج تصنيف الصور.

حل نظرة عامة

يتطلب JumpStart مجال SageMaker مع تمكين قوالب المشروع للحساب ومستخدمي Studio ، كما هو موضح في لقطة الشاشة التالية.

في حالة التمكين ، يسمح هذا الإعداد للمستخدمين (المهيئين لاستخدام دور تنفيذ المجال) بإنشاء مشاريع باستخدام القوالب وحلول JumpStart. في السيناريو الذي يختلف فيه دور التنفيذ الخاص بالمستخدم عن دور تنفيذ المجال ، يظل JumpStart معطلاً لهذا المستخدم حتى عند تمكينه على المجال. نتناول سيناريو الدور المخصص هذا والحل الآلي في الأقسام التالية.

في هذا الحل ، نتناول المشكلة في الحالتين التاليتين:

  • حالة الاستخدام 1 - تمكين JumpStart بطريقة آلية لمستخدمي المجال الحاليين بأدوار مخصصة بغض النظر عن التطبيقات المعينة
  • حالة الاستخدام 2 - توفير نص مرجعي يمكنك استخدامه لتمكين JumpStart برمجيًا أثناء إعداد مستخدم مجال جديد مع دور مخصص

مستخدم المجال onboarding

بعد إنشاء مجال ، يمكنك إعداد المستخدمين لتشغيل التطبيقات (مثل Studio أو RStudio أو Canvas). يجب تعيين دور تنفيذ افتراضي لمستخدم المجال أثناء عملية الإنشاء ، كما هو موضح في لقطة الشاشة التالية.

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

يمكنك تمكين مشاريع SageMaker و JumpStart يدويًا لكل مستخدم عن طريق تحديد ملف تعريف المستخدم في لوحة تحكم مجال SageMaker. ومع ذلك ، يمكن أن تستغرق هذه العملية وقتًا طويلاً إذا كان المستخدم لديه بالفعل بعض التطبيقات المعينة. ال تعديل يتم تمكين الزر الموجود أسفل اليمين فقط عندما لا يتم تعيين أي تطبيقات لهذا المستخدم (انظر لقطة الشاشة التالية). يجب عليك حذف التطبيقات المعينة أولاً من أجل تحرير ملف تعريف المستخدم.

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

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

المتطلبات الأساسية المسبقة

الخطوات الموضحة كجزء من هذا الحل لها المتطلبات الأساسية التالية:

  • لقد قمت بإنشاء مجال SageMaker
  • طريقة مصادقة مجال SageMaker هي IAM
  • الأدوار المخصصة المعينة لمستخدمي مجال SageMaker لها الامتداد AmazonSageMakerFullAccess السياسة المرفقة

من أجل حلول JumpStart ليتم تمكينها للمستخدمين ، يجب استيراد منتجات Amazon SageMaker Solutions و ML Ops من مجموعة كتالوج خدمات AWS إلى الحساب ، ويجب أن ترتبط هذه المحفظة بالدور الذي يدير SageMaker. يعد ارتباط الدور ضروريًا حتى يتمكن Studio من استدعاء واجهات API الخاصة بكتالوج خدمة AWS المرتبطة بمجموعة الحلول.

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

حالة الاستخدام 1: تمكين JumpStart لجميع مستخدمي المجال الحاليين باستخدام دور مخصص

لننظر أولاً في حالة الاستخدام للمستخدمين الحاليين وتمكين JumpStart لهؤلاء المستخدمين بطريقة آلية.

لتحقيق ذلك ، قمنا بإنشاء ملف تكوين سحابة AWS قالب يمكنك تشغيله في نفس المنطقة التي يوجد بها مجال SageMaker.

مكدس CloudFormation الموجود في الملف المرفق jumpstart_solutions_resources.template.yaml يحتوي الملف على المكونات التالية:

  • AmazonSageMakerServiceCatalogProductsLaunchRole و AmazonSageMakerServiceCatalogProductsUseRole - ينشئ هذين الدورين IAM ، إذا
    لم يكونوا موجودين بالفعل.
  • 1PProductUseRolePolicy - ينشئ هذه السياسة التي تستخدمها AmazonSageMakerServiceCatalogProductsUseRole، إذا لم يكن هذا الدور موجودًا بالفعل.
  • setup_solutions_tests_portfolio - أ AWS لامدا الوظيفة التي تؤدي استيراد حافظة AWS Service Catalog وترابط الأدوار من خلال استدعاء Boto3 APIs. يتم استدعاء هذه الوظيفة مرة واحدة أثناء إنشاء مكدس CloudFormation.
  • LambdaIAM دور الدور - تستخدم بواسطة الوظيفة setup_solutions_tests_portfolio للاتصال بـ AWS Service Catalog و SageMaker APIs.
  • برنامج SetupPortfolioInvoker - يستدعي الوظيفة setup_solutions_tests_portfolio.

بعد تشغيل وظيفة Lambda كجزء من نشر CloudFormation ، تقوم بتعديل جميع مستخدمي SageMaker Domain الحاليين لتمكين JumpStart و Projects من أجلهم. لمزيد من المعلومات حول إنشاء مكدس CloudFormation ومراقبته ، يرجى الرجوع إلى كيف يعمل AWS CloudFormation.

حالة الاستخدام 2: تمكين JumpStart لمستخدم مجال واحد مع دور مخصص

يفضل العديد من العملاء توسيع نطاق عملية تهيئة مستخدم المجال من خلال أتمتة ذلك برمجيًا. في هذا القسم ، نقدم مرجعًا لبرنامج Python يمكنك استخدامه كجزء من عملية الإعداد لتمكين JumpStart لمستخدم جديد مع دور مخصص. يقوم برنامج Python النصي هذا بتنفيذ الاقتران المطلوب لدور المستخدم المحدد. يجب أن تحصل العملية المؤتمتة التي تستدعي هذا البرنامج النصي على إذن لاستخدام AWS Service Catalog و SageMaker APIs. انظر الكود التالي:

sagemaker_client = boto3.client("sagemaker")
sc_client = boto3.client("servicecatalog") # function to return 'Amazon SageMaker' portfolio id
def get_solutions_portfolio_id(sc_client): portfolio_shares = sc_client.list_accepted_portfolio_shares() for portfolio in portfolio_shares['PortfolioDetails']: if portfolio['ProviderName'] == 'Amazon SageMaker': return(portfolio['Id']) portfolio_id = get_solutions_portfolio_id(sc_client)
# import Solutions Service Catalog Portfolio sagemaker_client.enable_sagemaker_servicecatalog_portfolio() sc_client.associate_principal_with_portfolio( PortfolioId=portfolio_id, PrincipalARN=, # custom role ARN PrincipalType='IAM' )

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

تنظيف

بعد تمكين جميع الأدوار المخصصة لاستخدام JumpStart ، يمكننا تنظيف الموارد التي لم تعد بحاجة إليها. يمكنك حذف وظيفة Lambda setup_solutions_tests_portfolio ودور IAM LambdaIAMRole تم إنشاؤه بواسطة نموذج CloudFormation. الدورين الآخرين لـ IAM ، AmazonSageMakerServiceCatalogProductsLaunchRole و AmazonSageMakerServiceCatalogProductsUseRole، والسياسة المرتبطة 1PProductUseRolePolicy (إذا تم إنشاؤها) يجب عدم حذفها لأنها بحاجة إلى أن تكون موجودة للوصول إلى JumpStart.

وفي الختام

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

جربه وأخبرنا إذا كان لديك أي أسئلة في قسم التعليقات!

موارد إضافية

لمزيد من المعلومات ، راجع ما يلي:


حول المؤلف

نيخيل جها هو مدير الحساب الفني الأول في Amazon Web Services. تشمل مجالات تركيزه الذكاء الاصطناعي / تعلم الآلة والتحليلات. في أوقات فراغه ، يستمتع بلعب تنس الريشة مع ابنته واستكشاف الأماكن الخارجية.

ايفان كرافيتز هو مهندس برمجيات في Amazon Web Services ، ويعمل على SageMaker JumpStart. إنه يستمتع بالطهي والركض في مدينة نيويورك.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة