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 of sy oopbron weergawe AWX is ook bekend as Ansible se gebruikerskoppelvlak, dashboard, en REST API. Met rolgebaseerde toegangbeheer, werkskedulering, en grafiese inventarisbestuur, kan jy jou Ansible-infrastruktuur vanaf 'n moderne UI bestuur. Tower se REST API en opdraglyn koppelvlak maak dit eenvoudig om dit in huidige gereedskap en werksvloei te integreer.
Automation Controller is 'n nuwer weergawe van Ansible Tower met meer vermoëns.
Volgens hierdie, is die hoof verskille tussen Ansible Tower en AWX die ontvangde ondersteuning en die Ansible Tower het addisionele funksies soos rolgebaseerde toegangbeheer, ondersteuning vir pasgemaakte API's, en gebruiker-gedefinieerde werksvloei.
Web Interface: Dit is die grafiese koppelvlak waar gebruikers inventarisse, akrediteer, sjablone, en werksgeleenthede kan bestuur. Dit is ontwerp om intuïtief te wees en bied visualisasies om te help met die begrip van die toestand en resultate van jou outomatiseringswerk.
REST API: Alles wat jy in die webkoppelvlak kan doen, kan jy ook via die REST API doen. Dit beteken jy kan AWX/Tower met ander stelsels integreer of aksies skryf wat jy tipies in die koppelvlak sou uitvoer.
Database: AWX/Tower gebruik 'n databasis (tipies PostgreSQL) om sy konfigurasie, werksresultate, en ander nodige operasionele data te stoor.
RabbitMQ: Dit is die boodskapstelsel wat deur AWX/Tower gebruik word om tussen die verskillende komponente te kommunikeer, veral tussen die webdiens en die taaklopers.
Redis: Redis dien as 'n kas en 'n agtergrond vir die taaklyn.
Inventories: 'n Inventaris is 'n versameling van gasheers (of nodes) teenoor welke werksgeleenthede (Ansible playbooks) kan loop. AWX/Tower laat jou toe om jou inventarisse te definieer en te groepeer en ondersteun ook dinamiese inventarisse wat gasheerlyste van ander stelsels kan haal soos AWS, Azure, ens.
Projects: 'n Projek is in wese 'n versameling van Ansible playbooks wat afkomstig is van 'n weergawebeheerstelsel (soos Git) om die nuutste playbooks te trek wanneer nodig.
Templates: Werksjablone definieer hoe 'n spesifieke playbook uitgevoer sal word, wat die inventaris, akrediteer, en ander parameters vir die werk spesifiseer.
Credentials: AWX/Tower bied 'n veilige manier om geheime, soos SSH sleutels, wagwoorde, en API tokens te bestuur en te stoor. Hierdie akrediteer kan met werksjablone geassosieer word sodat playbooks die nodige toegang het wanneer hulle loop.
Task Engine: Dit is waar die magie gebeur. Die taak enjin is gebou op Ansible en is verantwoordelik vir die uitvoering van die playbooks. Werksgeleenthede word na die taak enjin gestuur, wat dan die Ansible playbooks teen die aangewese inventaris met die gespesifiseerde akrediteer uitvoer.
Schedulers and Callbacks: Dit is gevorderde funksies in AWX/Tower wat toelaat dat werksgeleenthede geskeduleer kan word om op spesifieke tye te loop of geaktiveer te word deur eksterne gebeurtenisse.
Notifications: AWX/Tower kan kennisgewings stuur gebaseer op die sukses of mislukking van werksgeleenthede. Dit ondersteun verskeie middele van kennisgewings soos e-pos, Slack boodskappe, webhooks, ens.
Ansible Playbooks: Ansible playbooks is konfigurasie-, ontplooiing-, en orkestrering gereedskap. Hulle beskryf die gewenste toestand van stelsels op 'n outomatiese, herhaalbare manier. Geskryf in YAML, gebruik playbooks Ansible se verklarende outomatiseringstaal om konfigurasies, take, en stappe wat uitgevoer moet word te beskryf.
User Interaction: 'n gebruiker kan met AWX/Tower interaksie hê of deur die Web Interface of die REST API. Hierdie bied front-end toegang tot al die funksies wat deur AWX/Tower aangebied word.
Job Initiation:
Die gebruiker, via die Web Interface of API, begin 'n werk gebaseer op 'n Job Template.
Die Job Template sluit verwysings in na die Inventaris, Project (wat die playbook bevat), en Credentials.
By werkinitiëring, word 'n versoek na die AWX/Tower agtergrond gestuur om die werk vir uitvoering te plaas.
Job Queuing:
RabbitMQ hanteer die boodskappe tussen die webkomponent en die taaklopers. Sodra 'n werk geïnisieer is, word 'n boodskap na die taak enjin gestuur met behulp van RabbitMQ.
Redis dien as die agtergrond vir die taaklyn, wat gequeue werksgeleenthede wat wag vir uitvoering bestuur.
Job Execution:
Die Task Engine neem die gequeue werk op. Dit haal die nodige inligting van die Database oor die werk se geassosieerde playbook, inventaris, en akrediteer.
Met die onttrokken Ansible playbook van die geassosieerde Project, voer die Task Engine die playbook teen die gespesifiseerde Inventory nodes uit met die verskafde Credentials.
Soos die playbook loop, word sy uitvoeringsuitset (logs, feite, ens.) vasgevang en in die Database gestoor.
Job Results:
Sodra die playbook klaar is met loop, word die resultate (sukses, mislukking, logs) in die Database gestoor.
Gebruikers kan dan die resultate deur die Web Interface sien of dit via die REST API opvra.
Gebaseer op werksuitkomste, kan Notifications gestuur word om gebruikers of eksterne stelsels oor die werk se status in te lig. Kennisgewings kan e-posse, Slack boodskappe, webhooks, ens. wees.
External Systems Integration:
Inventories kan dinamies van eksterne stelsels verkry word, wat AWX/Tower toelaat om gasheers van bronne soos AWS, Azure, VMware, en meer te trek.
Projects (playbooks) kan van weergawebeheerstelsels verkry word, wat die gebruik van op-datum playbooks tydens werksuitvoering verseker.
Schedulers and Callbacks kan gebruik word om met ander stelsels of gereedskap te integreer, wat AWX/Tower laat reageer op eksterne triggers of werksgeleenthede op voorafbepaalde tye laat loop.
Following the docs it's possible to use docker-compose to run AWX:
Die mees bevoorregte rol word Sisteem Administrateur genoem. Enige iemand met hierdie rol kan enige iets wysig.
Vanuit 'n wit boks sekuriteits hersiening, sal jy die Sisteem Ouditeur rol benodig, wat toelaat om alle sisteemdata te bekyk maar nie enige veranderinge kan aanbring nie. 'n Ander opsie sou wees om die Organisasie Ouditeur rol te verkry, maar dit sou beter wees om die ander een te kry.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)