Ansible Tower / AWX / Automation controller Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ansible Tower ili njegova open-source verzija AWX je takođe poznata kao Ansible-ov korisnički interfejs, kontrolna tabla i REST API. Sa kontrolom pristupa zasnovanom na rolama, zakazivanjem poslova i grafičkim upravljanjem inventarom, možete upravljati svojom Ansible infrastrukturom iz modernog UI-a. Tower-ov REST API i komandna linija olakšavaju integraciju u trenutne alate i radne tokove.
Automation Controller je novija verzija Ansible Tower-a sa više mogućnosti.
Prema ovome, glavne razlike između Ansible Tower-a i AWX-a su podrška koja se dobija, a Ansible Tower ima dodatne funkcije kao što su kontrola pristupa zasnovana na rolama, podrška za prilagođene API-je i korisnički definisani radni tokovi.
Web Interface: Ovo je grafički interfejs gde korisnici mogu upravljati inventarima, akreditivima, šablonima i poslovima. Dizajniran je da bude intuitivan i pruža vizualizacije koje pomažu u razumevanju stanja i rezultata vaših automatizovanih poslova.
REST API: Sve što možete da uradite u web interfejsu, možete takođe uraditi putem REST API-ja. To znači da možete integrisati AWX/Tower sa drugim sistemima ili skriptovati radnje koje biste obično izvodili u interfejsu.
Database: AWX/Tower koristi bazu podataka (obično PostgreSQL) za čuvanje svoje konfiguracije, rezultata poslova i drugih neophodnih operativnih podataka.
RabbitMQ: Ovo je sistem za razmenu poruka koji koristi AWX/Tower za komunikaciju između različitih komponenti, posebno između web servisa i izvršitelja zadataka.
Redis: Redis služi kao keš i pozadinski sistem za red zadataka.
Inventories: Inventar je kolekcija hostova (ili čvorova) protiv kojih se mogu izvršavati poslovi (Ansible playbook-ovi). AWX/Tower vam omogućava da definišete i grupišete svoje inventare i takođe podržava dinamičke inventare koji mogu pribaviti liste hostova iz drugih sistema kao što su AWS, Azure, itd.
Projects: Projekat je u suštini kolekcija Ansible playbook-ova preuzetih iz sistema za kontrolu verzija (kao što je Git) kako bi se povukli najnoviji playbook-ovi kada je to potrebno.
Templates: Šabloni poslova definišu kako će se određeni playbook izvršiti, specificirajući inventar, akreditive i druge parametre za posao.
Credentials: AWX/Tower pruža siguran način za upravljanje i čuvanje tajni, kao što su SSH ključevi, lozinke i API tokeni. Ovi akreditivi mogu biti povezani sa šablonima poslova kako bi playbook-ovi imali neophodan pristup kada se izvrše.
Task Engine: Ovo je mesto gde se dešava magija. Task engine je izgrađen na Ansible-u i odgovoran je za izvršavanje playbook-ova. Poslovi se šalju task engine-u, koji zatim izvršava Ansible playbook-ove protiv određenog inventara koristeći specificirane akreditive.
Schedulers and Callbacks: Ovo su napredne funkcije u AWX/Tower-u koje omogućavaju zakazivanje poslova da se izvrše u određenim vremenima ili da budu pokrenuti spoljnim događajima.
Notifications: AWX/Tower može slati obaveštenja na osnovu uspeha ili neuspeha poslova. Podržava različite načine obaveštavanja kao što su e-mailovi, Slack poruke, webhook-ovi, itd.
Ansible Playbooks: Ansible playbook-ovi su alati za konfiguraciju, implementaciju i orkestraciju. Oni opisuju željeno stanje sistema na automatizovan, ponovljiv način. Napisani u YAML-u, playbook-ovi koriste Ansible-ov deklarativni jezik automatizacije za opisivanje konfiguracija, zadataka i koraka koji treba da se izvrše.
User Interaction: Korisnik može interagovati sa AWX/Tower-om ili putem Web Interface ili REST API. Ovi pružaju front-end pristup svim funkcionalnostima koje nudi AWX/Tower.
Job Initiation:
Korisnik, putem Web Interface-a ili API-ja, pokreće posao na osnovu Job Template.
Job Template uključuje reference na Inventory, Project (koji sadrži playbook) i Credentials.
Po pokretanju posla, zahtev se šalje AWX/Tower pozadini da se posao stavi u red za izvršenje.
Job Queuing:
RabbitMQ upravlja razmenom poruka između web komponente i izvršitelja zadataka. Kada se posao pokrene, poruka se šalje task engine-u koristeći RabbitMQ.
Redis deluje kao pozadinski sistem za red zadataka, upravljajući redom poslova koji čekaju na izvršenje.
Job Execution:
Task Engine preuzima posao iz reda. Preuzima potrebne informacije iz Database o povezanom playbook-u, inventaru i akreditivima.
Koristeći preuzeti Ansible playbook iz povezanog Project, Task Engine izvršava playbook protiv specificiranih Inventory čvorova koristeći pružene Credentials.
Dok se playbook izvršava, njegovi izlazni podaci (logovi, činjenice, itd.) se beleže i čuvaju u Database.
Job Results:
Kada se playbook završi, rezultati (uspeh, neuspeh, logovi) se čuvaju u Database.
Korisnici mogu pregledati rezultate putem Web Interface-a ili ih pretraživati putem REST API-ja.
Na osnovu ishoda posla, Notifications se mogu slati kako bi obavestili korisnike ili spoljne sisteme o statusu posla. Obaveštenja mogu biti e-mailovi, Slack poruke, webhook-ovi, itd.
External Systems Integration:
Inventories se mogu dinamički preuzimati iz spoljnih sistema, omogućavajući AWX/Tower-u da povuče hostove iz izvora kao što su AWS, Azure, VMware i drugi.
Projects (playbook-ovi) mogu se preuzeti iz sistema za kontrolu verzija, osiguravajući korišćenje ažuriranih playbook-ova tokom izvršenja posla.
Schedulers and Callbacks mogu se koristiti za integraciju sa drugim sistemima ili alatima, omogućavajući AWX/Tower-u da reaguje na spoljne okidače ili izvršava poslove u unapred određenim vremenima.
Following the docs moguće je koristiti docker-compose za pokretanje AWX:
Najprivilegovanija uloga se zove Sistem Administrator. Svako ko ima ovu ulogu može modifikovati bilo šta.
Iz bele kutije bezbednosti, potrebna vam je uloga Sistem Revizora, koja omogućava pregled svih podataka sistema ali ne može da vrši nikakve izmene. Druga opcija bi bila da dobijete ulogu Revizora Organizacije, ali bi bilo bolje da dobijete onu prvu.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)