این یک پست وبلاگ مهمان است که با همکاری Patrick Oberherr از Contentful و Johannes Günther از Netlight Consulting نوشته شده است.
این پست وبلاگ نشان می دهد که چگونه می توان امنیت را در معماری خط لوله داده بر اساس بهبود بخشید گردشهای کاری مدیریتشده آمازون برای Apache Airflow (Amazon MWAA) و Amazon Elastic Kubernetes Service (Amazon EKS) با تنظیم مجوزهای ریزدانه، با استفاده از HashiCorp Terraform برای زیرساخت به عنوان کد.
بسیاری از مشتریان AWS از Amazon EKS برای اجرای بارهای کاری داده خود استفاده می کنند. مزایای آمازون EKS شامل گزینههای محاسباتی و ذخیرهسازی مختلف بسته به نیازهای حجم کار، استفاده بیشتر از منابع با اشتراکگذاری زیرساختهای زیربنایی، و یک جامعه منبع باز پر جنب و جوش است که برنامههای افزودنی هدفمند را ارائه میدهد. را داده های مربوط به EKS پروژه مجموعه ای از الگوها و منابع دیگر را برای کمک به مشتریان برای شروع این سفر فراهم می کند. این شامل توضیحات استفاده است آمازون MWAA به عنوان یک زمانبندی کار.
خشنود مشتری AWS و شریک AWS Partner Network (APN) است. Contentful در پشت صحنه محصول Software-as-a-a-Service (SaaS) خود، پلتفرم محتوای قابل ترکیب محتوا، از بینش داده ها برای بهبود تصمیم گیری تجاری و تجربه مشتری استفاده می کند. قناعت درگیر نت لایت، یک شریک مشاوره APN، برای کمک به راه اندازی یک پلت فرم داده برای جمع آوری این بینش ها.
بیشتر بارهای کاری برنامه Contentful در Amazon EKS اجرا می شود و دانش این سرویس و Kubernetes در سازمان گسترده است. به همین دلیل است که تیم مهندسی داده Contentful تصمیم گرفت خطوط لوله داده را در Amazon EKS نیز اجرا کند. برای کار زمان بندیآنها با یک Apache Airflow خودگردان در یک خوشه Amazon EKS شروع کردند و بعداً برای کاهش هزینه های مهندسی و عملیات به Amazon MWAA تغییر مکان دادند. کار اعدام در Amazon EKS باقی ماند.
Contentful یک خط لوله داده پیچیده را با استفاده از این زیرساخت اجرا می کند، از جمله دریافت از منابع داده های متعدد و کارهای تبدیل مختلف، به عنوان مثال با استفاده از dbt. کل خط لوله از یک محیط آمازون MWAA و یک خوشه آمازون EKS مشترک است. با مجموعه ای متنوع از بارهای کاری در یک محیط واحد، لازم است که اعمال شود اصل حداقل امتیاز، اطمینان حاصل شود که وظایف یا مؤلفه های جداگانه فقط مجوزهای خاصی را دارند که برای عملکرد نیاز دارند.
با تقسیمبندی مجوزها بر اساس نقشها و مسئولیتها، تیم مهندسی داده Contentful توانست یک محیط پردازش داده قویتر و امنتر ایجاد کند، که برای حفظ یکپارچگی و محرمانه بودن دادههای مورد استفاده ضروری است.
در این پست وبلاگ، راهاندازی زیرساخت را از ابتدا و استقرار یک برنامه نمونه با استفاده از Terraform، ابزار انتخابی Contentful برای زیرساخت به عنوان کد، طی میکنیم.
پیش نیازها
برای دنبال کردن این پست وبلاگ، به آخرین نسخه ابزارهای زیر نیاز دارید:
بررسی اجمالی
در این پست وبلاگ، یک نمونه اپلیکیشن با زیرساخت زیر ایجاد می کنید:
نمونه گردش کار جریان هوا، اشیاء را در سطل منبع فهرست می کند، به طور موقت این لیست را با استفاده از آن ذخیره می کند Airflow XComs، و لیست را به صورت فایل در سطل مقصد می نویسد. این برنامه با استفاده از غلاف های آمازون EKS، برنامه ریزی شده توسط یک محیط آمازون MWAA اجرا می شود. شما خوشه EKS و محیط MWAA را در یک مستقر می کنید ابر خصوصی مجازی (VPC) و با استفاده از پادهای EKS، مجوزهای کمترین امتیاز را اعمال کنید نقش های IAM برای حساب های خدمات. سطل پیکربندی آمازون MWAA شامل الزامات زمان اجرا و همچنین کد برنامه است که یک نمودار غیر چرخشی هدایت شده جریان هوا (DAG).
پروژه را راه اندازی کنید و سطل ایجاد کنید
یک پرونده ایجاد کنید main.tf
با محتوای زیر در یک پوشه خالی:
این فایل تعریف می کند ارائه دهنده Terraform AWS و همچنین سطل مبدا و مقصد که نام آنها به عنوان صادر می شود پارامترهای AWS Systems Manager. همچنین به Terraform میگوید که یک شی خالی به نام آپلود کند dummy.txt
در سطل منبع، که برنامه نمونه Airflow را که بعداً ایجاد خواهیم کرد را فعال می کند تا هنگام فهرست کردن محتوای سطل، نتیجه را دریافت کنیم.
پروژه Terraform را راهاندازی کنید و وابستگیهای ماژول را با صدور دستور زیر دانلود کنید:
ایجاد زیرساخت:
Terraform از شما می خواهد که تغییرات محیط را تأیید کنید و سپس شروع به استقرار منابع در AWS می کند. پس از استقرار موفقیت آمیز، باید پیام موفقیت آمیز زیر را مشاهده کنید:
VPC ایجاد کنید
یک فایل جدید ایجاد کنید vpc.tf
در همان دایرکتوری main.tf
و موارد زیر را وارد کنید:
این فایل شبکه مجازی VPC را تعریف می کند که بعداً خوشه آمازون EKS و محیط آمازون MWAA را میزبانی می کند. توجه داشته باشید که ما از an استفاده می کنیم موجود Terraform واحد برای این، که پیکربندی منابع شبکه زیربنایی مانند زیرشبکه ها, جداول مسیرو دروازه های NAT.
دانلود ماژول VPC:
منابع جدید را مستقر کنید:
توجه داشته باشید که کدام منابع در حال ایجاد هستند. با استفاده از ماژول VPC در فایل Terraform، بسیاری از پیچیدگی های زیربنایی هنگام تعریف زیرساخت ما از بین می رود، اما هنوز هم مفید است که بدانیم دقیقا چه چیزی در حال استقرار است.
توجه داشته باشید که Terraform اکنون منابعی را که ما در هر دو فایل تعریف کرده ایم مدیریت می کند. main.tf
و vpc.tf
، زیرا Terraform شامل همه است .tf
فایل ها در فهرست کاری فعلی
محیط آمازون MWAA را ایجاد کنید
یک فایل جدید ایجاد کنید mwaa.tf
و مطالب زیر را درج کنید:
مثل قبل از an استفاده می کنیم ماژول موجود برای صرفه جویی در تلاش پیکربندی برای محیط آمازون MWAA. ماژول همچنین سطل پیکربندی را ایجاد می کند که ما از آن برای تعیین آن استفاده می کنیم وابستگی زمان اجرا برنامه (apache-airflow-cncf-kubernetes) در requirements.txt
فایل. این بسته، در ترکیب با بسته از پیش نصب شده است apache-airflow-amazon، تعامل با Amazon EKS را امکان پذیر می کند.
ماژول MWAA را دانلود کنید:
منابع جدید را مستقر کنید:
این عملیات 20 تا 30 دقیقه طول می کشد.
خوشه آمازون EKS را ایجاد کنید
یک پرونده ایجاد کنید eks.tf
با محتوای زیر:
برای ایجاد خود خوشه، از مزیت استفاده می کنیم نقشه های آمازون EKS برای Terraform پروژه ما همچنین یک گروه گره مدیریت شده با یک گره را به عنوان اندازه هدف تعریف می کنیم. توجه داشته باشید که در مواردی که دارای بار نوسانی هستند، کلاستر خود را با مقیاس بندی کنید نجار به جای رویکرد گروه گره مدیریت شده که در بالا نشان داده شده است، مقیاس خوشه را انعطاف پذیرتر می کند. ما از گروههای گره مدیریت شده عمدتاً به دلیل سهولت پیکربندی استفاده کردیم.
ما هویتی را تعریف می کنیم که نقش اجرای آمازون MWAA در Kubernetes با استفاده از map_roles
متغیر. پس از پیکربندی ارائه دهنده Terraform Kubernetes، ما به آمازون MWAA مجوز نقش اجرایی برای مدیریت pods در خوشه می دهیم.
ماژول EKS Blueprints for Terraform را دانلود کنید:
منابع جدید را مستقر کنید:
این عملیات حدود 12 دقیقه طول می کشد تا کامل شود.
نقش های IAM را برای حساب های سرویس ایجاد کنید
یک پرونده ایجاد کنید roles.tf
با محتوای زیر:
این فایل دو حساب سرویس Kubernetes را تعریف می کند، source-bucket-reader-sa
و destination-bucket-writer-sa
و مجوزهای آنها در برابر API AWS، با استفاده از نقشهای 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 برای اجرای دستورات اولین کار فایل ها را در سطل منبع لیست می کند و لیست را در Airflow XCom می نویسد. وظیفه دوم لیست را از XCom می خواند و آن را در سطل مقصد ذخیره می کند. توجه داشته باشید که service_account_name
پارامتر آنچه را که هر کار مجاز به انجام آن است متمایز می کند.
یک پرونده ایجاد کنید dag.tf
برای آپلود کد DAG در سطل پیکربندی آمازون MWAA:
اعمال تغییرات:
محیط آمازون MWAA به طور خودکار فایل را از سطل S3 وارد می کند.
DAG را اجرا کنید
در مرورگر خود به مسیر بروید کنسول آمازون MWAA و محیط خود را انتخاب کنید. در گوشه بالا سمت راست، را انتخاب کنید رابط کاربری جریان هوا را باز کنید . شما باید موارد زیر را ببینید:
برای فعال کردن DAG، در اعمال ستون، نماد پخش را انتخاب کنید و سپس انتخاب کنید ماشه DAG. روی نام DAG کلیک کنید تا اجرای DAG و نتایج آن را بررسی کنید.
حرکت به کنسول آمازون S3 و سطل را انتخاب کنید که با "مقصد" شروع می شود. باید حاوی یک فایل باشد list.json
اخیرا توسط write_bucket
وظیفه. فایل را دانلود کنید تا محتوای آن را بررسی کنید، یک لیست JSON با یک ورودی.
پاک کردن
منابعی که در این بررسی ایجاد کردید متحمل هزینه های AWS می شود. برای حذف منابع ایجاد شده، دستور زیر را صادر کنید:
و تغییرات در گفتگوی Terraform CLI را تایید کنید.
نتیجه
در این پست وبلاگ، یاد گرفتید که چگونه امنیت خط لوله داده خود را که در آمازون MWAA و Amazon EKS اجرا می شود، با محدود کردن مجوزهای هر کار جداگانه بهبود دهید.
برای غواصی عمیقتر، از مثال کاری ایجاد شده در این راهنما برای بررسی بیشتر موضوع استفاده کنید: چه اتفاقی میافتد اگر service_account_name
پارامتر از یک وظیفه جریان هوا؟ اگر نام حساب های سرویس را در این دو کار مبادله کنید چه اتفاقی می افتد؟
برای سادگی، در این راهنما از یک ساختار فایل مسطح با فایلهای Terraform و Python در یک فهرست واحد استفاده کردیم. ما به آن پایبند نبودیم ساختار ماژول استاندارد پیشنهاد شده توسط Terraform، که به طور کلی توصیه می شود. در یک پروژه واقعی، تقسیم پروژه به چندین پروژه یا ماژول Terraform نیز ممکن است انعطافپذیری، سرعت و استقلال را بین تیمهایی که بخشهای مختلف زیرساخت را دارند افزایش دهد.
در آخر، حتما مطالعه کنید داده های مربوط به EKS اسنادی که منابع ارزشمند دیگری را برای اجرای خط لوله داده شما در آمازون EKS و همچنین آمازون MWAA و جریان هوای آپاچی اسنادی برای اجرای موارد استفاده خودتان. به طور خاص، به این نگاه کنید اجرای نمونه یک ماژول Terraform برای Amazon MWAA و Amazon EKS، که شامل یک رویکرد بالغ تر برای پیکربندی Amazon EKS و مقیاس بندی خودکار گره و همچنین شبکه است.
اگر سوالی دارید، می توانید یک تاپیک جدید در آن راه اندازی کنید AWS re: Post یا رسیدن به پشتیبانی AWS.
درباره نویسنده
اولریش هینزه یک معمار راه حل در AWS است. او با شرکت های نرم افزاری برای معماری و پیاده سازی راه حل های مبتنی بر ابر در AWS همکاری می کند. قبل از پیوستن به AWS، او بیش از 8 سال برای مشتریان و شرکای AWS در نقشهای مهندسی نرمافزار، مشاوره و معماری کار میکرد.
پاتریک اوبرهر یک مهندس داده کارکنان در Contentful با بیش از 4 سال کار با AWS و بیش از 10 سال در زمینه داده است. در Contentful او مسئول زیرساخت و عملیات پشته داده است که در AWS میزبانی می شود.
یوهانس گونتر یک مشاور ابر و داده در Netlight با بیش از 5 سال کار با AWS است. او به مشتریان در صنایع مختلف در طراحی پلتفرم های ابری پایدار کمک کرده است و دارای گواهینامه AWS است.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: 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
- موارد
- مهندسان
- تغییر
- تبادل
- انتخاب
- را انتخاب کنید
- کلیک
- مشتریان
- ابر
- خوشه
- رمز
- ستون
- ترکیب
- انجمن
- شرکت
- کامل
- پیچیده
- پیچیدگی
- اجزاء
- محاسبه
- محرمانه بودن
- پیکر بندی
- کنسول
- مشاور
- مشاوره
- شامل
- شامل
- محتوا
- پلت فرم محتوا
- گوشه
- اصلاح
- هزینه
- ایجاد
- ایجاد شده
- ایجاد
- جاری
- مشتری
- تجربه مشتری
- مشتریان
- DAG
- داده ها
- مهندس داده
- بستر داده
- پردازش داده ها
- زمان قرار
- مصمم
- تصمیم گیری
- عمیق تر
- تعريف كردن
- مشخص
- تعریف می کند
- تعریف کردن
- وابستگی
- وابستگی
- بستگی دارد
- گسترش
- مستقر
- استقرار
- گسترش
- شرح
- طراحی
- مقصد
- نابود شده
- گفتگو
- DID
- مختلف
- جهت دار
- شیرجه رفتن
- مختلف
- do
- کارگر بارانداز
- مستندات
- دانلود
- رسم
- هر
- سهولت
- از دست
- تلاش
- خالی
- را قادر می سازد
- مشغول
- مهندس
- مهندسی
- حصول اطمینان از
- ورود
- محیط
- ضروری است
- اتر (ETH)
- کاملا
- مثال
- تبادل
- اجرا کردن
- اجرا شده
- اعدام
- تجربه
- اکتشاف
- ضمیمهها
- غلط
- رشته
- پرونده
- فایل ها
- نام خانوادگی
- صاف
- انعطاف پذیری
- انعطاف پذیر
- به دنبال
- پیروی
- برای
- از جانب
- تابع
- بیشتر
- جمع آوری
- عموما
- دریافت کنید
- GitHub
- دادن
- گراف
- گروه
- گروه ها
- مهمان
- وبلاگ مهمان
- دستگیره
- اتفاق می افتد
- آیا
- he
- کمک
- کمک کرد
- بالاتر
- میزبان
- میزبانی
- چگونه
- چگونه
- HTML
- HTTPS
- IAM
- هویت
- if
- انجام
- اجرای
- واردات
- واردات
- بهبود
- in
- شامل
- شامل
- از جمله
- افزایش
- استقلال
- فرد
- لوازم
- شالوده
- داخل
- بینش
- در عوض
- تمامیت
- اثر متقابل
- رابط
- به
- موضوع
- صدور
- IT
- ITS
- خود
- کار
- شغل ها
- پیوستن
- سفر
- JPG
- json
- کلید
- نوع
- دانستن
- دانش
- کوبرنیتس
- بعد
- آخرین
- آموخته
- کمترین
- پسندیدن
- فهرست
- فهرست
- لیست
- بار
- محلی
- سیستم وارد
- نگاه کنيد
- نگهداری
- ساخت
- باعث می شود
- مدیریت
- اداره می شود
- مدیر
- بالغ
- ممکن است..
- پیام
- متاداده
- حد اقل
- دقیقه
- واحد
- ماژول ها
- بیش
- بسیار
- چندگانه
- نام
- تحت عنوان
- نام
- هدایت
- لازم
- نیاز
- نیازهای
- شبکه
- شبکه
- جدید
- گره
- توجه داشته باشید
- اکنون
- هدف
- اشیاء
- of
- on
- ONE
- فقط
- منبع باز
- عمل
- عملیات
- اپراتور
- گزینه
- or
- کدام سازمان ها
- دیگر
- ما
- خارج
- تولید
- خود
- بسته
- پارامتر
- شریک
- شبکه شریک
- شرکای
- بخش
- وصله
- مسیر
- پاتریک
- مجوز
- خط لوله
- سکو
- سیستم عامل
- افلاطون
- هوش داده افلاطون
- PlatoData
- بازی
- غلاف
- سیاست
- تصویر
- پست
- در درجه اول
- خصوصی
- در حال پردازش
- محصول
- مشخصات
- پروژه
- پروژه ها
- پیشنهاد شده
- ارائه دهنده
- ارائه دهندگان
- فراهم می کند
- پــایتــون
- سوالات
- RE
- رسیدن به
- گرفتن
- تازه
- توصیه می شود
- كاهش دادن
- منطقه
- برداشتن
- مورد نیاز
- منابع
- بهره برداری از منابع
- منابع
- مسئولیت
- مسئوليت
- نتیجه
- نتایج
- تنومند
- نقش
- نقش
- قانون
- دویدن
- در حال اجرا
- اجرا می شود
- SAAS
- همان
- ذخیره
- مقیاس
- مقیاس گذاری
- صحنه های
- برنامه
- برنامه ریزی
- زمان بندی
- خراش
- دوم
- امن
- تیم امنیت لاتاری
- دیدن
- سلسله
- سرویس
- خدمات
- تنظیم
- محیط
- سهام
- اشتراک
- باید
- نشان داده شده
- نشان می دهد
- سادگی
- ساده کردن
- تنها
- محیط واحد
- اندازه
- کوچک
- نرم افزار
- مهندسی نرم افزار
- مزایا
- منبع
- منابع
- خاص
- به طور خاص
- سرعت
- پشته
- کارکنان
- شروع
- آغاز شده
- راه افتادن
- شروع می شود
- بیانیه
- هنوز
- ذخیره سازی
- گزینه های ذخیره سازی
- پرده
- ساختار
- مهاجرت تحصیلی
- موضوع
- موفقیت
- موفق
- مطمئن
- قابل تحمل
- روشن
- نماد
- سیستم های
- گرفتن
- صورت گرفته
- طول می کشد
- هدف
- کار
- وظایف
- تیم
- تیم ها
- می گوید
- قالب
- Terraform
- متن
- که
- La
- منبع
- شان
- سپس
- اینها
- آنها
- این
- از طریق
- به
- رمز
- ابزار
- ابزار
- بالا
- موضوع
- دگرگونی
- ماشه
- درست
- دو
- نوع
- اساسی
- بروزرسانی
- بر
- استفاده کنید
- استفاده
- کاربر
- رابط کاربری
- استفاده
- با استفاده از
- ارزشمند
- ارزش
- متغیر
- مختلف
- نسخه
- مرتعش
- مجازی
- راه رفتن
- خرید
- بود
- we
- وب
- خدمات وب
- خوب
- چی
- چه زمانی
- که
- تمام
- که
- چرا
- بطور گسترده
- اراده
- با
- مشغول به کار
- گردش کار
- گردش کار
- کارگر
- سال
- شما
- شما
- زفیرنت