AWS CodeArtifact يسمح للمطورين بتوصيل مستودعات الأكواد الداخلية بمستودعات التعليمات البرمجية الأولية مثل Pypi أو Maven أو NPM. يعد AWS CodeArtifact إضافة قوية لسير عمل CI / CD على AWS ، ولكنه فعال بالمثل لقواعد التعليمات البرمجية المستضافة على دفتر Jupyter. هذا نموذج تطوير شائع لمطوري التعلم الآلي الذين يقومون ببناء نماذج تعلم الآلة وتدريبها بانتظام.
في هذا المنشور ، نوضح كيفية الاتصال الآمن بـ AWS CodeArtifact من مثيل SageMaker Notebook معطل عبر الإنترنت. هذا المنشور مخصص لمهندسي الشبكات والأمان الذين يدعمون فرق علوم البيانات اللامركزية على AWS.
في منشور آخر، ناقشنا كيفية إنشاء دفتر ملاحظات معطل للإنترنت في شبكة فرعية خاصة من Amazon VPC مع الحفاظ على الاتصال بخدمات AWS عبر نقاط نهاية AWS Private Link. ستعمل الأمثلة الواردة في هذا المنشور على توصيل مثيل دفتر ملاحظات معطل عبر الإنترنت بـ AWS CodeArtifact وتنزيل حزم التعليمات البرمجية مفتوحة المصدر دون الحاجة إلى اجتياز الإنترنت العام.
حل نظرة عامة
يصف الرسم البياني التالي الحل الذي سنقوم بتنفيذه. نقوم بإنشاء مثيل دفتر ملاحظات SageMaker في شبكة فرعية خاصة من VPC. نقوم أيضًا بإنشاء مجال AWS CodeArtifact ومستودع. سيتم التحكم في الوصول إلى المستودع من خلال سياسات مستودع CodeArtifact وسياسات الوصول الخاصة بـ PrivateLink.
تسمح البنية لمثيل دفتر ملاحظات SageMaker المعطل عبر الإنترنت بالوصول إلى مستودعات CodeArtifact دون عبور الإنترنت العام. نظرًا لأن حركة مرور الشبكة لا تعبر الإنترنت العام ، فإننا نقوم بتحسين الوضع الأمني لمثيل الكمبيوتر الدفتري من خلال ضمان أن المستخدمين الذين لديهم وصول متوقع للشبكة فقط يمكنهم الوصول إلى مثيل الكمبيوتر الدفتري. علاوة على ذلك ، يسمح هذا النموذج لمسؤولي الأمن بتقييد استهلاك المكتبة للتوزيعات "المعتمدة" فقط لحزم التعليمات البرمجية. من خلال الجمع بين أمان الشبكة وإدارة الحزم الآمنة ، يمكن لمهندسي الأمان إدارة مكتبات مفتوحة المصدر لعلماء البيانات بشفافية دون إعاقة قدرتهم على العمل.
المتطلبات الأساسية المسبقة
بالنسبة لهذا المنشور ، نحتاج إلى مثيل دفتر ملاحظات SageMaker معطل عبر الإنترنت ، و VPC بشبكة فرعية خاصة. زيارة هذا الرابط لإنشاء شبكة فرعية خاصة في VPC ، بالإضافة إلى ملف الوظيفة السابقة في هذه السلسلة للبدء بهذه المتطلبات الأساسية.
نحتاج أيضًا إلى مجال CodeArtifact في منطقة AWS حيث أنشأت مثيل دفتر ملاحظات SageMaker الخاص بك معطل عبر الإنترنت. المجال هو وسيلة لتنظيم المستودعات بشكل منطقي في خدمة CodeArtifact. اسم المجال ، حدد مفتاح مُدار من AWS للتشفير وإنشاء المجال. هذا الرابط يناقش كيفية إنشاء مجال AWS CodeArtifact.
قم بتكوين AWS CodeArtifact
لتكوين AWS CodeArtifact ، نقوم بإنشاء مستودع في المجال. قبل المتابعة ، تأكد من تحديد نفس المنطقة التي تم فيها نشر مثيل دفتر الملاحظات. نفذ الخطوات التالية لتكوين AWS CodeArtifact:
- في وحدة تحكم AWS CodeArtifact ، اختر إنشاء مستودع.
- امنح المستودع اسمًا ووصفًا. حدد المستودع العام المنبع الذي تريد استخدامه. نستخدم متجر pypi في هذا المنشور.
- اختار التالي.
- اختر حساب AWS الذي تعمل فيه ومجال AWS CodeArtifact الذي تستخدمه لهذا الحساب.
- اختار التالي.
- راجع ملخص معلومات المستودع واختر إنشاء مستودع.
- ملاحظة: في قسم شاشة المراجعة الذي يحمل علامة "تدفق الحزمة" ، يوجد مخطط انسيابي يصف تدفق التبعيات من الاتصالات الخارجية إلى المجال الذي يديره AWS CodeArtifact.
- يصف هذا المخطط الانسيابي ما يحدث عندما نقوم بإنشاء مستودعنا. نحن في الواقع نقوم بإنشاء مستودعين. الأول هو مستودع "pypi-store" الذي يتصل بمستودع pypi المستضاف خارجيًا. تم إنشاء هذا المستودع بواسطة AWS CodeArtifact ويتم استخدامه لتنظيم الاتصالات بالمستودع الرئيسي. المستودع الثاني ، "منعزل" ، يتصل بمستودع "pypi-store". يتيح لنا هذا المستودع المتعدِّد الجمع بين الاتصالات الخارجية ومكتبات الجهات الخارجية قبل استخدامها.
- يتيح لنا هذا الشكل من إدارة المستودعات المتعدية فرض الوصول الأقل امتيازًا على المكتبات التي نستخدمها لأحمال عمل علوم البيانات.
بدلاً من ذلك ، يمكننا تنفيذ هذه الخطوات باستخدام AWS CLI باستخدام الأمر التالي:
النتيجة في نهاية هذه العملية هي مستودعين في مجالنا.
نهج مستودع CodeArtifact
للإيجاز ، سنمنح أ سياسة منفتحة نسبيًا لمستودع IsolatedSM الخاص بنا مما يسمح لأي من مطورينا بالوصول إلى مستودع CodeArtifact. يجب تعديل هذه السياسة لحالات استخدام الإنتاج. لاحقًا في المنشور ، سنناقش كيفية تنفيذ الوصول الأقل امتيازًا على مستوى الدور باستخدام سياسة IAM المرفقة بدور مثيل دفتر الملاحظات. في الوقت الحالي ، انتقل إلى المستودع في وحدة الإدارة في AWS وقم بتوسيع ملف التفاصيل قسم من صفحة تكوين المستودع. أختر تطبيق سياسة المستودع مع سياسة المستودع.
في الشاشة التالية ، الصق مستند السياسة التالي في حقل النص المحدد تحرير نهج المستودع ثم اختر توفر:
توفر هذه السياسة وصولاً كاملاً إلى المستودع للدور المرتبط بطبعة دفتر الملاحظات المعزول. هذا النهج هو نموذج نهج يتيح للمطورين الوصول إلى CodeArtifact. لمزيد من المعلومات حول تعريفات السياسة لمستودعات CodeArtifact (خاصة إذا كنت بحاجة إلى وصول أكثر تقييدًا يعتمد على الأدوار) ، راجع دليل مستخدم CodeArtifact. لتكوين نفس سياسة المستودع باستخدام AWS CLI ، احفظ مستند السياسة السابق باسم policy.json
وقم بتشغيل الأمر التالي:
تكوين الوصول إلى AWS CodeArtifact
يتطلب الاتصال بمستودع CodeArtifact تسجيل الدخول إلى المستودع كمستخدم. بالانتقال إلى المستودع والاختيار عرض تعليمات الاتصال ، يمكننا تحديد تعليمات الاتصال المناسبة لمدير الحزم الذي نختاره. سنستخدم النقطة في هذا المنشور ؛ من القائمة المنسدلة ، حدد بذرة وانسخ تعليمات الاتصال.
يجب أن يكون أمر AWS CLI المراد استخدامه مشابهًا لما يلي:
هذا الأمر عبارة عن استدعاء CodeArtifact API يقوم بإرجاع ملف تعريف ارتباط للمصادقة للدور الذي طلب الوصول إلى هذا المستودع. يمكن تشغيل هذا الأمر في دفتر ملاحظات Jupyter لمصادقة الوصول إلى مستودع CodeArtifact وسيقوم بتكوين مديري الحزم لتثبيت المكتبات من هذا المستودع الرئيسي. يمكننا اختبار ذلك في مثال دفتر ملاحظات SageMaker الخاص بنا المعطل عبر الإنترنت.
عند تشغيل أمر تسجيل الدخول في مثيل دفتر الملاحظات المعزول الخاص بنا ، لا يحدث شيء لبعض الوقت. بعد فترة (حوالي 300 ثانية) ، سيخرج Jupyter خطأ انتهاء مهلة الاتصال. هذا لأن مثيل دفتر الملاحظات لدينا يعيش في شبكة فرعية معزولة. هذا هو السلوك المتوقع ، فهو يؤكد أن مثيل الكمبيوتر الدفتري الخاص بنا معطل للإنترنت. نحتاج إلى توفير الوصول إلى الشبكة بين هذه الشبكة الفرعية ومستودع CodeArtifact الخاص بنا.
قم بإنشاء اتصال PrivateLink بين Notebook و CodeArtifact
AWS الرابط الخاص هي خدمة شبكة تنشئ نقاط نهاية VPC في VPC لخدمات AWS الأخرى مثل الأمازون الحوسبة المرنة السحابية (Amazon EC2) و Amazon S3 و خدمة إعلام أمازون البسيطة (أمازون SNS). تسهل نقاط النهاية الخاصة طلبات API إلى خدمات AWS الأخرى من خلال VPC الخاص بك بدلاً من عبر الإنترنت العام. هذا هو المكون الأساسي الذي يتيح للحل الخاص بنا الوصول بشكل خاص وآمن إلى مستودع CodeArtifact الذي أنشأناه.
قبل أن ننشئ نقاط نهاية PrivateLink الخاصة بنا ، يجب علينا إنشاء مجموعة أمان لربطها بنقاط النهاية. قبل المتابعة ، تأكد من أنك في نفس المنطقة التي يوجد بها مثيل دفتر ملاحظات SageMaker المعطل عبر الإنترنت.
- في وحدة تحكم Amazon VPC ، اختر مجموعات الأمان.
- اختار إنشاء مجموعة الأمان.
- امنح المجموعة اسمًا ووصفًا مناسبين.
- حدد VPC الذي ستقوم بنشر نقاط نهاية PrivateLink إليه. يجب أن يكون هذا هو نفس VPC الذي يستضيف دفتر SageMaker المعزول.
- تحت قواعد الداخل، اختر أضف القاعدة ومن ثم السماح كل حركة المرور من مجموعة الأمان التي تستضيف دفتر SageMaker المعزول.
- القواعد الصادرة يجب أن يظل الافتراضي. قم بإنشاء مجموعة الأمان.
يمكنك تكرار هذه الخطوات في CLI بما يلي:
بالنسبة لهذه الخطوة التالية ، نوصي العملاء باستخدام AWS CLI للبساطة. أولاً ، احفظ مستند السياسة التالي باسم policy.json
في نظام الملفات المحلي لديك.
بعد ذلك ، قم بتشغيل الأوامر التالية باستخدام AWS CLI لإنشاء نقاط نهاية PrivateLink لـ CodeArtifact. يقوم هذا الأمر الأول بإنشاء نقطة نهاية VPC لأوامر API الخاصة بمستودع CodeArtifact.
هذه الأوامر الثانية تنشئ نقطة نهاية VPC لأوامر CodeArtifact non-repository API. لاحظ في هذا الأمر ، أننا لا نقوم بتمكين DNS الخاص لنقطة النهاية. لاحظ إخراج هذا الأمر حيث سنستخدمه لتمكين DNS الخاص في أمر CLI لاحق.
بمجرد إنشاء نقطة نهاية VPC هذه ، قم بتمكين DNS الخاص لنقطة النهاية عن طريق تشغيل الأمر الأخير التالي:
تسمح وثيقة السياسة هذه بعمليات CodeArtifact الشائعة التي يقوم بها المطورون للسماح لها عبر نقطة نهاية PrivateLink هذه. هذا مقبول لحالة الاستخدام الخاصة بنا لأن CodeArtifact يتيح لنا تحديد سياسات الوصول على المستودعات نفسها. نحن نحظر فقط إرسال أوامر CodeArtifact الإدارية عبر نقطة النهاية هذه. نحن نحظر الأوامر الإدارية لأننا لا نريد للمطورين تنفيذ أوامر إدارية على المستودع.
تُظهر لقطة الشاشة التالية نقطة نهاية API ومجموعة الأمان التي تنتمي إليها.
يجب أن تسرد القواعد الواردة في مجموعة الأمان هذه قاعدة واردة واحدة ، مما يسمح كل حركة المرور من مجموعة الأمان الخاصة بدفتر SageMaker المعزول.
اختبار الشبكة
بمجرد تكوين مجموعات الأمان وإنشاء نقاط نهاية الارتباط الخاص ، افتح دفتر ملاحظات Jupyter في مثيل دفتر ملاحظات SageMaker المعزول. في الخلية ، قم بتشغيل تعليمات الاتصال الخاصة بمستودع CodeArtifact الذي أنشأناه سابقًا. بدلاً من التوقف لفترة طويلة مع حدوث خطأ انتهاء مهلة نهائي ، نحصل الآن على استثناء AccessDenied.
تذكر أنه يمكن العثور على تعليمات اتصال CodeArtifact في وحدة الإدارة في AWS بالانتقال إلى مستودع CodeArtifact والاختيار اعرض تعليمات التوصيل. بالنسبة لهذا المنشور ، حدد تعليمات الاتصال للنقطة.
في هذه المرحلة ، يمكن لمثيل دفتر ملاحظات SageMaker المعزول الاتصال بخدمة CodeArtifact عبر PrivateLink. نحتاج الآن إلى منح دور مثيل دفتر الملاحظات لدينا الأذونات ذات الصلة المطلوبة للتفاعل مع الخدمة من دفتر ملاحظات Jupyter.
تعديل أذونات دفتر الملاحظات
بمجرد تكوين مستودع CodeArtifact الخاص بنا ، نحتاج إلى تعديل الأذونات على دور مثيل دفتر الملاحظات المعزول لدينا للسماح لدفترنا المحمول بالقراءة من مستودع القطع الأثرية. في وحدة الإدارة في AWS ، انتقل إلى خدمة IAM وتحت السياسات، اختر إنشاء سياسة. اختيار JSON علامة التبويب والصق مستند JSON التالي في نافذة النص:
لإنشاء مستند السياسة هذا في CLI ، احفظ JSON هذا باسم policy.json
وقم بتشغيل الأمر التالي:
عند إرفاقه بدور ما ، يسمح مستند السياسة هذا باسترداد رمز ترخيص مميز من خدمة CodeArtifact. قم بإرفاق هذه السياسة بدور مثيل دفتر الملاحظات لدينا من خلال الانتقال إلى خدمة IAM في وحدة الإدارة في AWS. اختر دور مثيل دفتر الملاحظات الذي تستخدمه وأرفق هذه السياسة مباشرة بدور المثيل. يمكن القيام بذلك باستخدام AWS CLI عن طريق تشغيل الأمر التالي:
مزودًا بدور يسمح بالمصادقة على CodeArtifact ، يمكننا الآن متابعة الاختبار.
اختبار الأذونات
في وحدة الإدارة في AWS ، انتقل إلى خدمة SageMaker وافتح دفتر ملاحظات Jupyter من مثيل دفتر الملاحظات المعطل عبر الإنترنت. في خلية دفتر الملاحظات ، حاول تسجيل الدخول إلى مستودع CodeArtifact باستخدام نفس الأمر من اختبار الشبكة (الموجود في قسم اختبار الشبكة).
بدلاً من استثناء رفض الوصول ، يجب أن يُظهر الإخراج مصادقة ناجحة للمستودع مع انتهاء صلاحية الرمز المميز. استمر في الاختبار باستخدام النقطة لتنزيل الحزم وتثبيتها وإلغاء تثبيتها. يتم اعتماد هذه الأوامر بناءً على السياسة المرفقة بمستودع CodeArtifact. إذا كنت تريد تقييد الوصول إلى المستودع بناءً على المستخدم ، على سبيل المثال ، تقييد القدرة على إلغاء تثبيت حزمة ، قم بتعديل نهج مستودع CodeArtifact.
يمكننا التأكد من تثبيت الحزم من خلال الانتقال إلى المستودع في وحدة الإدارة في AWS والبحث عن الحزمة المثبتة.
تنظيف
عند إتلاف نقاط نهاية VPC ، يفقد مثيل دفتر الملاحظات الوصول إلى مستودع CodeArtifact. هذا يعيد تقديم خطأ المهلة من وقت سابق في هذا المنشور. هذا هو السلوك المتوقع. بالإضافة إلى ذلك ، يمكنك أيضًا حذف مستودع CodeArtifact ، الذي يفرض رسومًا على العملاء بناءً على عدد الجيجابايت من البيانات المخزنة شهريًا.
وفي الختام
من خلال دمج نقاط نهاية VPC مع دفاتر SageMaker ، يمكننا توسيع مدى توفر خدمات AWS الأخرى إلى مثيلات الكمبيوتر الدفتري الخاصة المعطلة عبر الإنترنت. يتيح لنا ذلك تحسين الوضع الأمني لبيئة التطوير لدينا ، دون التضحية بإنتاجية المطور.
عن المؤلف
دان فيرجسون هو مهندس حلول في Amazon Web Services ، ويركز بشكل أساسي على استثمارات الأسهم الخاصة وأسهم النمو في الشركات الناشئة في المرحلة المتأخرة.
- "
- &
- الوصول
- حسابي
- اكشن
- إضافة
- الكل
- السماح
- أمازون
- أمازون ويب سيرفيسز
- آخر
- API
- ما يقرب من
- هندسة معمارية
- محام
- التحقّق من المُستخدم
- ترخيص
- توفر
- AWS
- يجري
- حظر
- الحدود
- نساعدك في بناء
- دعوة
- الحالات
- اسعارنا محددة من قبل وزارة العمل
- اختار
- الكود
- مشترك
- عنصر
- إحصاء
- الاعداد
- التواصل
- صلة
- التواصل
- الإتصال
- كنسولات
- استهلاك
- استمر
- خلق
- خلق
- يخلق
- خلق
- حاسم
- العملاء
- البيانات
- علم البيانات
- اللامركزية
- شرح
- نشر
- نشر
- هدم
- المطور
- المطورين
- التطوير التجاري
- مباشرة
- بحث
- DNS
- لا
- نطاق
- تأثير
- الطُرق الفعّالة
- تمكين
- التشفير
- نقطة النهاية
- المهندسين
- ضمان
- البيئة
- إنصاف
- خاصة
- مثال
- وسع
- متوقع
- مد
- الاسم الأول
- تدفق
- متابعيك
- النموذج المرفق
- وجدت
- بالإضافة إلى
- تجمع
- التسويق
- استضافة
- كيفية
- كيفية
- HTTPS
- تنفيذ
- تحسن
- معلومات
- تثبيت
- السطح البيني
- Internet
- الاستثمارات
- IT
- تعلم
- مستوى
- المكتبة
- LINK
- قائمة
- محلي
- طويل
- آلة
- آلة التعلم
- إدارة
- تمكن
- إدارة
- مدير
- مديرو
- مخضرم
- ML
- عارضات ازياء
- شهر
- الأكثر من ذلك
- شبكة
- شبكة الأمن
- ازدحام انترنت
- الشبكات
- مفكرة
- إعلام
- عدد
- جاكيت
- كود مفتوح المصدر
- عمليات
- أخرى
- نموذج
- البوينت
- سياسات الخصوصية والبيع
- سياسة
- قوي
- رئيسي
- خاص
- الأسهم الخاصة
- عملية المعالجة
- الإنتــاج
- إنتاجية
- ويوفر
- جمهور
- نوصي
- ذات الصلة
- مستودع
- طلبات
- مطلوب
- مورد
- عائدات
- مراجعة
- القواعد
- يجري
- تشغيل
- علوم
- العلماء
- شاشة
- ثواني
- تأمين
- آمن
- أمن
- الخدمة
- خدماتنا
- مماثل
- وبالمثل
- الاشارات
- حل
- الحلول
- بعض
- المسرح
- بدأت
- البدء
- ملخص الحساب
- ناجح
- الدعم
- نظام
- تجربه بالعربي
- الاختبار
- طرف ثالث
- عبر
- الوقت
- رمز
- حركة المرور
- us
- تستخدم
- المستخدمين
- الويب
- خدمات ويب
- ابحث عن
- في حين
- بدون
- للعمل
- عامل