Ansible Tower / AWX / Automation controller Security

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Ansible Tower ili njegova open-source verzija AWX poznati su kao Ansible-ov korisnički interfejs, kontrolna tabla i REST API. Sa kontrolom pristupa zasnovanom na ulogama, planiranjem poslova i grafičkim upravljanjem inventarom, možete upravljati svojom Ansible infrastrukturom putem modernog korisničkog interfejsa. REST API i interfejs komandne linije Tower-a olakšavaju njegovo integrisanje u trenutne alate i radne tokove.

Kontroler automatizacije je novija verzija Ansible Tower-a sa više mogućnosti.

Razlike

Prema ovome, glavne razlike između Ansible Tower-a i AWX-a su podrška koju dobijaju i dodatne funkcije koje Ansible Tower ima, kao što su kontrola pristupa zasnovana na ulogama, podrška za prilagođene API-je i korisnički definisani radni tokovi.

Tehnološki sklop

  • Veb interfejs: Ovo je grafički interfejs gde korisnici mogu upravljati inventarima, akreditacijama, šablonima i poslovima. Dizajniran je da bude intuitivan i pruža vizualizacije koje pomažu u razumevanju stanja i rezultata vaših automatizacionih poslova.

  • REST API: Sve što možete uraditi u veb interfejsu, možete uraditi i putem REST API-ja. To znači da možete integrisati AWX/Tower sa drugim sistemima ili skriptovima koje obično izvršavate u interfejsu.

  • Baza podataka: AWX/Tower koristi bazu podataka (obično PostgreSQL) za čuvanje svoje konfiguracije, rezultata poslova i ostalih neophodnih operativnih podataka.

  • RabbitMQ: Ovo je sistem poruka koji koristi AWX/Tower za komunikaciju između različitih komponenti, posebno između veb servisa i izvršilaca zadataka.

  • Redis: Redis služi kao keš i pozadina za red zadataka.

Logički komponenti

  • Inventari: Inventar je kolekcija domaćina (ili čvorova) protiv kojih se mogu izvršavati poslovi (Ansible skripte). AWX/Tower vam omogućava da definišete i grupišete svoje inventare i takođe podržava dinamičke inventare koji mogu dobavljati liste domaćina iz drugih sistema poput AWS-a, Azure-a, itd.

  • Projekti: Projekat je u osnovi kolekcija Ansible skripti preuzetih iz sistema za kontrolu verzija (kao što je Git) kako bi se povukle najnovije skripte kada je potrebno.

  • Šabloni: Šabloni poslova definišu kako će određena skripta biti izvršena, navodeći inventar, akreditacije i druge parametre za posao.

  • Akreditacije: AWX/Tower pruža siguran način za upravljanje i čuvanje tajni, poput SSH ključeva, lozinki i API tokena. Ove akreditacije mogu biti povezane sa šablonima poslova kako bi skripte imale neophodan pristup prilikom izvršavanja.

  • Zadatak mašina: Ovde se dešava magija. Zadatak mašina je zasnovan na Ansible-u i odgovoran je za izvršavanje skripti. Poslovi se prosleđuju zadatnoj mašini, koja zatim izvršava Ansible skripte protiv određenih inventara koristeći navedene akreditacije.

  • Planeri i povratni pozivi: Ovo su napredne funkcije u AWX/Tower-u koje omogućavaju planiranje poslova da se izvrše u određeno vreme ili da se pokrenu spoljašnjim događajima.

  • Obaveštenja: AWX/Tower može slati obaveštenja na osnovu uspeha ili neuspeha poslova. Podržava različite načine obaveštavanja poput emailova, Slack poruka, webhooks, itd.

  • Ansible Skripte: Ansible skripte su alati za konfigurisanje, implementaciju i orkestraciju. One opisuju željeno stanje sistema na automatizovan, ponovljiv način. Napisane u YAML-u, skripte koriste Ansible-ov deklarativni jezik automatizacije da opišu konfiguracije, zadatke i korake koji treba da budu izvršeni.

