See on külaliste ajaveebi postitus, mis on kirjutatud koos Patrick Oberherriga Contentfulist ja Johannes Güntheriga Netlight Consultingist.
See ajaveebi postitus näitab, kuidas parandada andmejuhtmete arhitektuuri turvalisust Amazoni hallatavad töövood Apache Airflow jaoks (Amazon MWAA) ja Amazon Elastic Kubernetes Service (Amazon EKS) seadistades peeneteralised õigused, kasutades HashiCorp Terraform infrastruktuuri jaoks koodina.
Paljud AWS-i kliendid kasutavad oma andmekoormuse täitmiseks Amazon EKS-i. Amazon EKS-i eeliste hulka kuuluvad erinevad arvutus- ja salvestusvõimalused sõltuvalt töökoormuse vajadustest, suurem ressursikasutus aluseks oleva infrastruktuuri jagamise kaudu ja elav avatud lähtekoodiga kogukond, mis pakub eesmärgipäraseid laiendusi. The Andmed EKS-i kohta projekt pakub hulga malle ja muid ressursse, mis aitavad klientidel seda teekonda alustada. See sisaldab kasutamise kirjeldust Amazon MWAA töö planeerijana.
Sisukas on AWS-i klient ja AWS-i partnervõrgustiku (APN) partner. Oma tarkvara teenusena teenusena (SaaS) toote, sisulise koostatava sisu platvormi, kulisside taga kasutab Contentful andmete põhjal saadud teadmisi äriotsuste tegemise ja kliendikogemuse parandamiseks. Rahulolev kihlatud Netlight, APN-i konsultatsioonipartner, et aidata luua andmeplatvormi nende teadmiste kogumiseks.
Enamik Contentfuli rakenduste töökoormust töötab Amazon EKS-is ning teadmised sellest teenusest ja Kubernetesest on organisatsioonis laialt levinud. Seetõttu otsustas Contentfuli andmetehnika meeskond käivitada andmekonveierid ka Amazon EKS-is. Töö jaoks planeerimine, alustasid nad Amazon EKS-klastris ise töötava Apache Airflow'ga ja hiljem läksid Amazon MWAA-le, et vähendada projekteerimis- ja toimimiskulusid. Töö täitmine jäi Amazon EKS-i.
Contentful käitab seda infrastruktuuri kasutades keerulist andmekanalit, mis hõlmab mitmest andmeallikast allaneelamist ja erinevaid teisendustöid, näiteks kasutades dbt. Kogu torujuhe jagab ühte Amazoni MWAA keskkonda ja üht Amazoni EKS-klastrit. Kui ühes keskkonnas on mitmekesine töökoormus, on vaja rakendada vähima privileegi põhimõte, tagades, et üksikutel ülesannetel või komponentidel on ainult need konkreetsed õigused, mida nad toimimiseks vajavad.
Segmenteerides õigused vastavalt rollidele ja kohustustele, suutis Contentfuli andmeinseneride meeskond luua töökindlama ja turvalisema andmetöötluskeskkonna, mis on oluline töödeldavate andmete terviklikkuse ja konfidentsiaalsuse säilitamiseks.
Selles ajaveebi postituses käsitleme infrastruktuuri nullist seadistamist ja näidisrakenduse juurutamist, kasutades Terraformi, Contentfuli infrastruktuuri jaoks koodina valitud tööriista.
Eeldused
Selle ajaveebipostituse jälgimiseks peab teil olema installitud järgmiste tööriistade uusim versioon:
Ülevaade
Selles blogipostituses loote näidisrakenduse järgmise infrastruktuuriga:
Näidis Airflow töövoog loetleb lähtesalves olevad objektid, salvestab selle loendi ajutiselt kasutades Airflow XComsja kirjutab loendi failina sihtkoha ämbrisse. Seda rakendust käivitatakse Amazon EKS-i kaustade abil, mis on kavandatud Amazon MWAA keskkonnas. Juurutate EKS-klastri ja MWAA-keskkonna a virtuaalne privaatpilv (VPC) ja rakendage EKS-i kaustadele vähimate privileegide õigusi Teenusekontode IAM-rollid. Amazon MWAA konfiguratsioonisalv sisaldab käitusaja nõudeid ja rakenduse koodi, mis määrab Õhuvoolu suunatud atsükliline graafik (DAG).
Käivitage projekt ja looge ämbrid
Looge fail main.tf
järgmise sisuga tühjas kataloogis:
See fail määratleb Terraform AWS-i pakkuja samuti lähte- ja sihtsalv, mille nimed eksporditakse kui AWS Systems Manageri parameetrid. Samuti käsib see Terraformil üles laadida tühi objekt nimega dummy.txt
allika ämbrisse, mis võimaldab hiljem loodaval Airflow näidisrakendusel saada ämbri sisu loetlemisel tulemus.
Initsialiseerige Terraformi projekt ja laadige alla mooduli sõltuvused, andes välja järgmise käsu:
Looge infrastruktuur:
Terraform palub teil tunnistada keskkonnas tehtud muudatusi ja hakkab seejärel AWS-is ressursse juurutama. Eduka juurutamise korral peaksite nägema järgmist eduteadet.
Loo VPC
Loo uus fail vpc.tf
samas kataloogis kui main.tf
ja sisestage järgmine:
See fail määratleb VPC, virtuaalse võrgu, mis hiljem majutab Amazon EKS klastrit ja Amazon MWAA keskkonda. Pange tähele, et me kasutame an olemasolevate Terraform moodul selle jaoks, mis ümbritseb aluseks olevate võrguressursside konfiguratsiooni nagu alamvõrgud, marsruudi tabelidja NAT-lüüsid.
Laadige alla VPC moodul:
Kasutage uusi ressursse:
Pange tähele, milliseid ressursse luuakse. Kasutades VPC moodulit meie Terraformi failis, eemaldatakse meie infrastruktuuri määratlemisel suur osa keerukusest, kuid siiski on kasulik teada, mida täpselt juurutatakse.
Pange tähele, et Terraform tegeleb nüüd mõlemas failis määratletud ressurssidega, main.tf
ja vpc.tf
, sest Terraform sisaldab kõike .tf
failid praeguses töökataloogis.
Looge Amazon MWAA keskkond
Loo uus fail mwaa.tf
ja sisestage järgmine sisu:
Nagu varemgi, kasutame me an olemasolev moodul et säästa Amazon MWAA keskkonna konfigureerimistööd. Moodul loob ka konfiguratsioonikobara, mida me kasutame määramiseks rakenduse käitusaegne sõltuvus (apache-airflow-cncf-kubernetes) aastal requirements.txt
faili. See pakett koos eelinstallitud paketiga apache-airflow-amazon, võimaldab suhelda Amazon EKS-iga.
Laadige alla MWAA moodul:
Kasutage uusi ressursse:
Selle toimingu sooritamiseks kulub 20–30 minutit.
Looge Amazon EKS-klaster
Looge fail eks.tf
koos järgmise sisuga:
Klastri enda loomiseks kasutame ära Amazon EKS-i joonised Terraformi jaoks projekt. Määratleme ka hallatava sõlmerühma, mille sihtsuurus on üks sõlm. Pange tähele, et kõikuva koormuse korral skaleerige oma klastrit Puusepp ülaltoodud hallatud sõlmerühma lähenemisviisi asemel muudab klastri skaala paindlikumaks. Kasutasime hallatud sõlmerühmi peamiselt konfigureerimise lihtsuse tõttu.
Me määratleme identiteedi, mis Amazon MWAA täitmise roll eeldab Kubernetesis kasutades map_roles
muutuv. Pärast konfigureerimist Terraform Kubernetes pakkuja, anname Amazoni MWAA täitmisrolli load klastris olevate kaustade haldamiseks.
Laadige alla moodul EKS Blueprints for Terraform:
Kasutage uusi ressursse:
Selle toimingu sooritamiseks kulub umbes 12 minutit.
Looge teenusekontode jaoks IAM-rollid
Looge fail roles.tf
koos järgmise sisuga:
See fail määratleb kaks Kubernetese teenusekontot, source-bucket-reader-sa
ja destination-bucket-writer-sa
ja nende õigused AWS API vastu, kasutades teenusekontode IAM-rolle (IRSA). Jällegi kasutame IRSA konfiguratsiooni lihtsustamiseks projekti Amazon EKS Blueprints for Terraform moodulit. Pange tähele, et mõlemad rollid saavad ainult minimaalsed õigused, mida nad vajavad ja mis on määratletud kasutades AWS IAM-i eeskirjad.
Laadige alla uus moodul:
Kasutage uusi ressursse:
Looge DAG
Looge fail dag.py
õhuvoolu DAG määratlemine:
DAG on määratletud töötama tunniplaani alusel, kahe ülesandega read_bucket
teeninduskontoga source-bucket-reader-sa
ja write_bucket
teeninduskontoga destination-bucket-writer-sa
, jooksevad üksteise järel. Mõlemat käivitatakse kasutades EksPodOperator, mis vastutab Amazon EKS-i ülesannete ajastamise eest, kasutades AWS CLI Dockeri pilt käskude käivitamiseks. Esimene ülesanne loetleb lähtesalves olevad failid ja kirjutab loendi Airflow XComi. Teine ülesanne loeb loendi XComist ja salvestab selle sihtkoha ämbrisse. Pange tähele, et service_account_name
parameeter eristab, mida igal ülesandel on lubatud teha.
Looge fail dag.tf
DAG-koodi üleslaadimiseks Amazon MWAA konfiguratsiooniämbrisse:
Rakendage muudatused:
Amazon MWAA keskkond impordib faili automaatselt S3 ämbrist.
Käivitage DAG
Liikuge oma brauseris lehele Amazon MWAA konsool ja valige oma keskkond. Valige paremas ülanurgas Avage Airflow kasutajaliides . Peaksite nägema järgmist.
DAG-i käivitamiseks avage Meetmete veerus, valige esitussümbol ja seejärel valige Käivitage DAG. Klõpsake DAG-i nimel, et uurida DAG-i käitamist ja selle tulemusi.
Liikuge Amazon S3 konsool ja valige ämber, mis algab sõnaga "sihtkoht". See peaks sisaldama faili list.json
hiljuti loodud write_bucket
ülesanne. Laadige fail alla selle sisu uurimiseks, ühe kirjega JSON-loend.
Koristage
Selles juhendis loodud ressursid põhjustavad AWS-i kulusid. Loodud ressursside kustutamiseks andke järgmine käsk:
Ja kinnitage muudatused Terraformi CLI dialoogiaknas.
Järeldus
Sellest ajaveebipostitusest õppisite, kuidas parandada oma Amazon MWAA ja Amazon EKS-is töötava andmekanali turvalisust, kitsendades iga üksiku ülesande õigusi.
Sügavamale sukeldumiseks kasutage selles juhendis loodud töönäidet, et teemat edasi uurida: Mis juhtub, kui eemaldate service_account_name
parameeter õhuvoolu ülesandest? Mis juhtub, kui vahetate teenusekonto nimed kahes ülesandes?
Lihtsuse huvides kasutasime selles juhendis lamedat failistruktuuri Terraformi ja Pythoni failidega ühes kataloogis. Me ei pidanud kinni standardne mooduli struktuur pakutud välja Terraform, mida üldiselt soovitatakse. Reaalses projektis võib projekti jagamine mitmeks Terraformi projektiks või mooduliks suurendada paindlikkust, kiirust ja sõltumatust erinevate infrastruktuuri osade omanike vahel.
Lõpuks uurige kindlasti Andmed EKS-i kohta dokumentatsiooni, mis pakub muid väärtuslikke ressursse teie andmekanali käitamiseks Amazon EKS-is, samuti Amazon MWAA ja Apache õhuvool dokumentatsioon enda kasutusjuhtude juurutamiseks. Täpsemalt, vaadake seda näidis rakendamine Terraformi moodul Amazon MWAA ja Amazon EKS jaoks, mis sisaldab küpsemat lähenemist Amazon EKS-i konfigureerimisele ja sõlmede automaatsele skaleerimisele ning võrgu loomisele.
Kui teil on küsimusi, võite alustada uue lõimega AWS re:Postitus või siruta käsi AWS-i tugi.
Autoritest
Ulrich Hinze on AWS-i lahenduste arhitekt. Ta teeb koostööd tarkvaraettevõtetega, et kavandada ja rakendada AWS-is pilvepõhiseid lahendusi. Enne AWS-iga liitumist töötas ta 8+ aastat AWS-i klientide ja partnerite juures tarkvaratehnika, nõustamise ja arhitektuuri alal.
Patrick Oberherr on personali andmeinsener ettevõttes Contentful, kes on töötanud AWS-iga 4+ aastat ja andmevaldkonnas 10+ aastat. Ettevõttes Contentful vastutab ta AWS-is hostitava andmevirna infrastruktuuri ja toimingute eest.
Johannes Günther on Netlighti pilve- ja andmekonsultant, kes on töötanud AWS-iga üle 5 aasta. Ta on aidanud kliente erinevates tööstusharudes jätkusuutlike pilveplatvormide kujundamisel ja tal on AWS-sertifikaat.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- PlatoTervis. Biotehnoloogia ja kliiniliste uuringute luureandmed. Juurdepääs siia.
- Allikas: https://aws.amazon.com/blogs/big-data/set-up-fine-grained-permissions-for-your-data-pipeline-using-mwaa-and-eks/
- :on
- :on
- :mitte
- $ UP
- 1
- 10
- 100
- 12
- 16
- 2023
- 27
- 41
- 8
- 9
- a
- Võimalik
- MEIST
- üle
- Vastavalt
- konto
- Kontod
- kinnitada
- üle
- meetmete
- atsükliline
- lisatud
- kinni pidama
- ADEelis
- eelised
- pärast
- jälle
- vastu
- Materjal: BPA ja flataatide vaba plastik
- mööda
- Ka
- Amazon
- Amazon Web Services
- an
- ja
- Teine
- mistahes
- Apache
- API
- taotlus
- kehtima
- lähenemine
- heaks kiitma
- arhitektuur
- OLEME
- AS
- oletab
- At
- luba
- Automaatne
- automaatselt
- saadaval
- ära
- AWS
- AWS sertifitseeritud
- AWS-i klient
- põhineb
- sest
- enne
- taga
- kaamerate taga
- on
- vahel
- Blogi
- mõlemad
- brauseri
- äri
- kuid
- by
- CAN
- juhtudel
- atesteeritud
- muutunud
- Vaidluste lahendamine
- valik
- Vali
- klõps
- kliendid
- Cloud
- Cluster
- kood
- Veerg
- kombinatsioon
- kogukond
- Ettevõtted
- täitma
- keeruline
- keerukus
- komponendid
- Arvutama
- konfidentsiaalsus
- konfiguratsioon
- konsool
- konsultant
- nõustamine
- sisaldama
- sisaldab
- sisu
- sisuplatvorm
- Nurk
- parandada
- kulud
- looma
- loodud
- loob
- Praegune
- klient
- Kliendi kogemus
- Kliendid
- DAG
- andmed
- andmeinsener
- Andmeplatvorm
- andmetöötlus
- kuupäev Kellaaeg
- otsustatud
- Otsuse tegemine
- sügavam
- määratlema
- määratletud
- Määratleb
- määratlemisel
- sõltuvused
- Sõltuvus
- Olenevalt
- juurutada
- lähetatud
- juurutamine
- kasutuselevõtu
- kirjeldus
- projekteerimine
- sihtkoht
- hävitatud
- Dialoog
- DID
- erinev
- suunatud
- sukelduma
- mitu
- do
- laevalaadija
- dokumentatsioon
- lae alla
- joonistus
- iga
- leevendada
- miss
- jõupingutusi
- tühi
- võimaldab
- hõivatud
- insener
- Inseneriteadus
- tagades
- kanne
- keskkond
- oluline
- Eeter (ETH)
- täpselt
- näide
- vahetamine
- täitma
- täidetud
- täitmine
- kogemus
- uurima
- laiendused
- vale
- väli
- fail
- Faile
- esimene
- flat
- Paindlikkus
- paindlikult
- järgima
- Järel
- eest
- Alates
- funktsioon
- edasi
- koguma
- üldiselt
- saama
- GitHub
- Andma
- graafik
- Grupp
- Grupi omad
- külaline
- Külaliste blogi
- Varred
- juhtub
- Olema
- he
- aitama
- aitas
- rohkem
- võõrustaja
- võõrustas
- Kuidas
- Kuidas
- HTML
- HTTPS
- IAM
- Identity
- if
- rakendada
- rakendamisel
- import
- impordi
- parandama
- in
- sisaldama
- hõlmab
- Kaasa arvatud
- Suurendama
- sõltumatus
- eraldi
- tööstusharudes
- Infrastruktuur
- sees
- teadmisi
- selle asemel
- terviklikkuse
- suhtlemist
- Interface
- sisse
- probleem
- väljaandmine
- IT
- ITS
- ise
- töö
- Tööturg
- liitumine
- teekond
- jpg
- Json
- Võti
- Laps
- Teadma
- teadmised
- Kubernetes
- pärast
- hiljemalt
- õppinud
- kõige vähem
- nagu
- nimekiri
- loetelu
- Nimekirjad
- koormus
- kohalik
- loginud
- Vaata
- säilitamine
- tegema
- TEEB
- juhtima
- juhitud
- juht
- küps
- mai..
- sõnum
- Metaandmed
- miinimum
- protokoll
- moodul
- Moodulid
- rohkem
- palju
- mitmekordne
- nimi
- Nimega
- nimed
- Navigate
- vajalik
- Vajadus
- vajadustele
- võrk
- võrgustike loomine
- Uus
- sõlme
- meeles
- nüüd
- objekt
- esemeid
- of
- on
- ONE
- ainult
- avatud lähtekoodiga
- töö
- Operations
- ettevõtjad
- Valikud
- or
- organisatsioon
- Muu
- meie
- välja
- väljund
- enda
- pakend
- parameeter
- partner
- partnervõrgustik
- partnerid
- osad
- Plaaster
- tee
- Patrick
- Õigused
- torujuhe
- inimesele
- Platvormid
- Platon
- Platoni andmete intelligentsus
- PlatoData
- mängima
- kaunad
- poliitika
- portree
- post
- eelkõige
- era-
- töötlemine
- Toode
- profiil
- projekt
- projektid
- pakutud
- tarnija
- pakkujad
- annab
- Python
- Küsimused
- RE
- jõudma
- saama
- hiljuti
- soovitatav
- vähendama
- piirkond
- kõrvaldama
- Nõuded
- ressurss
- ressursside kasutamine
- Vahendid
- kohustused
- vastutav
- kaasa
- Tulemused
- jõuline
- Roll
- rollid
- Eeskiri
- jooks
- jooksmine
- jookseb
- SaaS
- sama
- Säästa
- Skaala
- ketendamine
- stseenide
- ajakava
- plaanitud
- planeerimine
- kriimustada
- Teine
- kindlustama
- turvalisus
- vaata
- Seeria
- teenus
- Teenused
- komplekt
- kehtestamine
- Aktsiad
- jagamine
- peaks
- näidatud
- Näitused
- lihtsus
- lihtsustama
- ühekordne
- ühtne keskkond
- SUURUS
- väike
- tarkvara
- tarkvaraarendus
- Lahendused
- allikas
- Allikad
- konkreetse
- eriti
- kiirus
- Kestab
- Personal
- algus
- alustatud
- Käivitus
- algab
- väljavõte
- Veel
- ladustamine
- salvestusvõimalused
- kauplustes
- struktuur
- Uuring
- teema
- edu
- edukas
- kindel
- jätkusuutlik
- vahetatud
- sümbol
- süsteemid
- Võtma
- võtnud
- võtab
- sihtmärk
- Ülesanne
- ülesanded
- meeskond
- meeskonnad
- ütleb
- malle
- Terraform
- tekst
- et
- .
- Allikas
- oma
- SIIS
- Need
- nad
- see
- Läbi
- et
- sümboolne
- tööriist
- töövahendid
- ülemine
- teema
- Transformation
- vallandada
- tõsi
- kaks
- tüüp
- aluseks
- Värskendused
- peale
- kasutama
- Kasutatud
- Kasutaja
- Kasutajaliides
- kasutusalad
- kasutamine
- väärtuslik
- väärtus
- muutuja
- eri
- versioon
- elav
- virtuaalne
- kõndima
- läbikäiguks
- oli
- we
- web
- veebiteenused
- Hästi
- M
- millal
- mis
- kogu
- kelle
- miks
- laialt levinud
- will
- koos
- töötas
- töövoog
- Töövoogud
- töö
- aastat
- sa
- Sinu
- sephyrnet