AWS - Basic Information

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Ιεραρχία Οργάνωσης

Λογαριασμοί

Στο AWS υπάρχει ένας λογαριασμός ρίζας, ο οποίος είναι ο γονικός δοχείο για όλους τους λογαριασμούς της οργάνωσής σας. Ωστόσο, δεν χρειάζεται να χρησιμοποιήσετε αυτόν τον λογαριασμό για να αναπτύξετε πόρους, μπορείτε να δημιουργήσετε άλλους λογαριασμούς για να χωρίσετε διάφορες υποδομές AWS μεταξύ τους.

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

Συνεπώς, υπάρχουν δύο είδη λογαριασμών σε μια οργάνωση (μιλάμε για λογαριασμούς AWS και όχι για λογαριασμούς χρηστών): ένας μόνο λογαριασμός που ορίζεται ως λογαριασμός διαχείρισης και ένας ή περισσότεροι λογαριασμοί μέλη.

  • Ο λογαριασμός διαχείρισης (ο λογαριασμός ρίζας) είναι ο λογαριασμός που χρησιμοποιείτε για να δημιουργήσετε την οργάνωση. Από τον λογαριασμό διαχείρισης της οργάνωσης, μπορείτε να κάνετε τα εξής:

  • Δημιουργία λογαριασμών στην οργάνωση

  • Πρόσκληση άλλων υπαρχόντων λογαριασμών στην οργάνωση

  • Αφαίρεση λογαριασμών από την οργάνωση

  • Διαχείριση προσκλήσεων

  • Εφαρμογή πολιτικών σε οντότητες (ρίζες, OUs ή λογαριασμούς) εντός της οργάνωσης

  • Ενεργοποίηση ολοκλήρωσης με υποστηριζόμενες υπηρεσίες AWS για να παρέχετε λειτουργικότητα υπηρεσίας σε όλους τους λογαριασμούς της οργάνωσης.

  • Είναι δυνατή η σύνδεση ως χρήστης ρίζας χρησιμοποιώντας το email και τον κωδικό που χρησιμοποιήθηκε για τη δημιουργία αυτού του λογαριασμού ρίζας/οργάνωσης.

Ο λογαριασμός διαχείρισης έχει τις ευθύνες ενός λογαριασμού πληρωτή και είναι υπεύθυνος για την καταβολή όλων των χρεώσεων που προκύπτουν από τους λογαριασμούς μελών. Δεν μπορείτε να αλλάξετε τον λογαριασμό διαχείρισης μιας οργάνωσης.

  • Οι λογαριασμοί μέλη αποτελούν όλους τους υπόλοιπους λογαριασμούς μιας οργάνωσης. Ένας λογαριασμός μπορεί να είναι μέλος μόνο μιας οργάνωσης τη φορά. Μπορείτε να επισυνάψετε μια πολιτική σε ένα λογαριασμό για να εφαρμόσετε ελέγχους μόνο σε αυτόν τον λογαριασμό.

  • Οι λογαριασμοί μέλη πρέπει να χρησιμοποιούν μια έγκυρη διεύθυνση email και μπορεί να έχουν ένα όνομα, γενικά δεν θα μπορούν να διαχειριστούν τη χρέωση (αλλά μπορεί να τους δοθεί πρόσβαση σε αυτήν).

aws organizations create-account --account-name testingaccount --email testingaccount@lalala1233fr.com

Μονάδες Οργάνωσης

Οι λογαριασμοί μπορούν να ομαδοποιηθούν σε Μονάδες Οργάνωσης (OU). Με αυτόν τον τρόπο, μπορείτε να δημιουργήσετε πολιτικές για τη Μονάδα Οργάνωσης που θα εφαρμοστούν σε όλους τους λογαριασμούς-παιδιά. Σημειώστε ότι μια OU μπορεί να έχει άλλες OU ως παιδιά.

# You can get the root id from aws organizations list-roots
aws organizations create-organizational-unit --parent-id r-lalala --name TestOU

Πολιτική Έλεγχου Υπηρεσίας (SCP)

