Ansible Tower / AWX / Automation controller Security

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου HackTricks AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Βασικές Πληροφορίες

Το Ansible Tower ή η ανοικτού κώδικα έκδοσή του AWX είναι επίσης γνωστό ως διεπαφή χρήστη του Ansible, πίνακας ελέγχου και REST API. Με έλεγχο πρόσβασης βασισμένο σε ρόλους, προγραμματισμό εργασιών και γραφική διαχείριση αποθεμάτων, μπορείτε να διαχειριστείτε την υποδομή σας Ansible από μια μοντέρνα διεπαφή. Το REST API και η διεπαφή γραμμής εντολών του Tower κάνουν απλό τον συνδυασμό του με τα τρέχοντα εργαλεία και ροές εργασίας.

Ο Ελεγκτής Αυτοματισμού είναι μια νεότερη έκδοση του Ansible Tower με περισσότερες δυνατότητες.

Διαφορές

Σύμφωνα με αυτό, οι κύριες διαφορές μεταξύ του Ansible Tower και του AWX είναι η υποστήριξη που λαμβάνουν και το Ansible Tower έχει επιπλέον χαρακτηριστικά όπως έλεγχο πρόσβασης βασισμένο σε ρόλους, υποστήριξη για προσαρμοσμένα APIs και ορισμένες χρήστη-καθορισμένες ροές εργασίας.

Τεχνολογικό Στοίβα

  • Διαδικτυακή Διεπαφή: Αυτή είναι η γραφική διεπαφή όπου οι χρήστες μπορούν να διαχειριστούν αποθέματα, διαπιστεύσεις, πρότυπα και εργασίες. Σχεδιάστηκε να είναι εύχρηστη και παρέχει οπτικοποιήσεις για να βοηθήσει στην κατανόηση της κατάστασης και των αποτελεσμάτων των αυτοματισμένων εργασιών σας.

  • REST API: Ό,τι μπορείτε να κάνετε στη διαδικτυακή διεπαφή, μπορείτε επίσης να το κάνετε μέσω του REST API. Αυτό σημαίνει ότι μπορείτε να ενσωματώσετε το AWX/Tower με άλλα συστήματα ή να σεναριοποιήσετε ενέργειες που θα εκτελούσατε τυπικά στη διεπαφή.

  • Βάση Δεδομένων: Το AWX/Tower χρησιμοποιεί μια βάση δεδομένων (συνήθως PostgreSQL) για να αποθηκεύει τη διαμόρφωσή του, τα αποτελέσματα των εργασιών και άλλα απαραίτητα λειτουργικά δεδομένα.

  • RabbitMQ: Αυτό είναι το σύστημα μηνυμάτων που χρησιμοποιεί το AWX/Tower για να επικοινωνεί μεταξύ των διαφόρων συστατικών, ειδικά μεταξύ της υπηρεσίας ιστού και των εργατών εργασιών.

  • Redis: Το Redis λειτουργεί ως μνήμη cache και ως πίσω μέρος για την ουρά εργασιών.

Λογικά Στοιχεία

  • Αποθέματα: Ένα απόθεμα είναι μια συλλογή κόμβων (ή κόμβων) κατά τους οποίους μπορούν να εκτελεστούν εργασίες (playbooks Ansible). Το AWX/Tower σάς επιτρέπει να ορίσετε και να ομαδοποιήσετε τα αποθέματά σας και υποστηρίζει επίσης δυναμικά αποθέματα που μπορούν να ανακτήσουν λίστες κόμβων από άλλα συστήματα όπως AWS, Azure κλπ.

  • Έργα: Ένα έργο είναι ουσιαστικά μια συλλογή playbooks Ansible που προέρχονται από ένα σύστημα ελέγχου εκδόσεων (όπως το Git) για να τραβήξει τα πιο πρόσφατα playbooks όταν χρειάζεται.

  • Πρότυπα: Τα πρότυπα εργασίας καθορίζουν πώς θα εκτελεστεί ένα συγκεκριμένο playbook, καθορίζοντας το απόθεμα, τις διαπιστεύσεις και άλλες παραμέτρους για την εργασία.

  • Διαπιστεύσεις: Το AWX/Tower παρέχει έναν ασφαλή τρόπο για τη διαχείριση και αποθήκευση μυστικών, όπως κλειδιά SSH, κωδικούς πρόσβασης και ταυτότητες API. Αυτές οι διαπιστεύσεις μπορούν να συσχετιστούν με πρότυπα εργασίας ώστε τα playbooks να έχουν την απαραίτητη πρόσβαση κατά την εκτέλεσή τους.

  • Μηχανή Εργασιών: Εδώ συμβαίνει η μαγεία. Η μηχανή εργασιών βασίζεται στο Ansible και είναι υπεύθυνη για το τρέξιμο των playbooks. Οι εργασίες ανατίθενται στη μηχανή εργασιών, η οποία στη συνέχεια τρέχει τα playbooks Ansible κατά τον καθορισμένο κατάλογο αποθεμάτων χρησιμοποιώντας τις καθορισμένες διαπιστεύσεις.

  • Χρονοδρομολογητές και Επανακλήσεις: Αυτά είναι προηγμένα χαρακτηριστικά στο AWX/Tower που επιτρέπουν τη χρονοδρομολόγηση εργασιών για να τρέχουν σε συγκεκριμένες χρονικές στιγμές ή να ενεργοποιούνται από εξωτερικά γεγονότα.

  • Ειδοποιήσεις: Το AWX/Tower μπορεί να στέλνει ειδοποιήσεις βασισμένες στην επιτυχία ή την αποτυχία των εργασιών. Υποστηρίζει διάφορους τρόπους ειδοποίησης όπως emails, μηνύματα Slack, webhooks κλπ.

  • Playbooks Ansible: Τα playbooks Ansible είναι εργαλεία διαμόρφωσης, αναπτύξεων και ορχηστρώσεων. Περιγράφουν την επιθυμητή κατάσταση των συστημάτων με έναν αυτοματοποιημένο, επαναλαμβανόμενο τρόπο. Γραμμένα σε YAML, τα playbooks χρησιμοποιούν τη δηλωτική γλώσσα αυτοματισμού του Ansible για να περιγράψουν διαμορφώσεις, εργασίες και βήματα που πρέπει να εκτελεστούν.