Tok izvršavanja posla

  1. Interakcija korisnika: Korisnik može da interaguje sa AWX/Tower-om ili putem Veb interfejsa ili putem REST API-ja. Ovi pružaju pristup svim funkcionalnostima koje nudi AWX/Tower.

  2. Inicijacija posla:

  • Korisnik, putem Veb interfejsa ili API-ja, inicira posao na osnovu Šablona posla.

  • Šablon posla uključuje reference na Inventar, Projekat (koji sadrži skriptu) i Akreditacije.

  • Po inicijaciji posla, zahtev se šalje AWX/Tower backend-u da stavi posao u red za izvršavanje.

  1. Stavljanje posla u red:

  • RabbitMQ upravlja porukama između veb komponente i izvršilaca zadataka. Kada se posao inicira, poruka se prosleđuje zadatnoj mašini korišćenjem RabbitMQ-a.

  • Redis deluje kao pozadina za red zadataka, upravljajući poslovima u redu koji čekaju izvršavanje.

  1. Izvršavanje posla:

  • Zadatak mašina preuzima posao iz reda. On dobavlja neophodne informacije iz Baze podataka o povezanoj skripti posla, inventaru i akreditacijama.

  • Koristeći dobijenu Ansible skriptu iz povezanog Projekta, Zadatak mašina izvršava skriptu protiv određenih Inventara čvorova koristeći navedene Akreditacije.

  • Dok se skripta izvršava, njen izlaz izvršavanja (logovi, činjenice, itd.) se beleže i čuvaju u Bazi podataka.

  1. Rezultati posla:

  • Kada se skripta završi sa izvršavanjem, rezultati (uspeh, neuspeh, logovi) se čuvaju u Bazi podataka.

  • Korisnici mogu zatim pregledati rezultate putem Veb interfejsa ili ih upitati putem REST API-ja.

  • Na osnovu ishoda posla, Obaveštenja se mogu slati da obaveste korisnike ili spoljne sisteme o statusu posla. Obaveštenja mogu biti emailovi, Slack poruke, webhooks, itd.

  1. Integracija sa spoljnim sistemima:

  • Inventari mogu biti dinamički dobijeni iz spoljnih sistema, omogućavajući AWX/Tower-u da povuče domaćine iz izvora poput AWS-a, Azure-a, VMware-a i drugih.

  • Projekti (skripte) mogu biti preuzeti iz sistema za kontrolu verzija, obezbeđujući korišćenje ažuriranih skripti tokom izvršavanja poslova.

  • Planeri i povratni pozivi mogu se koristiti za integraciju sa drugim sistemima ili alatima, čineći AWX/Tower reaktivnim na spoljne okidače ili pokretanje poslova u unapred određeno vreme.

Kreiranje AWX laboratorije za testiranje

Prateći dokumentaciju moguće je koristiti docker-compose za pokretanje AWX-a:

git clone -b x.y.z https://github.com/ansible/awx.git # Get in x.y.z the latest release version

cd awx

# Build
make docker-compose-build

# Run
make docker-compose

# Or to create a more complex env
MAIN_NODE_TYPE=control EXECUTION_NODE_COUNT=2 COMPOSE_TAG=devel make docker-compose

# Clean and build the UI
docker exec tools_awx_1 make clean-ui ui-devel

# Once migrations are completed and the UI is built, you can begin using AWX. The UI can be reached in your browser at https://localhost:8043/#/home, and the API can be found at https://localhost:8043/api/v2.

# Create an admin user
docker exec -ti tools_awx_1 awx-manage createsuperuser

# Load demo data
docker exec tools_awx_1 awx-manage create_preload_data

RBAC

Podržane uloge

Najprivilegovanija uloga se zove Sistem Administrator. Svi sa ovom ulogom mogu modifikovati bilo šta.

Iz bele kutije bezbednosti, potrebna vam je uloga Sistem Auditora, koja omogućava da se pregledaju svi sistemske podaci ali ne može vršiti nikakve promene. Druga opcija bi bila da se dobije uloga Organizacije Auditora, ali bilo bi bolje dobiti prvu.

Proširite ovo da biste dobili detaljan opis dostupnih uloga
  1. Sistem Administrator:

  • Ovo je superkorisnička uloga sa dozvolama za pristup i modifikaciju bilo kog resursa u sistemu.

  • Mogu upravljati svim organizacijama, timovima, projektima, inventarima, šablonima poslova, itd.

  1. Sistem Auditor:

  • Korisnici sa ovom ulogom mogu pregledati sve sistemske podatke ali ne mogu vršiti nikakve promene.

  • Ova uloga je dizajnirana za usklađenost i nadzor.

  1. Uloge Organizacije:

  • Admin: Potpuna kontrola nad resursima organizacije.

  • Auditor: Samo pregled pristup resursima organizacije.

  • Član: Osnovno članstvo u organizaciji bez specifičnih dozvola.

  • Izvrši: Može pokrenuti šablone poslova unutar organizacije.

  • Čitaj: Može pregledati resurse organizacije.

  1. Uloge Projekta:

  • Admin: Može upravljati i modifikovati projekat.

  • Koristi: Može koristiti projekat u šablonu posla.

  • Ažuriraj: Može ažurirati projekat korišćenjem SCM (kontrole izvora).

  1. Uloge Inventara:

  • Admin: Može upravljati i modifikovati inventar.

  • Ad Hoc: Može pokrenuti ad hoc komande na inventaru.

  • Ažuriraj: Može ažurirati izvor inventara.

  • Koristi: Može koristiti inventar u šablonu posla.

  • Čitaj: Samo pregled pristupa.

  1. Uloge Šablona Posla:

  • Admin: Može upravljati i modifikovati šablon posla.

  • Izvrši: Može pokrenuti posao.

  • Čitaj: Samo pregled pristupa.

  1. Uloge Kredencijala:

  • Admin: Može upravljati i modifikovati kredencijale.

  • Koristi: Može koristiti kredencijale u šablonima poslova ili drugim relevantnim resursima.

  • Čitaj: Samo pregled pristupa.

  1. Uloge Tima:

  • Član: Deo tima ali bez specifičnih dozvola.

  • Admin: Može upravljati članovima tima i povezanim resursima.

  1. Uloge Radnog Tijeka:

  • Admin: Može upravljati i modifikovati radni tijek.

  • Izvrši: Može pokrenuti radni tijek.

  • Čitaj: Samo pregled pristupa.

Last updated