Μια πολιτική έλεγχου υπηρεσίας (SCP) είναι μια πολιτική που καθορίζει τις υπηρεσίες και τις ενέργειες που οι χρήστες και οι ρόλοι μπορούν να χρησιμοποιήσουν στους λογαριασμούς που επηρεάζει η SCP. Οι SCP είναι παρόμοιες με τις πολιτικές δικαιωμάτων IAM, εκτός από το γεγονός ότι δεν χορηγούν κανένα δικαίωμα. Αντ' αυτού, οι SCP καθορίζουν τα μέγιστα δικαιώματα για μια οργάνωση, μια οργανωτική μονάδα (OU) ή έναν λογαριασμό. Όταν επισυνάπτετε μια SCP στη ρίζα της οργάνωσής σας ή σε μια OU, η SCP περιορίζει τα δικαιώματα για τις οντότητες στους λογαριασμούς μελών.

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

Σημειώστε ότι οι SCP περιορίζουν μόνο τους αρχέγονους στον λογαριασμό, οπότε άλλοι λογαριασμοί δεν επηρεάζονται. Αυτό σημαίνει ότι η απαγόρευση μιας SCP για το s3:GetObject δεν εμποδίζει τους ανθρώπους από το να έχουν πρόσβαση σε ένα δημόσιο κάδο S3 στον λογαριασμό σας.

Παραδείγματα SCP:

  • Απαγόρευση του ριζικού λογαριασμού εντελώς

  • Επιτροπή μόνο συγκεκριμένων περιοχών

  • Επιτροπή μόνο εγκεκριμένων υπηρεσιών

  • Απαγόρευση της απενεργοποίησης των GuardDuty, CloudTrail και S3 Public Block Access

  • Απαγόρευση της διαγραφής ή τροποποίησης ρόλων ασφάλειας/ανταπόκρισης σε περιστατικά.

  • Απαγόρευση της διαγραφής αντιγράφων ασφαλείας.

  • Απαγόρευση της δημιουργίας χρηστών IAM και κλειδιών πρόσβασης

Βρείτε παραδείγματα JSON στο https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples.html

ARN

Amazon Resource Name είναι το μοναδικό όνομα που έχει κάθε πόρος μέσα στο AWS, συνίσταται από:

arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env

Σημείωση ότι υπάρχουν 4 διαμερίσματα στο AWS αλλά μόνο 3 τρόποι για να τα καλέσετε:

  • AWS Standard: aws

  • AWS China: aws-cn

  • AWS US public Internet (GovCloud): aws-us-gov

  • AWS Secret (US Classified): aws

IAM - Διαχείριση Ταυτότητας και Πρόσβασης

Το IAM είναι η υπηρεσία που θα σας επιτρέψει να διαχειρίζεστε την Ταυτοποίηση, την Εξουσιοδότηση και τον Έλεγχο Πρόσβασης μέσα στον λογαριασμό σας στο AWS.

  • Ταυτοποίηση - Ορισμός μιας ταυτότητας και η επαλήθευση αυτής της ταυτότητας. Αυτή η διαδικασία μπορεί να χωριστεί σε: Αναγνώριση και επαλήθευση.

  • Εξουσιοδότηση - Καθορίζει τι μπορεί να έχει πρόσβαση μια ταυτότητα σε ένα σύστημα αφού έχει γίνει επαληθευμένη.

  • Έλεγχος Πρόσβασης - Η μέθοδος και η διαδικασία με την οποία γίνεται η παροχή πρόσβασης σε ένα ασφαλές πόρο.

Το IAM μπορεί να καθοριστεί από την ικανότητά του να διαχειρίζεται, να ελέγχει και να διοικεί τους μηχανισμούς ταυτοποίησης, εξουσιοδότησης και ελέγχου πρόσβασης των ταυτοτήτων στους πόρους σας εντός του λογαριασμού σας στο AWS.

Όταν δημιουργείτε για πρώτη φορά ένα λογαριασμό Amazon Web Services (AWS), ξεκινάτε με ένα μόνο σημείο εισόδου που έχει πλήρη πρόσβαση σε όλες τις υπηρεσίες και πόρους του AWS στον λογαριασμό. Αυτός είναι ο λογαριασμός χρήστης ρίζας του AWS και έχει πρόσβαση με την διεύθυνση email και τον κωδικό πρόσβασης που χρησιμοποιήσατε για να δημιουργήσετε τον λογαριασμό.

Σημειώστε ότι ένας νέος διαχειριστής χρήστης θα έχει λιγότερες άδειες από τον χρήστη ρίζα.