Ροή Εκτέλεσης Εργασιών

  1. **Αλληλεπίδραση Χρ

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

Υποστηριζόμενοι ρόλοι

Ο πιο προνομιούχος ρόλος ονομάζεται Διαχειριστής Συστήματος. Οποιοσδήποτε με αυτόν τον ρόλο μπορεί να τροποποιήσει οτιδήποτε.

Από μια αναθεώρηση ασφάλειας λευκού κουτιού, θα χρειαζόσασταν τον ρόλο Ελεγκτή Συστήματος, ο οποίος επιτρέπει να προβάλλει όλα τα δεδομένα του συστήματος αλλά δεν μπορεί να κάνει καμία αλλαγή. Μια άλλη επιλογή θα ήταν να αποκτήσετε τον ρόλο Ελεγκτής Οργανισμού, αλλά θα ήταν καλύτερο να αποκτήσετε τον άλλο.

Επεκτείνετε αυτό για λεπτομερή περιγραφή των διαθέσιμων ρόλων
  1. Διαχειριστής Συστήματος:

  • Αυτός είναι ο υπερχρήστης με δικαιώματα πρόσβασης και τροποποίησης οποιουδήποτε πόρου στο σύστημα.

  • Μπορούν να διαχειριστούν όλους τους οργανισμούς, ομάδες, έργα, αποθέματα, πρότυπα εργασιών, κλπ.

  1. Ελεγκτής Συστήματος:

  • Οι χρήστες με αυτόν τον ρόλο μπορούν να προβάλλουν όλα τα δεδομένα του συστήματος αλλά δεν μπορούν να κάνουν καμία αλλαγή.

  • Αυτός ο ρόλος είναι σχεδιασμένος για συμμόρφωση και επιθεώρηση.

  1. Ρόλοι Οργανισμού:

  • Διαχειριστής: Πλήρης έλεγχος επί των πόρων του οργανισμού.

  • Ελεγκτής: Πρόσβαση μόνο για προβολή στους πόρους του οργανισμού.

  • Μέλος: Βασική συμμετοχή σε έναν οργανισμό χωρίς καμία συγκεκριμένη άδεια.

  • Εκτέλεση: Μπορεί να εκτελέσει πρότυπα εργασιών εντός του οργανισμού.

  • Ανάγνωση: Μπορεί να προβάλλει τους πόρους του οργανισμού.

  1. Ρόλοι Έργου:

  • Διαχειριστής: Μπορεί να διαχειριστεί και να τροποποιήσει το έργο.

  • Χρήση: Μπορεί να χρησιμοποιήσει το έργο σε ένα πρότυπο εργασίας.

  • Ενημέρωση: Μπορεί να ενημερώσει το έργο χρησιμοποιώντας το SCM (έλεγχος πηγής).

  1. Ρόλοι Αποθέματος:

  • Διαχειριστής: Μπορεί να διαχειριστεί και να τροποποιήσει το απόθεμα.

  • Ad Hoc: Μπορεί να εκτελέσει αυθαίρετες εντολές στο απόθεμα.

  • Ενημέρωση: Μπορεί να ενημερώσει την πηγή του αποθέματος.

  • Χρήση: Μπορεί να χρησιμοποιήσει το απόθεμα σε ένα πρότυπο εργασίας.

  • Ανάγνωση: Πρόσβαση μόνο για προβολή.

  1. Ρόλοι Προτύπου Εργασίας:

  • Διαχειριστής: Μπορεί να διαχειριστεί και να τροποποιήσει το πρότυπο εργασίας.

  • Εκτέλεση: Μπορεί να εκτελέσει την εργασία.

  • Ανάγνωση: Πρόσβαση μόνο για προβολή.

  1. Ρόλοι Διαπιστεύσεων:

  • Διαχειριστής: Μπορεί να διαχειριστεί και να τροποποιήσει τις διαπιστεύσεις.

  • Χρήση: Μπορεί να χρησιμοποιήσει τις διαπιστεύσεις σε πρότυπα εργασίας ή άλλους σχετικούς πόρους.

  • Ανάγνωση: Πρόσβαση μόνο για προβολή.

  1. Ρόλοι Ομάδας:

  • Μέλος: Μέρος της ομάδας αλλά χωρίς καμία συγκεκριμένη άδεια.

  • Διαχειριστής: Μπορεί να διαχειριστεί τα μέλη της ομάδας και τους σχετικούς πόρους.

  1. Ρόλοι Ροής Εργασίας:

  • Διαχειριστής: Μπορεί να διαχειριστεί και να τροποποιήσει τη ροή εργασίας.

  • Εκτέλεση: Μπορεί να εκτελέσει τη ροή εργασίας.

  • Ανάγνωση: Πρόσβαση μόνο για προβολή.

Last updated