Ansible Tower / AWX / Automation controller Security

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Ansible Tower au toleo lake la chanzo wazi AWX inajulikana pia kama kiolesura cha mtumiaji cha Ansible, dashibodi, na REST API. Kwa udhibiti wa upatikanaji kulingana na jukumu, ratiba ya kazi, na usimamizi wa hesabu ya picha, unaweza kusimamia miundombinu yako ya Ansible kutoka kwa UI ya kisasa. REST API ya Tower na kiolesura cha mstari wa amri hufanya iwe rahisi kuunganisha katika zana na mchakato wa sasa.

Automation Controller ni toleo jipya la Ansible Tower lenye uwezo zaidi.

Tofauti

Kulingana na hii, tofauti kuu kati ya Ansible Tower na AWX ni msaada uliopokelewa na Ansible Tower una vipengele vingine kama udhibiti wa upatikanaji kulingana na jukumu, msaada kwa APIs za desturi, na mifumo ya kazi iliyoundwa na mtumiaji.

Safu ya Teknolojia

  • Kiolesura cha Wavuti: Hii ni kiolesura cha picha ambapo watumiaji wanaweza kusimamia hesabu, vibali, templeti, na kazi. Imeundwa kuwa ya kueleweka na hutoa visualizations kusaidia katika kuelewa hali na matokeo ya kazi zako za otomatiki.

  • REST API: Kila kitu unachoweza kufanya kwenye kiolesura cha wavuti, unaweza pia kufanya kupitia REST API. Hii inamaanisha unaweza kuunganisha AWX/Tower na mifumo mingine au hatua za skripti ambazo kawaida ungefanya kwenye kiolesura.

  • Database: AWX/Tower hutumia database (kawaida PostgreSQL) kuhifadhi usanidi wake, matokeo ya kazi, na data muhimu ya uendeshaji.

  • RabbitMQ: Hii ni mfumo wa ujumbe unaotumiwa na AWX/Tower kwa mawasiliano kati ya sehemu tofauti, hasa kati ya huduma ya wavuti na wakimbiaji wa kazi.

  • Redis: Redis hutumika kama cache na nyuma ya foleni ya kazi.

Vipengele vya Mantiki

  • Hesabu: Hesabu ni mkusanyiko wa wenyeji (au nodi) dhidi ya ambayo kazi (playbooks za Ansible) zinaweza kutekelezwa. AWX/Tower inakuruhusu kufafanua na kundi hesabu zako na pia inasaidia hesabu za kudumu ambazo zinaweza kupata orodha ya wenyeji kutoka kwa mifumo mingine kama AWS, Azure, n.k.

  • Miradi: Mradi ni kimsingi mkusanyiko wa playbooks za Ansible zilizopatikana kutoka kwa mfumo wa kudhibiti toleo (kama Git) ili kuvuta playbooks za hivi karibuni wakati unahitajika.

  • Templati: Templeti za kazi hufafanua jinsi playbook fulani itatekelezwa, ikispecifika hesabu, vibali, na vigezo vingine vya kazi.

  • Vibali: AWX/Tower hutoa njia salama ya kusimamia na kuhifadhi siri, kama vile funguo za SSH, nywila, na vibali vya API. Vibali hivi vinaweza kuunganishwa na templeti za kazi ili playbooks ziwe na ufikivu unaohitajika wanapotumika.

  • Injini ya Kazi: Hapa ndipo uchawi unapotokea. Injini ya kazi imejengwa kwenye Ansible na inahusika na kutekeleza playbooks. Kazi zinapelekwa kwa injini ya kazi, ambayo kisha inatekeleza playbooks za Ansible dhidi ya hesabu iliyotengwa kwa kutumia vibali vilivyotolewa.

  • Wapangaji na Kurejelea: Hizi ni vipengele vya juu katika AWX/Tower ambavyo huruhusu kazi kupangwa kutekelezwa wakati maalum au kusababishwa na matukio ya nje.

  • Arifa: AWX/Tower inaweza kutuma arifa kulingana na mafanikio au kushindwa kwa kazi. Inasaidia njia mbalimbali za arifa kama vile barua pepe, ujumbe wa Slack, webhooks, n.k.

  • Playbooks za Ansible: Playbooks za Ansible ni zana za usanidi, kupeleka, na usimamizi. Hufafanua hali inayotakiwa ya mifumo kwa njia iliyoorodheshwa, inayoweza kufanywa upya kiotomatiki. Iliyoandikwa kwa YAML, playbooks hutumia lugha ya utendaji ya Ansible kufafanua usanidi, kazi, na hatua zinazohitaji kutekelezwa.