Από πλευράς ασφάλειας, συνιστάται να δημιουργήσετε άλλους χρήστες και να αποφύγετε τη χρήση αυτού.

Ένας χρήστης IAM είναι μια οντότητα που δημιουργείτε στο AWS για να αντιπροσωπεύει το άτομο ή την εφαρμογή που το χρησιμοποιεί για να αλληλεπιδρά με το AWS. Ένας χρήστης στο AWS αποτελείται από ένα όνομα και διαπιστευτήρια (κωδικό πρόσβασης και έως δύο κλειδιά πρόσβασης).

Όταν δημιουργείτε έναν χρήστη IAM, του παρέχετε άδειες καθιστώντας τον μέλος μιας ομάδας χρηστών που έχει επισυναφθεί κατάλληλες πολιτικές άδειας (συνιστάται), ή επισυνάπτοντας απευθείας πολιτικές στον χρήστη.

Οι χρήστες μπορούν να έχουν ενεργοποιημένο το MFA για σύνδεση μέσω της κονσόλας. Τα διαπιστευτήρια API των χρηστών με ενεργοποιημένο MFA δεν προστατεύονται από MFA. Εάν θέλετε να περιορίσετε την πρόσβαση των κλειδιών API ενός χρήστη χρησιμοποιώντας MFA, πρέπει να υποδείξετε στην πολιτική ότι για να εκτελέσετε ορισμένες ενέργειες πρέπει να υπάρχει MFA (παράδειγμα εδώ).

CLI

  • Αναγνωριστικό κλειδιού πρόσβασης: 20 τυχαίους κεφαλαίους αλφαριθμητικούς χαρακτήρες όπως AKHDNAPO86BSHKDIRYT

  • Μυστικό αναγνωριστικό κλειδιού πρόσβασης: 40 τυχαίους χαρακτήρες κεφαλαία και πεζά γράμματα: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Δεν είναι δυνατή η ανάκτηση χαμένων μυστικών αναγνωριστικών κλειδιών πρόσβασης).

Κάθε φορά που χρειάζεστε να αλλάξετε το Αναγνωριστικό Κλειδί Πρόσβασης αυτή είναι η διαδικασία που πρέπει να ακολουθήσετε: Δημιουργήστε ένα νέο αναγνωριστικό κλειδί πρόσβασης -> Εφαρμόστε το νέο κλειδί στο σύστημα/εφαρμογή -> σημειώστε το αρχικό ως ανενεργό -> Δοκιμάστε και επαληθεύστε ότι το νέο αναγνωριστικό κλειδί πρόσβασης λειτουργεί -> Διαγράψτε το παλιό αναγνωριστικό κλειδί

MFA - Πολυπαραγοντική Ταυτοποίηση

Χρησιμοποιείται για να δημιουργήσει ένα επιπλέον παράγοντα για ταυτοποίηση πέρα ​​από τις υπάρχουσες μεθόδους σας, όπως ο κωδικός πρόσβασης, δημιουργώντας έτσι ένα πολυπαραγοντικό επίπεδο ταυτοποίησης. Μπορείτε να χρησιμοποιήσετε μια **εικ

aws sts get-session-token --serial-number <arn_device> --token-code <code>

Όπως αναφέρεται εδώ, υπάρχουν πολλές περιπτώσεις όπου δεν μπορεί να χρησιμοποιηθεί το MFA.

Μια ομάδα χρηστών IAM είναι ένας τρόπος για να συνδέσετε πολιτικές σε πολλούς χρήστες ταυτόχρονα, πράγμα που μπορεί να διευκολύνει τη διαχείριση των δικαιωμάτων για αυτούς τους χρήστες. Οι ρόλοι και οι ομάδες δεν μπορούν να είναι μέρος μιας ομάδας.

Μπορείτε να συνδέσετε μια πολιτική που βασίζεται στην ταυτότητα σε μια ομάδα χρηστών έτσι ώστε όλοι οι χρήστες στην ομάδα χρηστών να λαμβάνουν τα δικαιώματα της πολιτικής. Δεν μπορείτε να αναγνωρίσετε μια ομάδα χρηστών ως Principal σε μια πολιτική (όπως μια πολιτική που βασίζεται στον πόρο) επειδή οι ομάδες σχετίζονται με τα δικαιώματα, όχι με την πιστοποίηση, και οι αρχές είναι πιστοποιημένες οντότητες IAM.

