هذه مشاركة مدونة ضيف تمت كتابتها بالاشتراك مع باتريك أوبرهير من Contentful ويوهانس غونتر من Netlight Consulting.
يوضح منشور المدونة هذا كيفية تحسين الأمان في بنية خط أنابيب البيانات بناءً على مهام سير العمل المُدارة من أمازون لتدفق الهواء من أمازون (Amazon MWAA) و خدمة Amazon Elastic Kubernetes (Amazon EKS) من خلال إعداد أذونات دقيقة باستخدام هاشيكورب تيرافورم للبنية التحتية كرمز.
يستخدم العديد من عملاء AWS Amazon EKS لتنفيذ أحمال عمل البيانات الخاصة بهم. تتضمن مزايا Amazon EKS خيارات مختلفة للحوسبة والتخزين اعتمادًا على احتياجات عبء العمل، واستخدام أعلى للموارد من خلال مشاركة البنية التحتية الأساسية، ومجتمع مفتوح المصدر نابض بالحياة يوفر امتدادات مصممة لهذا الغرض. ال بيانات عن EKS يوفر المشروع سلسلة من القوالب والموارد الأخرى لمساعدة العملاء على البدء في هذه الرحلة. ويتضمن وصفا للاستخدام Amazon MWAA كمجدول للوظائف.
Contentful هو أحد عملاء AWS وشريك شبكة شركاء AWS (APN). خلف الكواليس لمنتج البرمجيات كخدمة (SaaS)، منصة المحتوى القابل للتركيب، تستخدم Contentful رؤى من البيانات لتحسين عملية اتخاذ القرارات التجارية وتجربة العملاء. تشارك المحتوى نتلايت، وهي شريك استشاري لـ APN، للمساعدة في إعداد منصة بيانات لجمع هذه الأفكار.
يتم تشغيل معظم أعباء عمل تطبيق Contentful على Amazon EKS، وتنتشر المعرفة بهذه الخدمة وKubernetes على نطاق واسع في المؤسسة. ولهذا السبب قرر فريق هندسة البيانات في Contentful تشغيل خطوط البيانات على Amazon EKS أيضًا. للوظيفة جدولة، بدأوا باستخدام Apache Airflow الذي يتم تشغيله ذاتيًا على مجموعة Amazon EKS ثم تحولوا لاحقًا إلى Amazon MWAA لتقليل النفقات الهندسية والعمليات. العمل بقي على أمازون EKS.
يقوم Contentful بتشغيل مسار بيانات معقد باستخدام هذه البنية التحتية، بما في ذلك الاستيعاب من مصادر بيانات متعددة ومهام تحويل مختلفة، على سبيل المثال استخدام DBT. يشترك المسار بأكمله في بيئة Amazon MWAA واحدة ومجموعة Amazon EKS واحدة. مع وجود مجموعة متنوعة من أعباء العمل في بيئة واحدة، من الضروري تطبيق مبدأ الأقل امتياز، مما يضمن أن المهام أو المكونات الفردية تتمتع فقط بالأذونات المحددة التي تحتاجها لتعمل.
ومن خلال تقسيم الأذونات وفقًا للأدوار والمسؤوليات، تمكن فريق هندسة البيانات في Contentful من إنشاء بيئة معالجة بيانات أكثر قوة وأمانًا، وهو أمر ضروري للحفاظ على سلامة وسرية البيانات التي يتم التعامل معها.
في منشور المدونة هذا، نتناول عملية إعداد البنية الأساسية من البداية ونشر نموذج تطبيق باستخدام Terraform، وهي أداة Contentful المفضلة للبنية التحتية كتعليمات برمجية.
المتطلبات الأساسية المسبقة
لمتابعة منشور المدونة هذا، تحتاج إلى تثبيت أحدث إصدار من الأدوات التالية:
نبذة
في منشور المدونة هذا، ستقوم بإنشاء تطبيق نموذجي بالبنية الأساسية التالية:
يسرد نموذج سير عمل Airflow الكائنات الموجودة في الحاوية المصدر، ويخزن هذه القائمة مؤقتًا باستخدام XComs تدفق الهواء، ويكتب القائمة كملف في مجموعة الوجهة. يتم تنفيذ هذا التطبيق باستخدام وحدات Amazon EKS، المجدولة بواسطة بيئة Amazon MWAA. يمكنك نشر مجموعة EKS وبيئة MWAA في ملف سحابة خاصة افتراضية (VPC) وتطبيق أذونات الامتياز الأقل على كبسولات EKS باستخدام أدوار IAM لحسابات الخدمة. تحتوي مجموعة التكوين الخاصة بـ Amazon MWAA على متطلبات وقت التشغيل، بالإضافة إلى رمز التطبيق الذي يحدد الرسم البياني الحلقي الموجه لتدفق الهواء (DAG).
تهيئة المشروع وإنشاء الدلاء
قم بإنشاء ملف main.tf
بالمحتوى التالي في دليل فارغ:
يحدد هذا الملف مزود Terraform AWS بالإضافة إلى مجموعة المصدر والوجهة، التي يتم تصدير أسمائها كـ معلمات AWS Systems Manager. كما أنه يخبر Terraform بتحميل كائن فارغ مسمى dummy.txt
في الحاوية المصدر، والتي تمكن تطبيق نموذج Airflow الذي سنقوم بإنشائه لاحقًا لتلقي نتيجة عند إدراج محتوى الحاوية.
قم بتهيئة مشروع Terraform وقم بتنزيل تبعيات الوحدة عن طريق إصدار الأمر التالي:
إنشاء البنية التحتية:
يطلب منك Terraform الإقرار بالتغييرات التي طرأت على البيئة ثم يبدأ في نشر الموارد في AWS. عند النشر الناجح، يجب أن تشاهد رسالة النجاح التالية:
قم بإنشاء VPC
قم بإنشاء ملف جديد vpc.tf
في نفس الدليل مثل main.tf
وأدخل ما يلي:
يحدد هذا الملف VPC، وهي شبكة افتراضية ستستضيف لاحقًا مجموعة Amazon EKS وبيئة Amazon MWAA. لاحظ أننا نستخدم القائمة Terraform وحدة لهذا، الذي يلتف تكوين موارد الشبكة الأساسية مثل الشبكات الفرعية, جداول الطريقو بوابات NAT.
تنزيل وحدة VPC:
نشر الموارد الجديدة:
لاحظ الموارد التي يتم إنشاؤها. باستخدام وحدة VPC في ملف Terraform الخاص بنا، يتم التخلص من الكثير من التعقيد الأساسي عند تحديد بنيتنا التحتية، ولكن لا يزال من المفيد معرفة ما يتم نشره بالضبط.
لاحظ أن Terraform يتعامل الآن مع الموارد التي حددناها في كلا الملفين، main.tf
و vpc.tf
لأن Terraform يشمل الكل .tf
ملفات في دليل العمل الحالي.
قم بإنشاء بيئة Amazon MWAA
قم بإنشاء ملف جديد mwaa.tf
وأدخل المحتوى التالي:
كما كان من قبل، نستخدم الوحدة النمطية الموجودة لتوفير جهد التكوين لبيئة Amazon MWAA. تقوم الوحدة أيضًا بإنشاء مجموعة التكوين، والتي نستخدمها لتحديد ملف تبعية وقت تشغيل التطبيق (أباتشي-تدفق الهواء-cncf-kubernetes) في requirements.txt
ملف. هذه الحزمة، بالاشتراك مع الحزمة المثبتة مسبقا أباتشي-تدفق الهواء-الأمازون، يتيح التفاعل مع Amazon EKS.
تنزيل وحدة MWAA:
نشر الموارد الجديدة:
تستغرق هذه العملية من 20 إلى 30 دقيقة حتى تكتمل.
قم بإنشاء مجموعة Amazon EKS
قم بإنشاء ملف eks.tf
مع المحتوى التالي:
لإنشاء المجموعة نفسها، نستفيد من مخططات Amazon EKS لـ Terraform مشروع. نحدد أيضًا مجموعة عقدة مُدارة بعقدة واحدة باعتبارها الحجم المستهدف. لاحظ أنه في الحالات التي يكون فيها الحمل متقلبًا، قم بتوسيع نطاق مجموعتك باستخدام كاربنتر بدلاً من نهج مجموعة العقدة المُدارة الموضح أعلاه يجعل مقياس المجموعة أكثر مرونة. لقد استخدمنا مجموعات العقد المُدارة في المقام الأول بسبب سهولة التكوين.
نحن نحدد الهوية التي دور تنفيذ Amazon MWAA يفترض في Kubernetes باستخدام map_roles
عامل. بعد تكوين مزود Terraform Kubernetes، فإننا نمنح أذونات دور تنفيذ Amazon MWAA لإدارة القرون في المجموعة.
قم بتنزيل مخططات EKS لوحدة Terraform:
نشر الموارد الجديدة:
تستغرق هذه العملية حوالي 12 دقيقة لتكتمل.
إنشاء أدوار IAM لحسابات الخدمة
قم بإنشاء ملف roles.tf
مع المحتوى التالي:
يحدد هذا الملف حسابين لخدمة Kubernetes، source-bucket-reader-sa
و destination-bucket-writer-sa
والأذونات الخاصة بهم مقابل AWS API، باستخدام أدوار IAM لحسابات الخدمة (IRSA). مرة أخرى، نستخدم وحدة نمطية من مشروع Amazon EKS Blueprints for Terraform لتبسيط تكوين IRSA. لاحظ أن كلا الدورين يحصلان فقط على الحد الأدنى من الأذونات التي يحتاجان إليها، والتي يتم تحديدها باستخدام سياسات AWS IAM.
تنزيل الوحدة الجديدة:
نشر الموارد الجديدة:
قم بإنشاء DAG
قم بإنشاء ملف dag.py
تحديد تدفق الهواء DAG:
يتم تعريف DAG ليتم تشغيله وفقًا لجدول كل ساعة، مع مهمتين read_bucket
مع حساب الخدمة source-bucket-reader-sa
و write_bucket
مع حساب الخدمة destination-bucket-writer-sa
، يركضون خلف بعضهم البعض. يتم تشغيل كلاهما باستخدام EksPodOperator، وهو المسؤول عن جدولة المهام على Amazon EKS باستخدام صورة AWS CLI Docker لتشغيل الأوامر. تسرد المهمة الأولى الملفات الموجودة في المجموعة المصدر وتكتب القائمة إلى Airflow XCom. تقوم المهمة الثانية بقراءة القائمة من XCom وتخزينها في مجموعة الوجهة. نلاحظ أن service_account_name
تميز المعلمة ما يُسمح لكل مهمة بالقيام به.
قم بإنشاء ملف dag.tf
لتحميل رمز DAG إلى حاوية تكوين Amazon MWAA:
نشر التغييرات:
تقوم بيئة Amazon MWAA تلقائيًا باستيراد الملف من حاوية S3.
قم بتشغيل DAG
في المتصفح الخاص بك، انتقل إلى وحدة تحكم أمازون MWAA واختر البيئة الخاصة بك. في الزاوية العلوية اليمنى، حدد افتح واجهة مستخدم تدفق الهواء . يجب أن ترى ما يلي:
لتشغيل DAG، في الإجراءات العمود، حدد رمز التشغيل ثم حدد الزناد DAG. انقر فوق اسم DAG لاستكشاف تشغيل DAG ونتائجه.
انتقل إلى وحدة تحكم Amazon S3 واختر المجموعة التي تبدأ بـ "الوجهة". يجب أن يحتوي على ملف list.json
تم إنشاؤها مؤخرًا بواسطة write_bucket
مهمة. قم بتنزيل الملف لاستكشاف محتواه، وهو عبارة عن قائمة JSON ذات إدخال واحد.
تنظيف
الموارد التي قمت بإنشائها في هذه الإرشادات التفصيلية تتحمل تكاليف AWS. لحذف الموارد التي تم إنشاؤها، أصدر الأمر التالي:
والموافقة على التغييرات في مربع حوار Terraform CLI.
وفي الختام
في منشور المدونة هذا، تعلمت كيفية تحسين أمان مسار البيانات الخاص بك الذي يعمل على Amazon MWAA وAmazon EKS من خلال تضييق أذونات كل مهمة على حدة.
للتعمق أكثر، استخدم المثال العملي الذي تم إنشاؤه في هذه الإرشادات لاستكشاف الموضوع بشكل أكبر: ماذا يحدث إذا قمت بإزالة ملف service_account_name
المعلمة من مهمة تدفق الهواء؟ ماذا يحدث إذا قمت بتبادل أسماء حسابات الخدمة في المهمتين؟
من أجل التبسيط، استخدمنا في هذه الإرشادات بنية ملف مسطحة مع ملفات Terraform وPython داخل دليل واحد. ولم نلتزم هيكل الوحدة القياسية مقترح من Terraform، والذي يوصى به بشكل عام. في المشروع الواقعي، قد يؤدي تقسيم المشروع إلى مشاريع أو وحدات Terraform متعددة أيضًا إلى زيادة المرونة والسرعة والاستقلالية بين الفرق التي تمتلك أجزاء مختلفة من البنية التحتية.
وأخيرا، تأكد من دراسة بيانات عن EKS الوثائق، التي توفر موارد قيمة أخرى لتشغيل مسار البيانات الخاص بك على Amazon EKS، بالإضافة إلى أمازون موا و أباتشي تدفق الهواء وثائق لتنفيذ حالات الاستخدام الخاصة بك. على وجه التحديد، إلقاء نظرة على هذا تنفيذ العينة وحدة Terraform لـ Amazon MWAA وAmazon EKS، والتي تحتوي على نهج أكثر نضجًا لتكوين Amazon EKS والقياس التلقائي للعقد، بالإضافة إلى الشبكات.
إذا كان لديك أي أسئلة، يمكنك بدء موضوع جديد على AWS re: Post أو الوصول إلى دعم AWS.
حول المؤلف
أولريش هينز هو مهندس الحلول في AWS. وهو يتعاون مع شركات البرمجيات لتصميم وتنفيذ الحلول المستندة إلى السحابة على AWS. قبل انضمامه إلى AWS، عمل لدى عملاء AWS وشركائها في أدوار هندسة البرمجيات والاستشارات والهندسة المعمارية لأكثر من 8 سنوات.
باتريك أوبرهير هو مهندس بيانات للموظفين في Contentful ولديه أكثر من 4 سنوات من العمل مع AWS وأكثر من 10 سنوات في مجال البيانات. في Contentful، يكون مسؤولاً عن البنية التحتية وعمليات مكدس البيانات المستضاف على AWS.
يوهانس غونتر هو مستشار السحابة والبيانات في Netlight ولديه أكثر من 5 سنوات من العمل مع AWS. لقد ساعد العملاء في مختلف الصناعات في تصميم منصات سحابية مستدامة وهو معتمد من AWS.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/big-data/set-up-fine-grained-permissions-for-your-data-pipeline-using-mwaa-and-eks/
- :لديها
- :يكون
- :ليس
- $ UP
- 1
- 10
- 100
- 12
- 16
- 2023
- 27
- 41
- 8
- 9
- a
- ماهرون
- من نحن
- فوق
- وفقا
- حسابي
- الحسابات
- نقر
- في
- الإجراءات
- اسيكليك
- وأضاف
- انضمت
- مميزات
- مزايا
- بعد
- مرة أخرى
- ضد
- الكل
- على طول
- أيضا
- أمازون
- أمازون ويب سيرفيسز
- an
- و
- آخر
- أي وقت
- أباتشي
- API
- تطبيق
- التقديم
- نهج
- الموافقة على
- هندسة معمارية
- هي
- AS
- يفترض
- At
- ترخيص
- أوتوماتيك
- تلقائيا
- متاح
- بعيدا
- AWS
- معتمد من AWS
- عميل AWS
- على أساس
- لان
- قبل
- وراء
- خلف الكواليس
- يجري
- ما بين
- المدونة
- على حد سواء
- المتصفح
- الأعمال
- لكن
- by
- CAN
- الحالات
- الأطباء
- غير
- التغييرات
- خيار
- اختار
- انقر
- عميل
- سحابة
- كتلة
- الكود
- عمود
- مجموعة
- مجتمع
- الشركات
- إكمال
- مجمع
- تعقيد
- مكونات
- إحصاء
- سرية
- الاعداد
- كنسولات
- consultants
- الاستشارات
- تحتوي على
- يحتوي
- محتوى
- منصة المحتوى
- زاوية
- تصحيح
- التكاليف
- خلق
- خلق
- يخلق
- حالياًّ
- زبون
- تجربة العملاء
- العملاء
- DAG
- البيانات
- مهندس بيانات
- منصة البيانات
- معالجة المعلومات
- التاريخ والوقت
- قررت
- اتخاذ القرار
- أعمق
- حدد
- تعريف
- يعرف
- تحديد
- التبعيات
- التبعية
- اعتمادا
- نشر
- نشر
- نشر
- نشر
- وصف
- تصميم
- افضل الرحلات السياحية
- دمر
- حوار
- فعل
- مختلف
- توجه
- غطس
- عدة
- do
- عامل في حوض السفن
- توثيق
- بإمكانك تحميله
- رسم
- كل
- سهولة
- صدى
- جهد
- فارغ
- تمكن
- مخطوب
- مهندس
- الهندسة
- ضمان
- دخول
- البيئة
- أساسي
- الأثير (ETH)
- بالضبط
- مثال
- تبادل
- تنفيذ
- أعدم
- الخبره في مجال الغطس
- اكتشف
- اضافات المتصفح
- زائف
- حقل
- قم بتقديم
- ملفات
- الاسم الأول
- مسطحة
- مرونة
- بمرونة
- اتباع
- متابعيك
- في حالة
- تبدأ من
- وظيفة
- إضافي
- جمع
- على العموم
- دولار فقط واحصل على خصم XNUMX% على جميع
- GitHub جيثب:
- منح
- رسم بياني
- تجمع
- مجموعات
- ضيف
- مدونة الضيف
- مقابض
- يحدث
- يملك
- he
- مساعدة
- ساعد
- أعلى
- مضيف
- استضافت
- كيفية
- كيفية
- HTML
- HTTPS
- IAM
- هوية
- if
- تنفيذ
- تحقيق
- استيراد
- واردات
- تحسن
- in
- تتضمن
- يشمل
- بما فيه
- القيمة الاسمية
- استقلال
- فرد
- الصناعات
- البنية التحتية
- في الداخل
- رؤى
- بدلًا من ذلك
- سلامة
- تفاعل
- السطح البيني
- إلى
- قضية
- إصدار
- IT
- انها
- نفسها
- وظيفة
- المشــاريــع
- انضمام
- رحلة
- JPG
- جسون
- القفل
- نوع
- علم
- المعرفة
- Kubernetes
- الى وقت لاحق
- آخر
- تعلم
- الأقل
- مثل
- قائمة
- قائمة
- قوائم
- تحميل
- محلي
- تسجيل الدخول
- بحث
- المحافظة
- جعل
- يصنع
- إدارة
- تمكن
- مدير
- ناضج
- مايو..
- الرسالة
- البيانات الوصفية
- الحد الأدنى
- دقائق
- وحدة
- الوحدات
- الأكثر من ذلك
- كثيرا
- متعدد
- الاسم
- عين
- أسماء
- التنقل
- ضروري
- حاجة
- إحتياجات
- شبكة
- الشبكات
- جديد
- العقدة
- لاحظ
- الآن
- موضوع
- الأجسام
- of
- on
- ONE
- فقط
- المصدر المفتوح
- عملية
- عمليات
- مشغلي
- مزيد من الخيارات
- or
- منظمة
- أخرى
- لنا
- خارج
- الناتج
- الخاصة
- صفقة
- المعلمة
- الشريكة
- شبكة شريك
- شركاء
- أجزاء
- بقعة
- مسار
- باتريك
- أذونات
- خط أنابيب
- المنصة
- منصات التداول
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- بلايستشن
- القرون
- سياسة
- صورة
- منشور
- في المقام الأول
- خاص
- معالجة
- المنتج
- ملفي الشخصي
- تنفيذ المشاريع
- مشروع ناجح
- المقترح
- مزود
- مقدمي
- ويوفر
- بايثون
- الأسئلة المتكررة
- RE
- الوصول
- تسلم
- مؤخرا
- موصى به
- تخفيض
- منطقة
- إزالة
- المتطلبات الأساسية
- مورد
- استخدام الموارد
- الموارد
- المسؤوليات
- مسؤول
- نتيجة
- النتائج
- قوي
- النوع
- الأدوار
- قاعدة
- يجري
- تشغيل
- يدير
- ادارة العلاقات مع
- نفسه
- حفظ
- حجم
- التحجيم
- مشاهد
- جدول
- المقرر
- جدولة
- خدش
- الثاني
- تأمين
- أمن
- انظر تعريف
- مسلسلات
- الخدمة
- خدماتنا
- طقم
- ضبط
- مشاركة
- مشاركة
- ينبغي
- أظهرت
- يظهر
- بساطة
- تبسيط
- عزباء
- بيئة واحدة
- المقاس
- صغير
- تطبيقات الكمبيوتر
- هندسة البرمجيات
- الحلول
- مصدر
- مصادر
- محدد
- على وجه التحديد
- سرعة
- كومة
- فريق العمل
- بداية
- بدأت
- ابتداء
- يبدأ
- ملخص الحساب
- لا يزال
- تخزين
- خيارات التخزين
- فروعنا
- بناء
- دراسة
- موضوع
- تحقيق النجاح
- ناجح
- بالتأكيد
- استدامة
- تحول
- رمز
- أنظمة
- أخذ
- اتخذت
- يأخذ
- الهدف
- مهمة
- المهام
- فريق
- فريق
- يروي
- النماذج
- Terraform
- نص
- أن
- •
- المصدر
- من مشاركة
- then
- تشبه
- هم
- عبر
- إلى
- رمز
- أداة
- أدوات
- تيشرت
- موضوع
- تحول
- يثير
- صحيح
- اثنان
- نوع
- التي تقوم عليها
- تحديث
- بناء على
- تستخدم
- مستعمل
- مستخدم
- واجهة المستخدم
- يستخدم
- استخدام
- القيمة
- قيمنا
- متغير
- مختلف
- الإصدار
- نابض بالحياة
- افتراضي
- سير
- تجول
- وكان
- we
- الويب
- خدمات ويب
- حسن
- ابحث عن
- متى
- التي
- كامل
- لمن
- لماذا
- واسع الانتشار
- سوف
- مع
- عمل
- سير العمل
- سير العمل
- عامل
- سنوات
- لصحتك!
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت