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 au toleo lake la wazi AWX pia inajulikana kama kiwango cha mtumiaji wa Ansible, dashibodi, na REST API. Pamoja na udhibiti wa ufikiaji kulingana na majukumu, kupanga kazi, na usimamizi wa hesabu wa picha, unaweza kusimamia miundombinu yako ya Ansible kutoka kwa UI ya kisasa. REST API ya Tower na kiolesura cha amri hufanya iwe rahisi kuunganisha na zana na mifumo ya kazi ya sasa.
Automation Controller ni toleo jipya la Ansible Tower lenye uwezo zaidi.
Kulingana na hii, tofauti kuu kati ya Ansible Tower na AWX ni msaada unaopatikana na Ansible Tower ina vipengele vya ziada kama vile udhibiti wa ufikiaji kulingana na majukumu, msaada wa APIs za kawaida, na mifumo ya kazi iliyofafanuliwa na mtumiaji.
Web Interface: Hii ni kiolesura cha picha ambapo watumiaji wanaweza kusimamia hesabu, ithibati, templeti, na kazi. Imeundwa kuwa ya kueleweka na inatoa picha kusaidia kuelewa hali na matokeo ya kazi zako za automatisering.
REST API: Kila kitu unachoweza kufanya katika kiolesura cha wavuti, unaweza pia kufanya kupitia REST API. Hii inamaanisha unaweza kuunganisha AWX/Tower na mifumo mingine au kuandika hatua ambazo ungeweza kufanya kawaida katika kiolesura.
Database: AWX/Tower inatumia hifadhidata (kawaida PostgreSQL) kuhifadhi usanidi wake, matokeo ya kazi, na data nyingine muhimu za uendeshaji.
RabbitMQ: Hii ni mfumo wa ujumbe unaotumiwa na AWX/Tower kuwasiliana kati ya vipengele tofauti, hasa kati ya huduma ya wavuti na waendesha kazi.
Redis: Redis inatumika kama cache na nyuma ya foleni ya kazi.
Inventories: Hesabu ni mkusanyiko wa mwenyeji (au nodi) ambao kazi (Ansible playbooks) zinaweza kufanywa. AWX/Tower inakuruhusu kufafanua na kuunganisha hesabu zako na pia inasaidia hesabu za kidinamik ambayo inaweza kupata orodha za wenyeji kutoka mifumo mingine kama AWS, Azure, n.k.
Projects: Mradi kimsingi ni mkusanyiko wa Ansible playbooks zinazotolewa kutoka kwa mfumo wa udhibiti wa toleo (kama Git) ili kuvuta playbooks za hivi punde inapohitajika.
Templates: Templeti za kazi zinafafanua jinsi playbook fulani itakavyofanywa, ikitaja hesabu, ithibati, na vigezo vingine vya kazi.
Credentials: AWX/Tower inatoa njia salama ya kusimamia na kuhifadhi siri, kama funguo za SSH, nywila, na token za API. Hizi ithibati zinaweza kuunganishwa na templeti za kazi ili playbooks ziwe na ufikiaji unaohitajika zinapofanya kazi.
Task Engine: Hapa ndipo uchawi unafanyika. Injini ya kazi imejengwa juu ya Ansible na inawajibika kwa kufanya playbooks. Kazi zinatumwa kwa injini ya kazi, ambayo kisha inafanya playbooks za Ansible dhidi ya hesabu iliyoteuliwa kwa kutumia ithibati zilizotolewa.
Schedulers and Callbacks: Hizi ni vipengele vya juu katika AWX/Tower vinavyoruhusu kazi kuandaliwa kufanywa kwa nyakati maalum au kuanzishwa na matukio ya nje.
Notifications: AWX/Tower inaweza kutuma arifa kulingana na mafanikio au kushindwa kwa kazi. Inasaidia njia mbalimbali za arifa kama barua pepe, ujumbe wa Slack, webhooks, n.k.
Ansible Playbooks: Ansible playbooks ni zana za usanidi, uwekaji, na uratibu. Zinabainisha hali inayotakiwa ya mifumo kwa njia ya automatisering, inayoweza kurudiwa. Imeandikwa kwa YAML, playbooks hutumia lugha ya automatisering ya Ansible kuelezea usanidi, kazi, na hatua zinazohitajika kutekelezwa.
User Interaction: Mtumiaji anaweza kuingiliana na AWX/Tower ama kupitia Web Interface au REST API. Hizi zinatoa ufikiaji wa mbele kwa kazi zote zinazotolewa na AWX/Tower.
Job Initiation:
Mtumiaji, kupitia Web Interface au API, anaanzisha kazi kulingana na Job Template.
Job Template inajumuisha marejeleo kwa Hesabu, Mradi (unaoshikilia playbook), na Ithibati.
Mara kazi inapoanzishwa, ombi linawekwa kwa AWX/Tower backend ili kuweka kazi hiyo kwa utekelezaji.
Job Queuing:
RabbitMQ inashughulikia ujumbe kati ya kipengele cha wavuti na waendesha kazi. Mara kazi inapoanzishwa, ujumbe unatumwa kwa injini ya kazi kwa kutumia RabbitMQ.
Redis inafanya kazi kama nyuma ya foleni ya kazi, ikisimamia kazi zilizowekwa zinazosubiri utekelezaji.
Job Execution:
Task Engine inachukua kazi iliyowekwa. Inapata taarifa muhimu kutoka kwa Database kuhusu playbook inayohusishwa na kazi, hesabu, na ithibati.
Kwa kutumia playbook ya Ansible iliyopatikana kutoka kwa Mradi uliohusishwa, Injini ya Kazi inafanya playbook dhidi ya nodi za Hesabu zilizotolewa kwa kutumia Ithibati zilizotolewa.
Wakati playbook inafanya kazi, matokeo yake ya utekelezaji (kumbukumbu, ukweli, n.k.) yanakusanywa na kuhifadhiwa katika Database.
Job Results:
Mara playbook inapokamilisha kufanya kazi, matokeo (mafanikio, kushindwa, kumbukumbu) yanahifadhiwa kwenye Database.
Watumiaji wanaweza kisha kuona matokeo kupitia Web Interface au kuyatafuta kupitia REST API.
Kulingana na matokeo ya kazi, Arifa zinaweza kutumwa ili kuwajulisha watumiaji au mifumo ya nje kuhusu hali ya kazi. Arifa zinaweza kuwa barua pepe, ujumbe wa Slack, webhooks, n.k.
External Systems Integration:
Hesabu zinaweza kupatikana kwa kidinamik kutoka mifumo ya nje, ikiruhusu AWX/Tower kuvuta wenyeji kutoka vyanzo kama AWS, Azure, VMware, na zaidi.
Miradi (playbooks) zinaweza kupatikana kutoka kwa mifumo ya udhibiti wa toleo, kuhakikisha matumizi ya playbooks za kisasa wakati wa utekelezaji wa kazi.
Schedulers and Callbacks zinaweza kutumika kuunganisha na mifumo au zana nyingine, ikifanya AWX/Tower kujibu vichocheo vya nje au kufanya kazi kwa nyakati zilizowekwa.
Following the docs it's possible to use docker-compose to run AWX:
The most privileged role is called System Administrator. Anyone with this role can modify anything.
From a white box security review, you would need the System Auditor role, which allow to view all system data but cannot make any changes. Another option would be to get the Organization Auditor role, but it would be better to get the other one.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)