Ορισμένα σημαντικά χαρακτηριστικά των ομάδων χρηστών είναι:

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

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

  • Δεν υπάρχει προεπιλεγμένη ομάδα χρηστών που να περιλαμβάνει αυτόματα όλους τους χρήστες στο λογαριασμό AWS. Εάν θέλετε να έχετε μια ομάδα χρηστών όπως αυτή, πρέπει να τη δημιουργήσετε και να αναθέσετε κάθε νέο χρήστη σε αυτήν.

  • Ο αριθμός και το μέγεθος των πόρων IAM σε ένα λογαριασμό AWS, όπως ο αριθμός των ομάδων και ο αριθμός των ομάδων στις οποίες μπορεί να ανήκει ένας χρήστης, είναι περιορισμένα. Για περισσότερες πληροφορίες, ανατρέξτε στους περιορισμούς του IAM και του AWS STS.

Ένας ρόλος IAM είναι πολύ παρόμοιος με έναν χρήστη, καθώς είναι μια ταυτότητα με πολιτικές δικαιωμάτων που καθορίζουν τι μπορεί και τι δεν μπορεί να κάνει στο AWS. Ωστόσο, ένας ρόλος δεν έχει καμία διαπιστευτικά (κωδικό πρόσβασης ή κλειδιά πρόσβασης) που συσχετίζονται με αυτόν. Αντί να συσχετίζεται μοναδικά με ένα άτομο, ένας ρόλος προορίζεται να είναι διαθέσιμος για οποιονδήποτε τον χρειάζεται (και έχει αρκετά δικαιώματα). Ένας χρήστης IAM μπορεί να υιοθετήσει έναν ρόλο για να αναλάβει προσωρινά διαφορετικά δικαιώματα για μια συγκεκριμένη εργασία. Ένας ρόλος μπορεί να ανατεθεί σε έναν φεντερέρ που συνδέεται χρησιμοποιώντας έναν εξωτερικό πάροχο ταυτότητας αντί του IAM.

Ένας ρόλος IAM αποτελείται από δύο είδη πολιτικών: Μια πολιτική εμπιστοσύνης, η οποία δεν μπορεί να είναι κενή, καθορίζοντας ποιος μπορεί να υιοθετήσει τον ρόλο, και μια πολιτική δικαιωμάτων, η οποία δεν μπορεί να είναι κενή, καθορίζοντας τι μπορεί να αποκτήσει πρόσβαση.

Υπηρεσία AWS Security Token (STS)

Η υπηρεσία AWS Security Token (STS) είναι μια υπηρεσία web που διευκολύνει τη χορήγηση προσωρινών διαπιστευτηρίων με περιορισμένα δικαιώματα. Είναι ειδικά σχεδιασμένη για:

Τα προσωρινά διαπιστευτήρια χρησιμοποιούνται κυρίως με τους ρόλους IAM, αλλά υπάρχουν επίσης και άλλες χρήσεις. Μπορείτε να ζητήσετε προσωρινά διαπιστευτήρια που έχουν έναν περιορισμένο σύνολο δικαιωμάτων από αυτά του τυπικού χρήστη IAM σας. Αυτό αποτρέπει την ακούσια εκτέλεση εργασιών που δεν επιτρέπονται από τα περιορισμένα διαπιστευτήρια. Ένα πλεονέκτημα των προσωρινών διαπιστευτηρίων είναι ότι λήγουν αυτόματα μετά από έναν ορισμένο χρονικό διάσ

