Amazon Studios investește în conținut care stimulează creșterea globală a Amazon Prime Video și IMDb TV. Amazon Studios are o serie de aplicații interne care au ca scop eficientizarea proceselor de afaceri end-to-end și a fluxurilor de lucru de informații pentru întregul ciclu de viață al creării de conținut. Infrastructura de date Amazon Studios (ASDI) este un lac de date centralizat, organizat și securizat care stochează date, atât în forma sa originală, cât și procesate pentru analiză și învățare automată (ML). ASDI centralizat este esențial pentru a sparge silozurile de date și pentru a combina diferite tipuri de analize, permițând astfel Amazon Studios să obțină informații valoroase, să ghideze decizii de afaceri mai bune și să inoveze folosind cele mai recente concepte ML.
Care sunt obiectivele principale pentru adoptarea Amazon MWAA?
Fluxuri de lucru gestionate de Amazon pentru Apache Airflow (MWAA) este un serviciu complet gestionat care facilitează rularea versiunilor open source ale Apache Airflow pe AWS. Constructorii de la Amazon.com creează grafice aciclice direcționate Amazon MWAA (DAG) cu cerințe preliminare pentru furnizarea celui mai mic model de acces privilegiat la serviciile și resursele de bază și pentru a restricționa raza de explozie a unei anumite sarcini.
Conexiunile Apache Airflow oferă mecanisme pentru accesarea în siguranță a resurselor în timpul execuției DAG și sunt destinate accesului grosier. Încorporarea accesului cu granulație fină necesită mecanisme diferite pentru implementare și revizuire a codului înainte de implementare. Provocarea suplimentară de codificare a infrastructurii și îmbinare a mai multor sisteme poate, de asemenea, injecta activități redundante atunci când implementați modele de acces cu granulație fină în Airflow.
Cum a atins Amazon acest obiectiv?
Obiectivul de a impune securitatea DAG-urilor la cea mai scăzută granularitate posibilă se realizează la nivelul sarcinii DAG. Soluția se aliniază cu integrarea securității sarcinilor Amazon MWAA cu Gestionarea identității și accesului AWS (IAM) serviciu și Serviciul AWS Security Token (AWS STS). Inginerii au personalizat existentul Airflow PythonOperators pentru a cupla strâns cerințele de acces la sarcini la roluri IAM implementate separat. Operatorul de flux de aer personalizat profită de AWS STS pentru a-și asuma rolul IAM asociat. Sesiunea temporară creată din AWS STS este utilizată în cadrul PythonOperator
pentru a accesa resursele de bază necesare executării sarcinii.
În această postare, discutăm cum să consolidăm securitatea în Amazon MWAA cu controlul accesului bazat pe roluri.
Cerințe preliminare
Pentru a implementa această soluție, completați următoarele cerințe preliminare:
- Creați un cont AWS cu acces de administrator.
- Creați un mediu Amazon MWAA.
- Notați ARN-ul rolului de execuție asociat mediului Amazon MWAA. Acesta este disponibil în Permisiuni secţiune a mediului.
- Creează două Serviciul Amazon de stocare simplă Găleți (Amazon S3):
s3://<AWS_ACCOUNT_ID>-<AWS_REGION>-mwaa-processed/
s3://<AWS_ACCOUNT_ID>-<AWS_REGION>-mwaa-published/
- Creați două roluri IAM; câte una pentru fiecare dintre găleți:
write_access_processed_bucket
cu următoarea politică:
-
write_access_published_bucket
cu următoarea politică:
- Actualizați relația de încredere pentru cele două roluri anterioare cu rolul de execuție Amazon MWAA obținut din pagina de mediu Amazon MWAA:
În politica anterioară, înlocuiți AWS_ACCOUNT_ID și MWAA-EXECUTION_ROLE cu numărul de cont respectiv, regiunea și rolul de execuție Amazon MWAA.
Rulați DAG
DAG-ul propus are două sarcini care accesează fiecare dintre compartimentele precedente create:
- Sarcina de proces – Efectuează o sarcină în găleata S3 procesată, care bate joc de o transformare folosind Python
sleep()
funcţie. Ultimul pas din această sarcină adaugă un fișier de control cu marcajul de timp curent. - Publicați sarcina – Efectuează o transformare similară în găleata S3 publicată, care batjocorește din nou o transformare folosind Python
sleep()
funcţie. Ultimul pas din această sarcină adaugă un fișier de control cu marcajul de timp curent.
Restricția de acces cu granulație fină este impusă de o implementare personalizată a unui operator de flux de aer utilizat pe scară largă: PythonOperator
. Obiceiul PythonOperator
negociază cu AWS STS pentru a tranzacționa o sesiune folosind rolul IAM. Sesiunea este utilizată exclusiv de apelabilul sarcinilor pentru a accesa resursele AWS subiacente. Următoarea diagramă prezintă succesiunea evenimentelor.
Codul sursă pentru implementarea anterioară este disponibil în mwaa-rbac-sarcina Depozitul GitHub.
Baza de cod este configurată în următoarea locație din Amazon S3, așa cum se vede din mediul Amazon MWAA de pe consola Amazon MWAA.
Rulați DAG și monitorizați progresul acestuia, așa cum se arată în următoarea captură de ecran.
După ce rulați DAG, următoarele fișiere sunt create cu marcajele de timp actualizate:
Modificarea fișierelor de control anterioare reflectă faptul că sarcinile din DAG-uri au impus politicile definite pentru aceste sarcini.
Creați operatori de flux de aer personalizați pentru a accepta accesul cu cel mai mic privilegiu
Puteți extinde metodologia demonstrată pentru a permite accesul cu granulație fină utilizând o aplicație personalizată PythonOperator
la alți operatori Airflow și senzori, după cum este necesar. Pentru mai multe informații despre modul de personalizare a operatorilor, consultați Crearea unui operator personalizat.
Concluzie
În această postare, am prezentat o soluție pentru a consolida securitatea în Amazon MWAA cu controale de acces bazate pe roluri. Puteți extinde conceptul la alți operatori Airflow pentru a îmbunătăți securitatea fluxului de lucru la nivel de activitate. În plus, folosind Kit AWS Cloud Development (AWS CDK) poate facilita furnizarea mediului Amazon MWAA și a rolurilor de sarcini IAM detaliate. Așteptăm cu nerăbdare să împărtășim mai multe despre modelele de acces cu granulație fină pentru sarcinile Airflow într-o postare viitoare.
Despre autor
Kishan Desai este inginer de date la Amazon Studios care construiește o platformă de date pentru a sprijini procesul de creare a conținutului. Este pasionat de construirea de sisteme flexibile și modulare pe AWS folosind paradigme fără server. În afara serviciului, lui Kishan îi place să învețe noi tehnologii, să urmărească sporturi, să experimenteze mâncarea excelentă din SoCal și să petreacă timp de calitate cu prietenii și familia.
Virendhar (Viru) Sivaraman este un arhitect strategic Big Data & Analytics cu Amazon Web Services. Este pasionat de construirea de soluții scalabile de date mari și de analiză în cloud. Pe lângă muncă, îi place să petreacă timpul cu familia, drumeții și ciclism montan.
- &
- 100
- acces
- Cont
- Acțiune
- activităţi de
- Suplimentar
- admin
- Adoptare
- Avantaj
- Permiterea
- Amazon
- Amazon Web Services
- analiză
- Google Analytics
- Apache
- aplicatii
- AWS
- Clădire
- afaceri
- procesele de afaceri
- contesta
- Schimbare
- Cloud
- cod
- Revizuire a Codului
- Conexiuni
- conţinut
- Cuplu
- Curent
- DAG
- de date
- Lacul de date
- Dezvoltare
- FĂCUT
- inginer
- Inginerie
- inginerii
- Mediu inconjurator
- evenimente
- execuție
- familie
- alimente
- formă
- Înainte
- funcţie
- viitor
- GitHub
- Caritate
- Goluri
- mare
- Creștere
- ghida
- drumeții
- Cum
- Cum Pentru a
- HTTPS
- IAM
- Identitate
- informații
- Infrastructură
- perspective
- integrare
- IT
- Ultimele
- învăţare
- Nivel
- locaţie
- masina de învățare
- ML
- model
- modular
- comandă
- Altele
- platformă
- Politicile
- Politica
- Principal
- Piton
- calitate
- Cerinţe
- resursă
- Resurse
- revizuiască
- Alerga
- fără sudură
- securitate
- senzori
- serverless
- Servicii
- set
- simplu
- soluţii
- Cheltuire
- Sportul
- Declarație
- depozitare
- magazine
- Strategic
- a sustine
- sisteme
- Tehnologii
- temporar
- timp
- semn
- comerţului
- Transformare
- Încredere
- tv
- Video
- web
- servicii web
- în
- Apartamente
- flux de lucru