Tämä on vierasblogiviesti, joka on kirjoitettu yhdessä Contentfulin Patrick Oberherrin ja Netlight Consultingin Johannes Güntherin kanssa.
Tämä blogikirjoitus näyttää, kuinka voit parantaa tietoputkiarkkitehtuurin turvallisuutta Amazonin hallinnoimat työnkulut Apache Airflowlle (Amazon MWAA) ja Amazon Elastic Kubernetes Service (Amazon EKS) määrittämällä tarkkoja käyttöoikeuksia käyttämällä HashiCorp Terraform infrastruktuuria varten koodina.
Monet AWS-asiakkaat käyttävät Amazon EKS:ää datatyökuormituksensa suorittamiseen. Amazon EKS:n etuja ovat erilaiset laskenta- ja tallennusvaihtoehdot työkuormitustarpeista riippuen, korkeampi resurssien käyttöaste jakamalla taustalla oleva infrastruktuuri ja vilkas avoimen lähdekoodin yhteisö, joka tarjoaa tarkoitukseen rakennettuja laajennuksia. The Tiedot EKS:stä projekti tarjoaa joukon malleja ja muita resursseja, jotka auttavat asiakkaita pääsemään alkuun tällä matkalla. Se sisältää kuvauksen käytöstä Amazon MWAA työnohjaajana.
Sisältöä on AWS-asiakas ja AWS-kumppaniverkoston (APN) kumppani. Software-as-a-Service (SaaS) -tuotteensa, Contentful Composable Content Platformin, kulissien takana Contentful käyttää tiedoista saatuja oivalluksia liiketoiminnan päätöksenteon ja asiakaskokemuksen parantamiseen. Tyytyväisiä kihloihin Netlight, APN-konsulttikumppani, joka auttaa luomaan tietoalustan näiden näkemysten keräämiseksi.
Suurin osa Contentfulin sovellusten työkuormista toimii Amazon EKS:ssä, ja tämän palvelun ja Kubernetesin tuntemus on organisaatiossa laajalle levinnyt. Siksi Contentfulin tietotekniikkatiimi päätti käyttää dataputkia myös Amazon EKS:ssä. Työtä varten aikataulutus, he aloittivat itseohjautuvalla Apache Airflow -laitteella Amazon EKS -klusterissa ja siirtyivät myöhemmin Amazon MWAA:han vähentääkseen suunnittelu- ja käyttökustannuksia. Työ teloitus pysyi Amazon EKS:ssä.
Contentful ajaa monimutkaista dataputkea käyttämällä tätä infrastruktuuria, mukaan lukien tiedonkeruu useista tietolähteistä ja erilaiset muunnostyöt, esim. DBT. Koko putki jakaa yhden Amazon MWAA -ympäristön ja yhden Amazon EKS -klusterin. Kun yhdessä ympäristössä on useita erilaisia työkuormia, on tarpeen soveltaa vähiten etuoikeusperiaatetta, varmistaen, että yksittäisillä tehtävillä tai komponenteilla on vain ne erityisoikeudet, jotka ne tarvitsevat toimiakseen.
Segmentoimalla käyttöoikeudet roolien ja vastuiden mukaan Contentfulin tietotekniikkatiimi pystyi luomaan vankemman ja turvallisemman tietojenkäsittelyympäristön, joka on olennaista käsiteltävien tietojen eheyden ja luottamuksellisuuden säilyttämiseksi.
Tässä blogiviestissä käymme läpi infrastruktuurin määrittämisen alusta alkaen ja mallisovelluksen käyttöönoton käyttämällä Terraformia, Contentfulin valitsemaa infrastruktuurin työkalua koodina.
Edellytykset
Jotta voit seurata tätä blogikirjoitusta, tarvitset uusimman version seuraavista työkaluista:
Yleiskatsaus
Tässä blogiviestissä luot esimerkkisovelluksen seuraavalla infrastruktuurilla:
Esimerkki Airflow-työnkulusta luettelee lähdesäihön objektit ja tallentaa tämän luettelon väliaikaisesti käyttämällä Airflow XComs, ja kirjoittaa luettelon tiedostona kohderyhmään. Tämä sovellus suoritetaan käyttämällä Amazon EKS podeja, jotka on ajoitettu Amazon MWAA -ympäristössä. Otat EKS-klusterin ja MWAA-ympäristön käyttöön a virtuaalinen yksityinen pilvi (VPC) ja käytä vähiten etuoikeuksia EKS-podille käyttämällä Palvelutilien IAM -roolit. Amazon MWAA:n määritysalue sisältää ajonaikaiset vaatimukset sekä sovelluskoodin, joka määrittää an Ilmavirtaan suunnattu asyklinen kaavio (DAG).
Alusta projekti ja luo kauhoja
Luo tiedosto main.tf
jossa on seuraava sisältö tyhjään hakemistoon:
Tämä tiedosto määrittelee Terraform AWS -toimittaja sekä lähde- ja kohderyhmä, joiden nimet viedään nimellä AWS Systems Managerin parametrit. Se myös käskee Terraformia lataamaan tyhjän objektin nimeltä dummy.txt
lähdesäilöön, jolloin myöhemmin luomamme Airflow-näytesovellus saa tuloksen ämpärisisältöä listattaessa.
Alusta Terraform-projekti ja lataa moduulien riippuvuudet antamalla seuraava komento:
Luo infrastruktuuri:
Terraform pyytää sinua hyväksymään ympäristöön tehdyt muutokset ja aloittaa sitten resurssien käyttöönoton AWS:ssä. Onnistuneen käyttöönoton jälkeen sinun pitäisi nähdä seuraava onnistumisviesti:
Luo VPC
Luo uusi tiedosto vpc.tf
samassa hakemistossa kuin main.tf
ja lisää seuraava:
Tämä tiedosto määrittää VPC:n, virtuaalisen verkon, joka isännöi myöhemmin Amazon EKS -klusteria ja Amazon MWAA -ympäristöä. Huomaa, että käytämme an olemassa terraform moduuli tätä varten, joka käärii taustalla olevien verkkoresurssien, kuten aliverkkoon, reittitaulukotja NAT-yhdyskäytävät.
Lataa VPC-moduuli:
Ota käyttöön uudet resurssit:
Huomaa, mitä resursseja luodaan. Käyttämällä VPC-moduulia Terraform-tiedostossamme suuri osa taustalla olevasta monimutkaisuudesta poistetaan infrastruktuurimme määrittelyssä, mutta on silti hyödyllistä tietää, mitä tarkalleen otetaan käyttöön.
Huomaa, että Terraform käsittelee nyt molemmissa tiedostoissa määrittämiämme resursseja, main.tf
ja vpc.tf
, koska Terraform sisältää kaiken .tf
Tiedostojen nykyisessä työhakemistossa.
Luo Amazon MWAA -ympäristö
Luo uusi tiedosto mwaa.tf
ja lisää seuraava sisältö:
Kuten ennenkin, käytämme an olemassa olevasta moduulista säästääksesi Amazon MWAA -ympäristön määritysponnistuksia. Moduuli luo myös konfigurointialueen, jota käytämme määrittämään sovelluksen ajonaikainen riippuvuus (apache-airflow-cncf-kubernetes) On requirements.txt
tiedosto. Tämä paketti yhdessä esiasennetun paketin kanssa apache-airflow-amazon, mahdollistaa vuorovaikutuksen Amazon EKS:n kanssa.
Lataa MWAA-moduuli:
Ota käyttöön uudet resurssit:
Tämä toiminto kestää 20–30 minuuttia.
Luo Amazon EKS -klusteri
Luo tiedosto eks.tf
seuraavalla sisällöllä:
Itse klusterin luomiseksi hyödynnämme Amazon EKS -piirustukset Terraformille hanke. Määritämme myös hallitun solmuryhmän, jonka kohdekooksi on yksi solmu. Huomaa, että vaihtuvan kuormituksen tapauksessa skaalaa klusterisi kanssa Puuseppä yllä esitetyn hallitun solmuryhmän sijaan tekee klusterin mittakaavan joustavammaksi. Käytimme hallittuja solmuryhmiä ensisijaisesti konfiguroinnin helppouden vuoksi.
Määrittelemme identiteetin Amazon MWAA -suoritusrooli olettaa Kubernetesissa käyttämällä map_roles
muuttuja. Konfiguroinnin jälkeen Terraform Kubernetes -toimittaja, annamme Amazon MWAA -suoritusroolille luvat hallita podeja klusterissa.
Lataa EKS Blueprints for Terraform -moduuli:
Ota käyttöön uudet resurssit:
Tämä toiminto kestää noin 12 minuuttia.
Luo IAM-rooleja palvelutileille
Luo tiedosto roles.tf
seuraavalla sisällöllä:
Tämä tiedosto määrittää kaksi Kubernetes-palvelutiliä, source-bucket-reader-sa
ja destination-bucket-writer-sa
, ja niiden luvat AWS-sovellusliittymää vastaan käyttämällä IAM-rooleja palvelutileille (IRSA). Käytämme jälleen Amazon EKS Blueprints for Terraform -projektin moduulia IRSA-määrityksen yksinkertaistamiseksi. Huomaa, että molemmat roolit saavat vain tarvitsemansa vähimmäisoikeudet, jotka on määritelty käyttämällä AWS IAM -käytännöt.
Lataa uusi moduuli:
Ota käyttöön uudet resurssit:
Luo DAG
Luo tiedosto dag.py
ilmavirran DAG:n määrittäminen:
DAG on määritelty toimimaan tuntiaikataulun mukaan, ja siinä on kaksi tehtävää read_bucket
palvelutilillä source-bucket-reader-sa
ja write_bucket
palvelutilillä destination-bucket-writer-sa
, juoksevat toistensa perässä. Molempia ajetaan käyttämällä EksPodOperaattori, joka vastaa tehtävien ajoittamisesta Amazon EKS:ssä käyttämällä AWS CLI Docker -kuva komentojen suorittamiseen. Ensimmäinen tehtävä listaa tiedostot lähdesäilöön ja kirjoittaa luettelon Airflow XComille. Toinen tehtävä lukee listan XComista ja tallentaa sen kohdealueeseen. Huomaa, että service_account_name
parametri erottaa sen, mitä kukin tehtävä saa tehdä.
Luo tiedosto dag.tf
ladataksesi DAG-koodin Amazon MWAA -kokoonpanosäilöön:
Ota muutokset käyttöön:
Amazon MWAA -ympäristö tuo tiedoston automaattisesti S3-ämpäristä.
Suorita DAG
Siirry selaimessasi kohtaan Amazon MWAA -konsoli ja valitse ympäristösi. Valitse oikeasta yläkulmasta Avaa ilmavirran käyttöliittymä . Sinun pitäisi nähdä seuraava:
DAG:n käynnistämiseksi Toiminnot sarakkeessa, valitse toistosymboli ja valitse sitten Laukaise DAG. Napsauta DAG-nimeä tutkiaksesi DAG-ajoa ja sen tuloksia.
Siirry Amazon S3 -konsoli ja valitse ämpäri, joka alkaa sanalla "destination". Sen pitäisi sisältää tiedosto list.json
äskettäin luoma write_bucket
tehtävä. Lataa tiedosto tutkiaksesi sen sisältöä, JSON-luettelo yhdellä merkinnällä.
Puhdistaa
Tässä esittelyssä luomasi resurssit aiheuttavat AWS-kuluja. Voit poistaa luodut resurssit antamalla seuraavan komennon:
Ja hyväksy muutokset Terraform CLI -valintaikkunassa.
Yhteenveto
Tässä blogiviestissä opit parantamaan Amazon MWAA:ssa ja Amazon EKS:ssä käynnissä olevan dataputken turvallisuutta rajoittamalla kunkin yksittäisen tehtävän käyttöoikeuksia.
Sukeltaaksesi syvemmälle, käytä tässä esittelyssä luotua työesimerkkiä tutkiaksesi aihetta tarkemmin: Mitä tapahtuu, jos poistat service_account_name
parametri Airflow-tehtävästä? Mitä tapahtuu, jos vaihdat palvelutilien nimet näissä kahdessa tehtävässä?
Yksinkertaisuuden vuoksi tässä esittelyssä käytimme tasaista tiedostorakennetta Terraform- ja Python-tiedostoilla yhdessä hakemistossa. Emme pitäneet kiinni vakio moduulirakenne Terraformin ehdottama, jota yleensä suositellaan. Tosielämän projektissa projektin jakaminen useisiin Terraform-projekteihin tai -moduuleihin voi myös lisätä joustavuutta, nopeutta ja riippumattomuutta infrastruktuurin eri osia omistavien tiimien välillä.
Lopuksi muista tutkia Tiedot EKS:stä dokumentaatio, joka tarjoaa muita arvokkaita resursseja dataputken käyttämiseen Amazon EKS:ssä, sekä Amazon MWAA ja apache-ilmavirta dokumentaatio omien käyttötapausten toteuttamista varten. Tarkemmin sanottuna, katso tämä esimerkkitoteutus Terraform-moduulista Amazon MWAA:lle ja Amazon EKS:lle, joka sisältää kypsemmmän lähestymistavan Amazon EKS -konfigurointiin ja solmujen automaattiseen skaalaukseen sekä verkkoon.
Jos sinulla on kysyttävää, voit aloittaa uuden ketjun AWS re:Post tai tavoita AWS-tuki.
Tietoja Tekijät
Ulrich Hinze on ratkaisuarkkitehti AWS:ssä. Hän tekee yhteistyötä ohjelmistoyritysten kanssa suunnitellakseen ja toteuttaakseen pilvipohjaisia ratkaisuja AWS:lle. Ennen AWS:lle tuloaan hän työskenteli AWS:n asiakkaiden ja kumppaneiden palveluksessa ohjelmistosuunnittelun, konsultoinnin ja arkkitehtuurin tehtävissä yli 8 vuotta.
Patrick Oberherr on henkilöstötietoinsinööri Contentfulissa, jolla on yli 4 vuotta työskentelyä AWS:n parissa ja yli 10 vuotta data-alalla. Contentfulilla hän vastaa AWS:ssä isännöidyn tietopinon infrastruktuurista ja toiminnasta.
Johannes Günther on Netlightin pilvi- ja datakonsultti, jolla on yli 5 vuoden työskentely AWS:n kanssa. Hän on auttanut asiakkaita eri toimialoilla kestävien pilvialustojen suunnittelussa ja on AWS-sertifioitu.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/big-data/set-up-fine-grained-permissions-for-your-data-pipeline-using-mwaa-and-eks/
- :on
- :On
- :ei
- $ YLÖS
- 1
- 10
- 100
- 12
- 16
- 2023
- 27
- 41
- 8
- 9
- a
- pystyy
- Meistä
- edellä
- Mukaan
- Tili
- Tilit
- tunnustaa
- poikki
- toimet
- asykliset
- lisä-
- noudattaa
- Etu
- etuja
- Jälkeen
- uudelleen
- vastaan
- Kaikki
- pitkin
- Myös
- Amazon
- Amazon Web Services
- an
- ja
- Toinen
- Kaikki
- Apache
- api
- Hakemus
- käyttää
- lähestymistapa
- hyväksyä
- arkkitehtuuri
- OVAT
- AS
- olettaa
- At
- lupa
- automaattisesti
- automaattisesti
- saatavissa
- pois
- AWS
- AWS-sertifioitu
- AWS asiakas
- perustua
- koska
- ennen
- takana
- kulissien takana
- ovat
- välillä
- Blogi
- sekä
- selain
- liiketoiminta
- mutta
- by
- CAN
- tapauksissa
- Todistettu
- muuttunut
- Muutokset
- valinta
- Valita
- napsauttaa
- asiakkaat
- pilvi
- Cluster
- koodi
- Sarake
- yhdistelmä
- yhteisö
- Yritykset
- täydellinen
- monimutkainen
- monimutkaisuus
- osat
- Laskea
- luottamuksellisuus
- Konfigurointi
- Console
- konsultti
- konsultointi
- sisältää
- sisältää
- pitoisuus
- sisältöalusta
- Kulma
- korjata
- kustannukset
- luoda
- luotu
- luo
- Nykyinen
- asiakas
- asiakaskokemus
- Asiakkaat
- PÄIVÄ
- tiedot
- tietotekniikka
- Tietoalusta
- tietojenkäsittely
- treffiaika
- päätti
- Päätöksenteko
- syvempää
- määritellä
- määritelty
- määrittelee
- määrittelemällä
- riippuvuudet
- riippuvuus
- Riippuen
- sijoittaa
- käyttöön
- levityspinnalta
- käyttöönotto
- kuvaus
- suunnittelu
- määränpää
- tuhonnut
- Vuoropuhelu
- DID
- eri
- suunnattu
- sukellus
- useat
- do
- Satamatyöläinen
- dokumentointi
- download
- piirustus
- kukin
- helpottaa
- kaiku
- vaivaa
- tyhjä
- mahdollistaa
- kihloissa
- insinööri
- Tekniikka
- varmistamalla
- merkintä
- ympäristö
- olennainen
- Eetteri (ETH)
- täsmälleen
- esimerkki
- Vaihdetaan
- suorittaa
- teloitettiin
- teloitus
- experience
- tutkia
- laajennukset
- väärä
- ala
- filee
- Asiakirjat
- Etunimi
- tasainen
- Joustavuus
- joustavasti
- seurata
- jälkeen
- varten
- alkaen
- toiminto
- edelleen
- kerätä
- yleensä
- saada
- GitHub
- Antaa
- kaavio
- Ryhmä
- Ryhmän
- vieras
- Vierasblogi
- Vetimet
- tapahtuu
- Olla
- he
- auttaa
- auttanut
- korkeampi
- isäntä
- isännöi
- Miten
- Miten
- HTML
- HTTPS
- IAM
- Identiteetti
- if
- toteuttaa
- täytäntöönpanosta
- tuoda
- tuonti
- parantaa
- in
- sisältää
- sisältää
- Mukaan lukien
- Kasvaa
- itsenäisyys
- henkilökohtainen
- teollisuuden
- Infrastruktuuri
- sisällä
- oivalluksia
- sen sijaan
- eheys
- vuorovaikutus
- liitäntä
- tulee
- kysymys
- antaneen
- IT
- SEN
- itse
- Job
- Työpaikat
- tuloaan
- matka
- jpg
- json
- avain
- laji
- Tietää
- tuntemus
- Kubernetes
- myöhemmin
- uusin
- oppinut
- vähiten
- pitää
- Lista
- listaus
- Listat
- kuormitus
- paikallinen
- kirjattu
- katso
- ylläpitäminen
- tehdä
- TEE
- hoitaa
- onnistui
- johtaja
- kypsä
- Saattaa..
- viesti
- Metadata
- minimi
- pöytäkirja
- moduuli
- Moduulit
- lisää
- paljon
- moninkertainen
- nimi
- nimetty
- nimet
- Navigoida
- välttämätön
- Tarve
- tarpeet
- verkko
- verkostoituminen
- Uusi
- solmu
- huomata
- nyt
- objekti
- esineet
- of
- on
- ONE
- vain
- avoimen lähdekoodin
- toiminta
- Operations
- operaattorit
- Vaihtoehdot
- or
- organisaatio
- Muut
- meidän
- ulos
- ulostulo
- oma
- paketti
- parametri
- kumppani
- kumppaniverkosto
- kumppani
- osat
- läikkä
- polku
- patrick
- Oikeudet
- putki
- foorumi
- Platforms
- Platon
- Platonin tietotieto
- PlatonData
- Pelaa
- palot
- politiikka
- muotokuva
- Kirje
- pääasiallisesti
- yksityinen
- käsittely
- Tuotteet
- Profiili
- projekti
- hankkeet
- ehdotettu
- toimittaja
- tarjoajat
- tarjoaa
- Python
- kysymykset
- RE
- tavoittaa
- vastaanottaa
- äskettäin
- suositeltu
- vähentää
- alue
- poistaa
- vaatimukset
- resurssi
- resurssien käyttöä
- Esittelymateriaalit
- vastuut
- vastuullinen
- johtua
- tulokset
- luja
- Rooli
- roolit
- Sääntö
- ajaa
- juoksu
- toimii
- SaaS
- sama
- Säästä
- Asteikko
- skaalaus
- kohtaukset
- aikataulu
- suunniteltu
- aikataulutus
- raapia
- Toinen
- turvallinen
- turvallisuus
- nähdä
- Sarjat
- palvelu
- Palvelut
- setti
- asetus
- osakkeet
- jakaminen
- shouldnt
- esitetty
- Näytä
- yksinkertaisuus
- yksinkertaistaa
- single
- yksittäinen ympäristö
- Koko
- pieni
- Tuotteemme
- ohjelmistotuotanto
- Ratkaisumme
- lähde
- Lähteet
- erityinen
- erityisesti
- nopeus
- pino
- Henkilöstö
- Alkaa
- alkoi
- Aloita
- alkaa
- Lausunto
- Yhä
- Levytila
- säilytysvaihtoehdot
- varastot
- rakenne
- tutkimus
- aihe
- menestys
- onnistunut
- varma
- kestävä
- kytketty
- symboli
- järjestelmät
- ottaa
- otettava
- vie
- Kohde
- Tehtävä
- tehtävät
- joukkue-
- tiimit
- kertoo
- malleja
- terraform
- teksti
- että
- -
- Lähde
- heidän
- sitten
- Nämä
- ne
- tätä
- Kautta
- että
- symbolinen
- työkalu
- työkalut
- ylin
- aihe
- Muutos
- laukaista
- totta
- kaksi
- tyyppi
- taustalla oleva
- Päivitykset
- päälle
- käyttää
- käytetty
- käyttäjä
- Käyttöliittymä
- käyttötarkoituksiin
- käyttämällä
- arvokas
- arvo
- muuttuja
- eri
- versio
- eloisa
- Virtual
- kävellä
- läpikäynti
- oli
- we
- verkko
- verkkopalvelut
- HYVIN
- Mitä
- kun
- joka
- koko
- jonka
- miksi
- laajalle levinnyt
- tulee
- with
- työskenteli
- työnkulku
- työnkulkuja
- työskentely
- vuotta
- te
- Sinun
- zephyrnet