{
"Version": "2012-10-17",  //Version of the policy
"Statement": [  //Main element, there can be more than 1 entry in this array
{
"Sid": "Stmt32894y234276923" //Unique identifier (optional)
"Effect": "Allow", //Allow or deny
"Action": [  //Actions that will be allowed or denied
"ec2:AttachVolume",
"ec2:DetachVolume"
],
"Resource": [ //Resource the action and effect will be applied to
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:instance/*"
],
"Condition": { //Optional element that allow to control when the permission will be effective
"ArnEquals": {"ec2:SourceInstanceARN": "arn:aws:ec2:*:*:instance/instance-id"}
}
}
]
}

Τα παγκόσμια πεδία που μπορούν να χρησιμοποιηθούν για συνθήκες σε οποιαδήποτε υπηρεσία περιγράφονται εδώ. Τα συγκεκριμένα πεδία που μπορούν να χρησιμοποιηθούν για συνθήκες ανά υπηρεσία περιγράφονται εδώ.

Ενσωματωμένες Πολιτικές

Αυτού του είδους οι πολιτικές είναι άμεσα ανατεθειμένες σε έναν χρήστη, ομάδα ή ρόλο. Στη συνέχεια, δεν εμφανίζονται στη λίστα των πολιτικών όπως οι άλλες. Οι ενσωματωμένες πολιτικές είναι χρήσιμες εάν θέλετε να διατηρήσετε μια αυστηρή μονοσήμαντη σχέση μεταξύ μιας πολιτικής και της ταυτότητας στην οποία εφαρμόζεται. Για παράδειγμα, θέλετε να είστε σίγουροι ότι οι άδειες σε μια πολιτική δεν ανατίθενται κατά λάθος σε μια άλλη ταυτότητα εκτός από αυτήν που προορίζονται. Όταν χρησιμοποιείτε μια ενσωματωμένη πολιτική, οι άδειες στην πολιτική δεν μπορούν να ανατεθούν κατά λάθος σε λάθος ταυτότητα. Επιπλέον, όταν χρησιμοποιείτε την AWS Management Console για να διαγράψετε αυτήν την ταυτότητα, οι πολιτικές που ενσωματώνονται στην ταυτότητα διαγράφονται επίσης. Αυτό συμβαίνει επειδή αποτελούν μέρος του κύριου οντότητας.

Πολιτικές Κάδου Πόρων

Αυτές είναι πολιτικές που μπορούν να καθοριστούν σε πόρους. Όχι όλοι οι πόροι του AWS τις υποστηρίζουν.

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

Όρια IAM

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

Ένα όριο είναι απλώς μια πολιτική που είναι συνδεδεμένη με έναν χρήστη και υποδεικνύει το μέγιστο επίπεδο άδειας που μπορεί να έχει ο χρήστης ή ο ρόλος. Έτσι, ακόμη κι αν ο χρήστης έχει διαχειριστική πρόσβαση, αν το όριο υποδεικνύει ότι μπορεί μόνο να διαβάσει S3 κάδους, αυτό είναι το μέγιστο που μπορεί να κάνει.

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

Πολιτικές Συνεδρίας

Μια πολιτική συνεδρίας είναι μια πολιτική που ορίζεται όταν ένας ρόλος υποθέτεται κάπως. Αυτό θα είναι σαν ένα όριο IAM για αυτήν τη συνεδρία: Αυτό σημαίνει ότι η πολιτική συνεδρίας δεν χορηγεί άδειες αλλά περιορίζει τις άδειες στις που αναφέρονται στην πολιτική (με τις μέγιστες άδειες να είναι αυτές που έχει ο ρόλος).

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

aws sts assume-role \
--role-arn <value> \
--role-session-name <value> \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]

Σημείωση ότι από προεπιλογή το AWS μπορεί να προσθέσει πολιτικές συνεδρίας στις συνεδρίες που θα δημιουργηθούν λόγω τρίτων αιτιών. Για παράδειγμα, στους ανεξουσιοδότητους ρόλους cognito από προεπιλογή (χρησιμοποιώντας ενισχυμένη πιστοποίηση), το AWS θα δημιουργήσει διαπιστευτήρια συνεδρίας με πολιτική συνεδρίας που περιορίζει τις υπηρεσίες που μπορεί να έχει πρόσβαση η συνεδρία στην ακόλουθη λίστα.

Επομένως, αν σε κάποιο σημείο αντιμετωπίσετε το σφάλμα "... επειδή καμία πολιτική συνεδρίας δεν επιτρέπει το ...", και ο ρόλος έχει πρόσβαση για να εκτελέσει την ενέργεια, είναι επειδή υπάρχει μια πολιτική συνεδρίας που το εμποδίζει.

Συνολική Ταυτότητα

Η συνολική ταυτότητα επιτρέπει σε χρήστες από εξωτερικούς παρόχους ταυτότητας να έχουν πρόσβαση σε πόρους AWS με ασφάλεια χωρίς να χρειάζεται να παρέχουν διαπιστευτήρια χρήστη AWS από έναν έγκυρο λογαριασμό IAM χρήστη. Ένα παράδειγμα ενός παρόχου ταυτότητας μπορεί να είναι ο εταιρικός σας Microsoft Active Directory(μέσω SAML) ή υπηρεσίες OpenID (όπως Google). Η συνολική πρόσβαση θα επιτρέψει στους χρήστες που βρίσκονται μέσα σε αυτήν να έχουν πρόσβαση στο AWS.

Για να ρυθμίσετε αυτήν την εμπιστοσύνη, δημιουργείται ένας IAM Identity Provider (SAML ή OAuth) που θα εμπιστεύεται την άλλη πλατφόρμα. Στη συνέχεια, τουλάχιστον ένας ρόλος IAM ανατίθεται (εμπιστευόμενος) στον Identity Provider. Αν ένας χρήστης από την εμπιστευμένη πλατφόρμα έχει πρόσβαση στο AWS, θα έχει πρόσβαση ως ο αναφερόμενος ρόλος.

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

Κέντρο Ταυτότητας IAM

Το Κέντρο Ταυτότητας IAM του AWS (διάδοχος του AWS Single Sign-On) επεκτείνει τις δυνατότητες της Διαχείρισης Ταυτότητας και Πρόσβασης (IAM) του AWS για να παρέχει ένα κεντρικό μέρος που συγκεντρώνει τη διαχείριση των χρηστών και της πρόσβασής τους στους λογαριασμούς AWS και τις εφαρμογές στο cloud.

Ο τομέας σύνδεσης θα είναι κάτι σαν <user_input>.awsapps.com.

Για να συνδεθούν οι χρήστες, υπάρχουν 3 πηγές ταυτότητας που μπορούν να χρησιμοποιηθούν:

  • Κατάλογος Κέντρου Ταυτότητας: Κανονικοί χρήστες AWS

  • Ενεργός Κατάλογος: Υποστηρίζει διάφορους συνδέσμους

  • Εξωτερικός Πάροχος Ταυτότητας: Όλοι οι χρήστες και οι ομάδες προέρχονται από εξωτερικό Πάροχο Ταυτότητας (IdP)

Στην απλούστερη περίπτωση του καταλόγου ταυτότητας του Κέντρου Ταυτότητας, το Κέντρο Ταυτότητας θα έχει μια λίστα χρηστών και ομάδων και θα μπορεί να τους αναθέτει πολιτικές σε οποιονδήποτε λογαριασμό του οργανισμο

[default]
aws_access_key_id = AKIA5ZDCUJHF83HDTYUT
aws_secret_access_key = uOcdhof683fbOUGFYEQug8fUGIf68greoihef

[Admin]
aws_access_key_id = AKIA8YDCu7TGTR356SHYT
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
region = eu-west-2

Εάν χρειάζεστε πρόσβαση σε διάφορους λογαριασμούς AWS και ο προφίλ σας έχει δοθεί πρόσβαση για να υποθέσετε έναν ρόλο μέσα σε αυτούς τους λογαριασμούς, δεν χρειάζεται να καλείτε χειροκίνητα το STS κάθε φορά (aws sts assume-role --role-arn <role-arn> --role-session-name sessname) και να ρυθμίζετε τα διαπιστευτήρια.

Μπορείτε να χρησιμοποιήσετε το αρχείο ~/.aws/config για να υποδείξετε ποιους ρόλους να υποθέσετε, και στη συνέχεια να χρησιμοποιήσετε την παράμετρο --profile όπως συνήθως (η assume-role θα εκτελεστεί διαφανώς για τον χρήστη). Ένα παράδειγμα αρχείου ρυθμίσεων:

[profile acc2]
region=eu-west-2
role_arn=arn:aws:iam::<account-id>:role/<role-path>
role_session_name = <session_name>
source_profile = <profile_with_assume_role>
sts_regional_endpoints = regional

Με αυτό το αρχείο διαμόρφωσης μπορείτε να χρησιμοποιήσετε το aws cli ως εξής:

aws --profile acc2 ...

Εάν ψάχνετε κάτι παρόμοιο με αυτό αλλά για τον περιηγητή, μπορείτε να ελέγξετε την επέκταση AWS Extend Switch Roles.

Αναφορές

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated