Ez egy vendégblogbejegyzés, amelyet Patrick Oberherrrel (Contentful) és Johannes Güntherrel (Netlight Consulting) írt közösen.
Ez a blogbejegyzés bemutatja, hogyan lehet javítani a biztonságot egy adatfolyam-architektúra alapján Amazon menedzselt munkafolyamatok az Apache Airflow-hoz (Amazon MWAA) és a Amazon Elastic Kubernetes Service (Amazon EKS) finomszemcsés engedélyek beállításával, használatával HashiCorp Terraform infrastruktúrához kódként.
Sok AWS-ügyfél az Amazon EKS-t használja adatterhelésének végrehajtásához. Az Amazon EKS előnyei között szerepel a munkaterhelési igényektől függően különböző számítási és tárolási lehetőségek, a mögöttes infrastruktúra megosztása révén magasabb erőforrás-kihasználás, valamint egy élénk nyílt forráskódú közösség, amely célirányosan épített bővítményeket biztosít. A Adatok az EKS-ről A projekt egy sor sablont és egyéb erőforrást kínál, amelyek segítenek az ügyfeleknek elindulni ezen az úton. Tartalmazza a használat leírását Az Amazon MWAA munkaütemezőként.
Tartalmas az AWS ügyfél és az AWS Partner Network (APN) partnere. A Software-as-a-Service (SaaS) termékük, a Contentful Composable Content Platform színfalai mögött a Contentful az adatokból származó betekintést használja fel az üzleti döntéshozatal és az ügyfélélmény javítására. Elégedett jegyes Netlight, egy APN tanácsadó partner, hogy segítsen létrehozni egy adatplatformot, amely összegyűjti ezeket a betekintést.
A Contentful alkalmazási terheléseinek nagy része Amazon EKS-en fut, és ennek a szolgáltatásnak és a Kubernetesnek az ismerete széles körben elterjedt a szervezetben. Ezért döntött úgy a Contentful adatmérnöki csapata, hogy az Amazon EKS-en is futtatnak adatfolyamokat. Munkáért ütemezés, saját működtetésű Apache Airflow-val kezdték az Amazon EKS-fürtön, majd később az Amazon MWAA-ra váltottak, hogy csökkentsék a tervezési és üzemeltetési költségeket. A munka végrehajtás az Amazon EKS-en maradt.
A Contentful komplex adatfolyamot futtat az infrastruktúra használatával, beleértve a több adatforrásból történő feldolgozást és a különböző átalakítási feladatokat, például ctef. Az egész folyamat egyetlen Amazon MWAA-környezeten és egyetlen Amazon EKS-fürtön osztozik. Egyetlen környezetben sokféle munkaterhelés esetén alkalmazni kell a legkevesebb kiváltság elve, biztosítva, hogy az egyes feladatok vagy összetevők csak a működésükhöz szükséges meghatározott engedélyekkel rendelkezzenek.
Az engedélyek szerepek és felelősségek szerinti szegmentálásával a Contentful adatmérnöki csapata robusztusabb és biztonságosabb adatfeldolgozási környezetet tudott létrehozni, ami elengedhetetlen a kezelt adatok integritásának és bizalmasságának megőrzéséhez.
Ebben a blogbejegyzésben végigvezetjük az infrastruktúra alapoktól történő beállítását és egy példaalkalmazás telepítését a Terraform, a Contentful által választott infrastruktúra-eszköz kódként.
Előfeltételek
A blogbejegyzés követéséhez telepítenie kell a következő eszközök legújabb verzióját:
Áttekintés
Ebben a blogbejegyzésben egy minta alkalmazást fog létrehozni a következő infrastruktúrával:
A minta Airflow munkafolyamat a forrástárolóban lévő objektumokat listázza, és ideiglenesen tárolja ezt a listát Airflow XComs, és a listát fájlként írja a célzónába. Ez az alkalmazás Amazon EKS podokkal fut, az Amazon MWAA környezet által ütemezett. Telepíti az EKS-fürtöt és az MWAA-környezetet a virtuális privát felhő (VPC) és a legkevesebb jogosultságokat alkalmazza az EKS podokra IAM-szerepek szolgáltatásfiókokhoz. Az Amazon MWAA konfigurációs csoportja futásidejű követelményeket tartalmaz, valamint az alkalmazáskódot, amely meghatározza a Légáramlás-irányított aciklikus grafikon (DAG).
Inicializálja a projektet, és hozzon létre vödröket
Hozzon létre egy fájlt main.tf
a következő tartalommal egy üres könyvtárban:
Ez a fájl határozza meg a Terraform AWS szolgáltató valamint a forrás- és célzónát, amelyek nevét a program a következőként exportálja Az AWS Systems Manager paraméterei. Azt is utasítja a Terraformnak, hogy töltsön fel egy üres objektumot dummy.txt
a forrástárolóba, ami lehetővé teszi, hogy a később létrehozandó Airflow mintaalkalmazás eredményt kapjon a vödör tartalmának listázásakor.
Inicializálja a Terraform projektet, és töltse le a modulfüggőségeket a következő parancs kiadásával:
Az infrastruktúra létrehozása:
A Terraform felkéri, hogy nyugtázza a környezet változásait, majd megkezdi az erőforrások telepítését az AWS-ben. Sikeres üzembe helyezés után a következő sikerüzenetet kell látnia:
VPC létrehozása
Hozzon létre egy új fájlt vpc.tf
ugyanabban a könyvtárban, mint main.tf
és illessze be a következőt:
Ez a fájl határozza meg a VPC-t, egy virtuális hálózatot, amely később az Amazon EKS-fürtöt és az Amazon MWAA környezetet fogja tárolni. Vegyük észre, hogy an létező Terraform modul ehhez, amely becsomagolja a mögöttes hálózati erőforrások konfigurációját, mint pl alhálózatok, útvonal táblázatokés NAT átjárók.
Töltse le a VPC modult:
Telepítse az új erőforrásokat:
Jegyezze fel, mely erőforrások jönnek létre. A Terraform fájlunkban található VPC modul használatával a mögöttes bonyolultság nagy része megszűnik az infrastruktúra meghatározásakor, de továbbra is hasznos tudni, hogy pontosan mit is telepítünk.
Vegye figyelembe, hogy a Terraform mostantól kezeli az általunk meghatározott erőforrásokat mindkét fájlban, main.tf
és a vpc.tf
, mert a Terraform mindent magában foglal .tf
fájlok az aktuális munkakönyvtárban.
Hozd létre az Amazon MWAA környezetet
Hozzon létre egy új fájlt mwaa.tf
és illessze be a következő tartalmat:
Mint korábban, mi is használunk egy meglévő modul hogy megtakarítsa a konfigurációs erőfeszítést az Amazon MWAA környezet számára. A modul létrehozza a konfigurációs tárolót is, amellyel megadjuk a az alkalmazás futásidejű függősége (apache-airflow-cncf-kubernetes) ban,-ben requirements.txt
fájlt. Ez a csomag az előre telepített csomaggal kombinálva apache-airflow-amazon, lehetővé teszi az Amazon EKS-sel való interakciót.
Töltse le az MWAA modult:
Telepítse az új erőforrásokat:
Ez a művelet 20-30 percet vesz igénybe.
Hozd létre az Amazon EKS-fürtöt
Hozzon létre egy fájlt eks.tf
a következő tartalommal:
Magának a fürtnek a létrehozásához kihasználjuk a Amazon EKS tervrajzok a Terraformhoz projekt. Meghatározunk egy felügyelt csomópontcsoportot is, amelynek célmérete egy csomópont. Vegye figyelembe, hogy ingadozó terhelés esetén a fürt méretezése a következővel: Ács a fent bemutatott menedzselt csomópontcsoportos megközelítés helyett rugalmasabbá teszi a fürtskálázást. Felügyelt csomópontcsoportokat használtunk elsősorban a könnyű konfigurálás miatt.
Meghatározzuk azt az identitást, amelyet a Amazon MWAA végrehajtói szerepkör feltételezi a Kubernetesben a map_roles
változó. A konfigurálás után a Terraform Kubernetes szolgáltató, az Amazon MWAA végrehajtási szerepkörének engedélyeket adunk a fürtben lévő podok kezeléséhez.
Töltse le az EKS Blueprints for Terraform modult:
Telepítse az új erőforrásokat:
Ez a művelet körülbelül 12 percet vesz igénybe.
Hozzon létre IAM-szerepeket a szolgáltatásfiókokhoz
Hozzon létre egy fájlt roles.tf
a következő tartalommal:
Ez a fájl két Kubernetes szolgáltatásfiókot határoz meg, source-bucket-reader-sa
és a destination-bucket-writer-sa
, és az engedélyeiket az AWS API-val szemben, IAM-szerepköröket használva szolgáltatásfiókokhoz (IRSA). Ismét az Amazon EKS Blueprints for Terraform projekt modulját használjuk az IRSA-konfiguráció egyszerűsítésére. Vegye figyelembe, hogy mindkét szerepkör csak azokat a minimális engedélyeket kapja meg, amelyekre szüksége van AWS IAM-irányelvek.
Töltse le az új modult:
Telepítse az új erőforrásokat:
Hozd létre a DAG-t
Hozzon létre egy fájlt dag.py
az Airflow DAG meghatározása:
A DAG óránkénti ütemezés szerint működik, két feladattal read_bucket
szolgáltatási számlával source-bucket-reader-sa
és a write_bucket
szolgáltatási számlával destination-bucket-writer-sa
, futnak egymás után. Mindkettő a EksPodOperator, amely felelős a feladatok ütemezéséért az Amazon EKS-en, a AWS CLI Docker kép parancsok futtatásához. Az első feladat felsorolja a fájlokat a forrástárolóban, és beírja a listát az Airflow XComba. A második feladat beolvassa a listát az XCom-ból, és eltárolja a célterületen. Vegye figyelembe, hogy a service_account_name
paraméter megkülönbözteti, hogy az egyes feladatok mit végezhetnek.
Hozzon létre egy fájlt dag.tf
a DAG kód feltöltéséhez az Amazon MWAA konfigurációs tárolójába:
A változtatások telepítése:
Az Amazon MWAA környezet automatikusan importálja a fájlt az S3 vödörből.
Futtassa a DAG-ot
A böngészőben keresse meg a Amazon MWAA konzol és válassza ki a környezetét. A jobb felső sarokban válassza ki a lehetőséget Nyissa meg az Airflow felhasználói felületet . A következőket kell látnod:
A DAG indításához a Hozzászólások oszlopban válassza ki a lejátszási szimbólumot, majd válassza ki Trigger DAG. Kattintson a DAG nevére a DAG futtatás és eredményeinek felfedezéséhez.
Navigáljon a Amazon S3 konzol és válassza ki a „célhely”-vel kezdődő vödröt. Tartalmaznia kell egy fájlt list.json
nemrég hozta létre a write_bucket
feladat. Töltse le a fájlt a tartalmának felfedezéséhez, egy JSON-lista egyetlen bejegyzéssel.
Tisztítsuk meg
Az ebben a bemutatóban létrehozott erőforrások AWS-költségeket vonnak maguk után. A létrehozott erőforrások törléséhez adja ki a következő parancsot:
És hagyja jóvá a változtatásokat a Terraform CLI párbeszédablakban.
Következtetés
Ebben a blogbejegyzésben megtanulta, hogyan javíthatja az Amazon MWAA és Amazon EKS rendszeren futó adatfolyam biztonságát az egyes feladatok engedélyeinek szűkítésével.
Ha mélyebbre szeretne merülni, használja az ebben az áttekintésben létrehozott munkapéldát a téma további felfedezéséhez: Mi történik, ha eltávolítja a service_account_name
paraméter egy Airflow feladatból? Mi történik, ha felcseréli a szolgáltatásfiók nevét a két feladatban?
Az egyszerűség kedvéért ebben az áttekintésben egy lapos fájlstruktúrát használtunk Terraform és Python fájlokkal egyetlen könyvtárban. Nem tartottuk magunkat a szabványos modul felépítés a Terraform által javasolt, ami általában ajánlott. Egy valós projektben a projekt több Terraform projektre vagy modulra való felosztása növelheti a rugalmasságot, a sebességet és a függetlenséget az infrastruktúra különböző részeit birtokló csapatok között.
Végül feltétlenül tanulmányozza át a Adatok az EKS-ről dokumentációt, amely más értékes forrásokat biztosít az adatfolyam Amazon EKS-en való futtatásához, valamint a Amazon MWAA és a apache légáramlás dokumentáció a saját használati eseteinek megvalósításához. Konkrétan ezt nézd meg minta megvalósítás az Amazon MWAA és az Amazon EKS számára készült Terraform modul, amely kiforrottabb megközelítést tartalmaz az Amazon EKS konfigurációjához és a csomópontok automatikus skálázásához, valamint a hálózatépítéshez.
Ha bármilyen kérdése van, indíthat egy új témát AWS re:Hozzászólás vagy elérje AWS támogatás.
A szerzőkről
Ulrich Hinze az AWS megoldási építésze. Szoftvercégekkel együttműködve felhő alapú megoldásokat tervez és valósít meg az AWS-en. Mielőtt csatlakozott volna az AWS-hez, több mint 8 éven át az AWS-ügyfeleknek és -partnereknek dolgozott szoftvermérnöki, tanácsadói és építészeti feladatokban.
Patrick Oberherr a Contentful személyzeti adatmérnöke, több mint 4 éves AWS-szel és 10 év feletti adatszolgáltatással. A Contentfulnál ő felel az AWS-en tárolt adatverem infrastruktúrájáért és működéséért.
Johannes Günther felhő- és adattanácsadó a Netlightnál, több mint 5 évnyi AWS-szel. Különféle iparágakban segített ügyfeleinek fenntartható felhőplatformok tervezésében, és AWS-tanúsítvánnyal rendelkezik.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/big-data/set-up-fine-grained-permissions-for-your-data-pipeline-using-mwaa-and-eks/
- :van
- :is
- :nem
- $ UP
- 1
- 10
- 100
- 12
- 16
- 2023
- 27
- 41
- 8
- 9
- a
- Képes
- Rólunk
- felett
- Szerint
- Fiók
- Fiókok
- elismerni
- át
- cselekvések
- aciklikus
- hozzáadott
- tapad
- Előny
- előnyei
- Után
- újra
- ellen
- Minden termék
- mentén
- Is
- amazon
- Az Amazon Web Services
- an
- és a
- Másik
- bármilyen
- Apache
- api
- Alkalmazás
- alkalmaz
- megközelítés
- jóváhagy
- építészet
- VANNAK
- AS
- feltételezi
- At
- meghatalmazás
- Automatikus
- automatikusan
- elérhető
- el
- AWS
- AWS tanúsítvánnyal rendelkezik
- AWS Ügyfél
- alapján
- mert
- előtt
- mögött
- a színfalak mögött
- hogy
- között
- Blog
- mindkét
- böngésző
- üzleti
- de
- by
- TUD
- esetek
- Vizsgázott
- megváltozott
- Változások
- választás
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- kettyenés
- ügyfél részére
- felhő
- Fürt
- kód
- Oszlop
- kombináció
- közösség
- Companies
- teljes
- bonyolult
- bonyolultság
- alkatrészek
- Kiszámít
- titoktartási
- Configuration
- Konzol
- szaktanácsadó
- tanácsadó
- tartalmaz
- tartalmaz
- tartalom
- tartalom platform
- Sarok
- kijavítására
- kiadások
- teremt
- készítette
- teremt
- Jelenlegi
- vevő
- Vásárlói élmény
- Ügyfelek
- DAG
- dátum
- adatmérnök
- Adatplatform
- adatfeldolgozás
- dátum idő
- határozott
- Döntéshozatal
- mélyebb
- meghatározott
- meghatározott
- Annak meghatározása,
- meghatározó
- függőségek
- Függőség
- attól
- telepíteni
- telepített
- bevezetéséhez
- bevetés
- leírás
- tervezés
- rendeltetési hely
- elpusztított
- Párbeszéd
- DID
- különböző
- irányított
- merülés
- számos
- do
- Dokkmunkás
- dokumentáció
- letöltés
- rajz
- minden
- könnyű
- visszhang
- erőfeszítés
- üres
- lehetővé teszi
- elkötelezett
- mérnök
- Mérnöki
- biztosítása
- belépés
- Környezet
- alapvető
- Eter (ETH)
- pontosan
- példa
- csere
- kivégez
- végrehajtott
- végrehajtás
- tapasztalat
- feltárása
- kiterjesztések
- hamis
- mező
- filé
- Fájlok
- vezetéknév
- lakás
- Rugalmasság
- rugalmasan
- következik
- következő
- A
- ból ből
- funkció
- további
- gyűjt
- általában
- kap
- GitHub
- Ad
- grafikon
- Csoport
- Csoportok
- Vendég
- Vendégblog
- Fogantyúk
- megtörténik
- Legyen
- he
- segít
- segített
- <p></p>
- vendéglátó
- házigazdája
- Hogyan
- How To
- HTML
- HTTPS
- IAM
- Identitás
- if
- végre
- végrehajtási
- importál
- behozatal
- javul
- in
- tartalmaz
- magában foglalja a
- Beleértve
- Növelje
- függetlenség
- egyéni
- iparágak
- Infrastruktúra
- belső
- meglátások
- helyette
- sértetlenség
- kölcsönhatás
- Felület
- bele
- kérdés
- kibocsátó
- IT
- ITS
- maga
- Munka
- Állások
- csatlakozott
- utazás
- jpg
- json
- Kulcs
- Kedves
- Ismer
- tudás
- Kubernetes
- a későbbiekben
- legutolsó
- tanult
- legkevésbé
- mint
- Lista
- felsorolás
- listák
- kiszámításának
- helyi
- bejelentkezve
- néz
- fenntartása
- csinál
- KÉSZÍT
- kezelése
- sikerült
- menedzser
- érett
- Lehet..
- üzenet
- Metaadatok
- minimum
- jegyzőkönyv
- modul
- Modulok
- több
- sok
- többszörös
- név
- Nevezett
- nevek
- Keresse
- elengedhetetlen
- Szükség
- igények
- hálózat
- hálózatba
- Új
- csomópont
- megjegyezni
- Most
- tárgy
- objektumok
- of
- on
- ONE
- csak
- nyílt forráskódú
- működés
- Művelet
- üzemeltetők
- Opciók
- or
- szervezet
- Más
- mi
- ki
- teljesítmény
- saját
- csomag
- paraméter
- partner
- partner hálózat
- partnerek
- alkatrészek
- Tapasz
- ösvény
- patrick
- engedélyek
- csővezeték
- emelvény
- Platformok
- Plató
- Platón adatintelligencia
- PlatoData
- játszani
- hüvely
- politika
- portré
- állás
- elsősorban
- magán
- feldolgozás
- Termékek
- profil
- program
- projektek
- javasolt
- ellátó
- szolgáltatók
- biztosít
- Piton
- Kérdések
- RE
- el
- kap
- nemrég
- ajánlott
- csökkenteni
- vidék
- eltávolítása
- követelmények
- forrás
- erőforrás-felhasználás
- Tudástár
- felelősség
- felelős
- eredményez
- Eredmények
- erős
- Szerep
- szerepek
- Szabály
- futás
- futás
- fut
- SaaS
- azonos
- Megtakarítás
- Skála
- skálázás
- jelenetek
- menetrend
- tervezett
- ütemezés
- kaparni
- Második
- biztonság
- biztonság
- lát
- Series of
- szolgáltatás
- Szolgáltatások
- készlet
- beállítás
- Megoszt
- megosztás
- kellene
- mutatott
- Műsorok
- egyszerűség
- egyszerűsítése
- egyetlen
- egységes környezet
- Méret
- kicsi
- szoftver
- szoftverfejlesztés
- Megoldások
- forrás
- Források
- különleges
- kifejezetten
- sebesség
- verem
- Személyzet
- kezdet
- kezdődött
- Kezdve
- kezdődik
- nyilatkozat
- Még mindig
- tárolás
- tárolási lehetőségek
- árnyékolók
- struktúra
- Tanulmány
- tárgy
- siker
- sikeres
- biztos
- fenntartható
- kapcsolva
- szimbólum
- Systems
- Vesz
- meghozott
- tart
- cél
- Feladat
- feladatok
- csapat
- csapat
- megmondja
- sablonok
- Terraform
- szöveg
- hogy
- A
- The Source
- azok
- akkor
- Ezek
- ők
- ezt
- Keresztül
- nak nek
- jelképes
- szerszám
- szerszámok
- felső
- téma
- Átalakítás
- kiváltó
- igaz
- kettő
- típus
- mögöttes
- Frissítések
- upon
- használ
- használt
- használó
- felhasználói felület
- használ
- segítségével
- Értékes
- érték
- változó
- különféle
- változat
- vibráló
- Tényleges
- séta
- végigjátszás
- volt
- we
- háló
- webes szolgáltatások
- JÓL
- Mit
- amikor
- ami
- egész
- akinek
- miért
- széles körben elterjedt
- lesz
- val vel
- dolgozott
- munkafolyamat
- munkafolyamatok
- dolgozó
- év
- te
- A te
- zephyrnet