Mchakato wa Kutekeleza Kazi

  1. Mwingiliano wa Mtumiaji: Mtumiaji anaweza kuingiliana na AWX/Tower kupitia Kiolesura cha Wavuti au REST API. Hizi hutoa ufikiaji wa mbele wa kila utendaji unaojumuishwa na AWX/Tower.

  2. Kuanzisha Kazi:

  • Mtumiaji, kupitia Kiolesura cha Wavuti au API, anaanzisha kazi kulingana na Templati ya Kazi.

  • Templeti ya Kazi inajumuisha marejeo kwa Hesabu, Mradi (unaoplaybook), na Vibali.

  • Baada ya kuanzisha kazi, ombi hutumwa kwa nyuma ya AWX/Tower kuweka kazi kwenye foleni ya utekelezaji.

  1. Kupanga Kazi:

  • RabbitMQ inashughulikia ujumbe kati ya sehemu ya wavuti na wakimbiaji wa kazi. Mara kazi inapoanzishwa, ujumbe unatumwa kwa injini ya kazi kutumia RabbitMQ.

  • Redis hufanya kama nyuma ya foleni ya kazi, ikisimamia kazi zilizowekwa kusubiri utekelezaji.

  1. Kutekeleza Kazi:

  • Injini ya Kazi inachukua kazi iliyowekwa kwenye foleni. Inapata habari muhimu kutoka kwa Database kuhusu playbook inayohusishwa na kazi, hesabu, na vibali.

  • Kutumia playbook ya Ansible iliyopatikana kutoka kwa Mradi uliohusishwa, Injini ya Kazi inatekeleza playbook dhidi ya wodi za Hesabu zilizotajwa kwa kutumia Vibali vilivyotolewa.

  • Wakati playbook inatekelezwa, matokeo yake (vifungu, ukweli, n.k.) yanakamatwa na kuhifadhiwa kwenye Database.

  1. Matokeo ya Kazi:

  • Mara playbook inapomaliza kutekelezwa, matokeo (mafanikio, kushindwa, vifungu) huokolewa kwenye Database.

  • Watumiaji wanaweza kisha kuona matokeo kupitia Kiolesura cha Wavuti au kuyauliza kupitia REST API.

  • Kulingana na matokeo ya kazi, Arifa zinaweza kutumwa kuarifu watumiaji au mifumo ya nje kuhusu hali ya kazi. Arifa zinaweza kuwa barua pepe, ujumbe wa Slack, webhooks, n.k.

  1. Unganisho na Mifumo ya Nje:

  • Hesabu inaweza kupatikana kwa njia ya kudumu kutoka kwa mifumo ya nje, ikiruhusu AWX/Tower kuvuta wenyeji kutoka vyanzo kama AWS, Azure, VMware, na zaidi.

  • Miradi (playbooks) yanaweza kupatikana kutoka kwa mifumo ya kudhibiti toleo, ikahakikisha matumizi ya playbooks ya hivi karibuni wakati wa utekelezaji wa kazi.

  • Wapangaji na Kurejelea wanaweza kutumika kuunganisha na mifumo au zana zingine, ikifanya AWX/Tower kurejea kwa vichocheo vya nje au kutekeleza kazi wakati uliopangwa mapema.

Uumbaji wa Maabara ya AWX kwa Jaribio

Kufuata nyaraka inawezekana kutumia docker-compose kutekeleza AWX:

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

Majukumu Yaliyosaidiwa

Jukumu lenye mamlaka zaidi huitwa Mfumo wa Msimamizi. Mtu yeyote mwenye jukumu hili anaweza kurekebisha chochote.

Kutoka kwenye ukaguzi wa usalama wa sanduku jeupe, utahitaji jukumu la Mthibitishaji wa Mfumo, ambalo huruhusu kuona data yote ya mfumo lakini hawezi kufanya mabadiliko yoyote. Chaguo lingine lingekuwa kupata jukumu la Mthibitishaji wa Shirika, lakini ingekuwa bora kupata lingine.

Fungua hii kupata maelezo ya kina ya majukumu yanayopatikana
  1. Mfumo wa Msimamizi:

  • Hii ni jukumu la mtumiaji wa juu sana lenye ruhusa ya kupata na kurekebisha rasilimali yoyote kwenye mfumo.

  • Wanaweza kusimamia mashirika yote, timu, miradi, hesabu, templeti za kazi, n.k.

  1. Mthibitishaji wa Mfumo:

  • Watumiaji wenye jukumu hili wanaweza kuona data yote ya mfumo lakini hawawezi kufanya mabadiliko yoyote.

  • Jukumu hili limeundwa kwa ajili ya uthibitisho na usimamizi.

  1. Majukumu ya Shirika:

  • Msimamizi: Udhibiti kamili wa rasilimali za shirika.

  • Mthibitishaji: Upatikanaji wa kuona tu kwenye rasilimali za shirika.

  • Mwanachama: Uanachama wa kawaida kwenye shirika bila ruhusa maalum.

  • Tekeleza: Inaweza kukimbia templeti za kazi ndani ya shirika.

  • Soma: Inaweza kuona rasilimali za shirika.

  1. Majukumu ya Mradi:

  • Msimamizi: Anaweza kusimamia na kurekebisha mradi.

  • Tumia: Inaweza kutumia mradi katika templeti ya kazi.

  • Sasisha: Inaweza kusasisha mradi kwa kutumia SCM (kudhibiti chanzo).

  1. Majukumu ya Hesabu:

  • Msimamizi: Anaweza kusimamia na kurekebisha hesabu.

  • Ad Hoc: Inaweza kukimbia amri za ad hoc kwenye hesabu.

  • Sasisha: Inaweza kusasisha chanzo cha hesabu.

  • Tumia: Inaweza kutumia hesabu katika templeti ya kazi.

  • Soma: Upatikanaji wa kuona tu.

  1. Majukumu ya Templeti ya Kazi:

  • Msimamizi: Anaweza kusimamia na kurekebisha templeti ya kazi.

  • Tekeleza: Inaweza kukimbia kazi.

  • Soma: Upatikanaji wa kuona tu.

  1. Majukumu ya Sifa:

  • Msimamizi: Anaweza kusimamia na kurekebisha sifa.

  • Tumia: Inaweza kutumia sifa katika templeti za kazi au rasilimali zingine zinazofaa.

  • Soma: Upatikanaji wa kuona tu.

  1. Majukumu ya Timu:

  • Mwanachama: Sehemu ya timu lakini bila ruhusa maalum.

  • Msimamizi: Anaweza kusimamia wanachama wa timu na rasilimali zinazohusiana.

  1. Majukumu ya Mchakato:

  • Msimamizi: Anaweza kusimamia na kurekebisha mchakato.

  • Tekeleza: Inaweza kukimbia mchakato.

  • Soma: Upatikanaji wa kuona tu.

Last updated