Μέρος 1 από 3
Το 2011, η Amazon ανακοίνωσε τη διαθεσιμότητα υποστήριξης AWS Identity & Access Management (IAM) για το CloudFront. Το IAM ξεκίνησε το 2010 και περιλάμβανε υποστήριξη S3. Η Διαχείριση Ταυτότητας και Πρόσβασης AWS (IAM) σας επιτρέπει να έχετε πολλούς χρήστες μέσα σε ένα λογαριασμό AWS. Αν έχετε χρησιμοποιήσει τις υπηρεσίες Amazon Web Services (AWS), γνωρίζετε ότι ο μόνος τρόπος για να διαχειριστείτε περιεχόμενο στο AWS περιελάμβανε την παροχή του ονόματος χρήστη και του κωδικού πρόσβασης ή των κλειδιών πρόσβασης.
Αυτό είναι μια πραγματική ανησυχία για την ασφάλεια για τους περισσότερους από εμάς. Το IAM εξαλείφει την ανάγκη για κοινή χρήση κωδικών πρόσβασης και κλειδιών πρόσβασης.
Η συνεχής αλλαγή του κύριου κωδικού πρόσβασης AWS ή η δημιουργία νέων κλειδιών είναι απλώς μια βρώμικη λύση όταν ένα μέλος του προσωπικού θα εξέλθει από την ομάδα μας. Το AWS Identity & Access Management (IAM) ήταν μια καλή αρχή που επέτρεπε στους μεμονωμένους λογαριασμούς χρήστη με μεμονωμένα κλειδιά. Ωστόσο, είμαστε χρήστης του S3 / CloudFront, επομένως παρακολουθούμε το CloudFront να προστεθεί στο IAM το οποίο τελικά συνέβη.
Βρήκα την τεκμηρίωση για την υπηρεσία αυτή να είναι λίγο διάσπαρτα. Υπάρχουν μερικά προϊόντα τρίτων που προσφέρουν μια σειρά υποστήριξης για τη διαχείριση ταυτότητας και πρόσβασης (IAM). Ωστόσο, οι προγραμματιστές είναι συνήθως οικονομικοί, γι 'αυτό έψαξα μια δωρεάν λύση για τη διαχείριση του IAM με την υπηρεσία Amazon S3.
Αυτό το άρθρο περνάει από τη διαδικασία της ρύθμισης της διεπαφής γραμμής εντολών που υποστηρίζει το IAM και τη ρύθμιση μιας ομάδας / χρήστη με πρόσβαση S3. Πρέπει να έχετε μια ρύθμιση του λογαριασμού AWS S3 του Amazon πριν ξεκινήσετε τη διαμόρφωση της διαχείρισης ταυτότητας και πρόσβασης (IAM).
Το άρθρο μου, με τη χρήση της υπηρεσίας απλής αποθήκευσης Amazon (S3), θα σας καθοδηγήσει στη διαδικασία δημιουργίας λογαριασμού AWS S3.
Ακολουθούν τα βήματα για τη δημιουργία και την εφαρμογή ενός χρήστη στο IAM. Αυτό είναι γραμμένο για Windows, αλλά μπορείτε να τσίμπημα για χρήση σε Linux, UNIX ή / και Mac OSX.
- Εγκαταστήστε και ρυθμίστε τις παραμέτρους της διεπαφής γραμμής εντολών (CLI)
- Δημιουργήστε μια ομάδα
- Δώστε πρόσβαση σε ομάδα στο S3 Bucket και το CloudFront
- Δημιουργία χρήστη και προσθήκη στην ομάδα
- Δημιουργία προφίλ σύνδεσης και δημιουργία κλειδιών
- Δοκιμή πρόσβασης
Εγκαταστήστε και ρυθμίστε τις παραμέτρους της διεπαφής γραμμής εντολών (CLI)
Το IAM Toolkit Line Toolkit είναι ένα πρόγραμμα Java που διατίθεται στα εργαλεία προγραμματιστών AWS του Amazon. Το εργαλείο σάς επιτρέπει να εκτελέσετε εντολές API IAM από ένα βοηθητικό πρόγραμμα κελύφους (DOS για Windows).
- Πρέπει να εκτελείτε Java 1.6 ή νεότερη έκδοση. Μπορείτε να κατεβάσετε την τελευταία έκδοση από το Java.com. Για να δείτε ποια έκδοση είναι εγκατεστημένη στο σύστημα των Windows, ανοίξτε τη Γραμμή εντολών και πληκτρολογήστε java -version. Αυτό προϋποθέτει ότι το java.exe βρίσκεται στο PATH σας.
- Κάντε λήψη του κιτ εργαλείων IAM CLI και αποσυμπιέστε κάπου στην τοπική μονάδα δίσκου.
- Υπάρχουν 2 αρχεία στη ρίζα του CLI toolkit που πρέπει να ενημερώσετε.
- aws-credential.template: Αυτό το αρχείο περιέχει τα διαπιστευτήρια σας AWS. Προσθέστε το AWSAccessKeyId και το AWSSecretKey, αποθηκεύστε και κλείστε το αρχείο.
- client-config.template : Πρέπει να ενημερώσετε μόνο αυτό το αρχείο εάν χρειάζεστε διακομιστή μεσολάβησης. Καταργήστε τις # υπογραφές και ενημερώστε το ClientProxyHost, το ClientProxyPort, το ClientProxyUsername και το ClientProxyPassword. Αποθηκεύστε και κλείστε το αρχείο.
- Το επόμενο βήμα περιλαμβάνει την προσθήκη μεταβλητών περιβάλλοντος. Μεταβείτε στον Πίνακα Ελέγχου | Ιδιότητες συστήματος | Προηγμένες ρυθμίσεις συστήματος Μεταβλητές περιβάλλοντος. Προσθέστε τις ακόλουθες μεταβλητές:
- AWS_IAM_HOME : Ρυθμίστε αυτή τη μεταβλητή στον κατάλογο όπου έχετε αποσυνδέσει το κιτ εργαλείων CLI. Εάν εκτελείτε τα Windows και τα αποσυμπιέσετε στη ρίζα της μονάδας C, η μεταβλητή θα είναι C: \ IAMCli-1.2.0.
- JAVA_HOME : Ορίστε αυτήν τη μεταβλητή στον κατάλογο όπου είναι εγκατεστημένη η Java. Αυτή θα είναι η θέση του αρχείου java.exe. Σε μια κανονική εγκατάσταση των Windows 7 της Java, αυτό θα ήταν κάτι σαν το C: \ Program Files (x86) \ Java \ jre6.
- AWS_CREDENTIAL_FILE : Ορίστε αυτήν τη μεταβλητή στη διαδρομή και το όνομα του αρχείου aws-credential.template που ενημερώσατε παραπάνω. Εάν εκτελείτε τα Windows και τα αποσυμπιέσετε στη ρίζα της μονάδας C, η μεταβλητή θα είναι C: \ IAMCli-1.2.0 \ aws-credential.template.
- CLIENT_CONFIG_FILE : Πρέπει να προσθέσετε αυτήν τη μεταβλητή περιβάλλοντος μόνο αν χρειάζεστε διακομιστή μεσολάβησης. Εάν εκτελείτε τα Windows και τα αποσυμπιέσετε στη ρίζα της μονάδας C, η μεταβλητή θα είναι C: \ IAMCli-1.2.0 \ client-config.template. Μην προσθέτετε αυτήν τη μεταβλητή εκτός αν το χρειάζεστε.
- Δοκιμάστε την εγκατάσταση μεταβαίνοντας στη Γραμμή εντολών και εισάγοντας iam-userlistbypath. Εφόσον δεν λάβετε κάποιο λάθος, καλό θα ήταν να πάτε.
Όλες οι εντολές του IAM μπορούν να εκτελεστούν από τη γραμμή εντολών. Όλες οι εντολές ξεκινούν με "iam-".
Δημιουργήστε μια ομάδα
Υπάρχουν 100 ομάδες που μπορούν να δημιουργηθούν για κάθε λογαριασμό AWS. Παρόλο που μπορείτε να ορίσετε δικαιώματα στο IAM σε επίπεδο χρήστη, η χρήση των ομάδων θα είναι η καλύτερη πρακτική. Εδώ είναι η διαδικασία για τη δημιουργία μιας ομάδας στο IAM.
- Η σύνταξη για τη δημιουργία μιας ομάδας είναι iam-groupcreate -g GROUPNAME [-p PATH] [-v] όπου οι -p και -v είναι επιλογές. Πλήρη τεκμηρίωση σχετικά με τη διεπαφή γραμμής εντολών διατίθεται στα Έγγραφα AWS.
- Εάν θελήσατε να δημιουργήσετε μια ομάδα που ονομάζεται "awesomeusers", θα μπείτε στο iam-groupcreate-g awesomeusers στη γραμμή εντολών.
- Μπορείτε να ελέγξετε ότι η ομάδα δημιουργήθηκε σωστά εισάγοντας iam-grouplistbypath στη γραμμή εντολών. Εάν δημιουργήσατε μόνο αυτήν την ομάδα, η έξοδος θα ήταν κάτι σαν "arn: aws: iam :: 123456789012: group / awesomeusers", όπου ο αριθμός είναι ο αριθμός λογαριασμού σας AWS.
Δώστε πρόσβαση σε ομάδα στο S3 Bucket και το CloudFront
Οι πολιτικές ελέγχουν τι μπορεί να κάνει η ομάδα σας στο S3 ή το CloudFront. Από προεπιλογή, η ομάδα σας δεν θα έχει πρόσβαση σε τίποτα στο AWS. Βρήκα την τεκμηρίωση για τις πολιτικές να είναι εντάξει, αλλά για να δημιουργήσω μια χούφτα πολιτικών, έκανα λίγη δοκιμή και λάθος για να φτιάξω τα πράγματα με τον τρόπο που ήθελα να δουλέψουν.
Έχετε μερικές επιλογές για τη δημιουργία πολιτικών.
Μια επιλογή είναι ότι μπορείτε να τα εισαγάγετε απευθείας στη Γραμμή εντολών. Δεδομένου ότι ίσως δημιουργείτε μια πολιτική και τροποποιείτε την, φάνηκε ευκολότερο να προσθέσετε την πολιτική σε ένα αρχείο κειμένου και στη συνέχεια να μεταφορτώσετε το αρχείο κειμένου ως παράμετρο με την εντολή iam-groupuploadpolicy. Εδώ είναι η διαδικασία που χρησιμοποιεί ένα αρχείο κειμένου και η φόρτωση στο IAM.
- Χρησιμοποιήστε κάτι παρόμοιο με το Σημειωματάριο και πληκτρολογήστε το ακόλουθο κείμενο και αποθηκεύστε το αρχείο:
{
"Δήλωση":[{
"Effect": "Επιτρέψτε",
"Ενέργεια": "s3: *",
"Πόρος":[
"arn: aws: s3 ::: BUCKETNAME",
"arn: aws: s3 ::: BUCKETNAME / *"]
},
{
"Effect": "Επιτρέψτε",
"Ενέργεια": "s3: ListAllMyBuckets",
"Πόρος": "arn: aws: s3 ::: *"
},
{
"Effect": "Επιτρέψτε",
"Ενέργεια": ["cloudfront: *"],
"Πόρος":"*"
}}
]
}} - Υπάρχουν 3 τμήματα αυτής της πολιτικής. Το Εφέ χρησιμοποιείται για να επιτρέψει ή να αποκλείσει κάποιον τύπο πρόσβασης. Η δράση είναι τα συγκεκριμένα πράγματα που μπορεί να κάνει η ομάδα. Ο Πόρος θα χρησιμοποιηθεί για να δώσει πρόσβαση σε μεμονωμένους κάδους.
- Μπορείτε να περιορίσετε τις Ενέργειες μεμονωμένα. Σε αυτό το παράδειγμα, το "Action": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion"], η ομάδα θα είναι σε θέση να απαριθμήσει τα περιεχόμενα κάδου και να κατεβάσει αντικείμενα.
- Η πρώτη ενότητα "Επιτρέπει" στην ομάδα να εκτελεί όλες τις ενέργειες S3 για τον κάδο "BUCKETNAME".
- Το δεύτερο τμήμα "Επιτρέπει" στην ομάδα να απαριθμήσει όλους τους κάδους στο S3. Χρειάζεται αυτό, ώστε να μπορείτε να δείτε την λίστα των κουβάδων αν χρησιμοποιήσετε κάτι σαν την κονσόλα AWS.
- Το τρίτο τμήμα δίνει στην ομάδα πλήρη πρόσβαση στο CloudFront.
Υπάρχουν πολλές επιλογές όταν έρχεστε σε πολιτικές IAM. Το Amazon διαθέτει ένα πραγματικά δροσερό εργαλείο που ονομάζεται γεννήτρια πολιτικής AWS. Αυτό το εργαλείο παρέχει ένα GUI όπου μπορείτε να δημιουργήσετε τις πολιτικές σας και να δημιουργήσετε τον πραγματικό κώδικα που χρειάζεστε για να εφαρμόσετε την πολιτική. Μπορείτε επίσης να ελέγξετε την ενότητα "Γλώσσα πολιτικής πρόσβασης" στην ηλεκτρονική τεκμηρίωση με την χρήση της ταυτότητας AWS και διαχείρισης της πρόσβασης.
Δημιουργία χρήστη και προσθήκη στην ομάδα
Η διαδικασία δημιουργίας νέου χρήστη και προσθήκης σε μια ομάδα για να τους παρέχετε πρόσβαση περιλαμβάνει μερικά βήματα.
- Η σύνταξη για τη δημιουργία ενός χρήστη είναι iam-usercreate -u USERNAME [-p PATH] [-g ΟΜΑΔΑ ...] [-k] [-v] όπου -p, -g, -k και -v είναι επιλογές. Πλήρη τεκμηρίωση σχετικά με τη διεπαφή γραμμής εντολών διατίθεται στα Έγγραφα AWS.
- Αν θέλετε να δημιουργήσετε ένα χρήστη "bob", θα εισάγετε, iam-usercreate -u bob -g awesomeusers στη γραμμή εντολών.
- Μπορείτε να ελέγξετε ότι ο χρήστης δημιουργήθηκε σωστά εισάγοντας iam-grouplistusers -g awesomeusers στη γραμμή εντολών. Εάν δημιουργήσατε μόνο αυτόν τον χρήστη, η έξοδος θα ήταν κάτι σαν "arn: aws: iam :: 123456789012: user / bob", όπου ο αριθμός είναι ο αριθμός λογαριασμού σας AWS.
Δημιουργία προφίλ σύνδεσης και δημιουργία κλειδιών
Σε αυτό το σημείο, έχετε δημιουργήσει έναν χρήστη, αλλά πρέπει να τους δώσετε έναν τρόπο να προσθέσετε και να αφαιρέσετε πραγματικά αντικείμενα από το S3.
Υπάρχουν 2 διαθέσιμες επιλογές για να παρέχετε στους χρήστες σας πρόσβαση στο S3 χρησιμοποιώντας το IAM. Μπορείτε να δημιουργήσετε ένα Προφίλ Σύνδεσης και να δώσετε στους χρήστες σας έναν κωδικό πρόσβασης. Μπορούν να χρησιμοποιήσουν τα διαπιστευτήριά τους για να συνδεθούν στην κονσόλα AWS του Amazon. Η άλλη επιλογή είναι να δώσετε στους χρήστες σας ένα κλειδί πρόσβασης και ένα μυστικό κλειδί. Μπορούν να χρησιμοποιήσουν αυτά τα πλήκτρα σε εργαλεία τρίτου μέρους όπως το S3 Fox, το CloudBerry S3 Explorer ή το S3 Browser.
Δημιουργία προφίλ σύνδεσης
Η δημιουργία ενός προφίλ σύνδεσης για τους χρήστες S3 τους παρέχει ένα όνομα χρήστη και έναν κωδικό πρόσβασης που μπορούν να χρησιμοποιήσουν για να συνδεθούν στην κονσόλα AWS του Amazon.
- Η σύνταξη για τη δημιουργία ενός προφίλ σύνδεσης είναι iam-useraddloginprofile -u USERNAME -p PASSWORD. Πλήρη τεκμηρίωση σχετικά με τη διεπαφή γραμμής εντολών διατίθεται στα Έγγραφα AWS.
- Αν θελήσατε να δημιουργήσετε ένα προφίλ σύνδεσης για τον χρήστη "bob", θα εισαγάγετε το iam-useraddloginprofile -u bob -p PASSWORD στη γραμμή εντολών.
- Μπορείτε να ελέγξετε ότι το προφίλ σύνδεσης δημιουργήθηκε σωστά εισάγοντας το iam-usergetloginprofile -u bob στη γραμμή εντολών. Αν είχατε δημιουργήσει ένα προφίλ σύνδεσης για το bob, η έξοδος θα ήταν κάτι σαν "Το προφίλ σύνδεσης υπάρχει για το χρήστη bob".
Δημιουργία κλειδιών
Η δημιουργία ενός κλειδιού AWS Secret Access και το αντίστοιχο αναγνωριστικό κλειδιού AWS Access Key θα επιτρέψουν στους χρήστες σας να χρησιμοποιούν λογισμικό τρίτου μέρους όπως αυτά που αναφέρθηκαν προηγουμένως. Λάβετε υπόψη ότι ως μέτρο ασφαλείας, μπορείτε να λάβετε αυτά τα κλειδιά μόνο κατά τη διαδικασία της προσθήκης του προφίλ χρήστη. Βεβαιωθείτε ότι αντιγράφετε και επικολλάτε την έξοδο από τη Γραμμή εντολών και αποθηκεύετε σε ένα αρχείο κειμένου. Μπορείτε να στείλετε το αρχείο στον χρήστη σας.
- Η σύνταξη για την προσθήκη κλειδιών για ένα χρήστη είναι iam-useraddkey [-u USERNAME]. Πλήρη τεκμηρίωση σχετικά με τη διεπαφή γραμμής εντολών διατίθεται στα Έγγραφα AWS.
- Αν θέλετε να δημιουργήσετε κλειδιά για τον χρήστη "bob", θα εισάγετε το iam-useraddkey -u bob στη γραμμή εντολών.
- Η εντολή θα εξάγει τα κλειδιά που θα έμοιαζαν με κάτι τέτοιο:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
Η πρώτη γραμμή είναι το αναγνωριστικό κλειδιού πρόσβασης και η δεύτερη γραμμή είναι το κλειδί μυστικής πρόσβασης. Χρειάζεστε και τα δύο για λογισμικό 3rd party.
Δοκιμή πρόσβασης
Τώρα που έχετε δημιουργήσει ομάδες / χρήστες IAM και έχετε δώσει πρόσβαση στις ομάδες χρησιμοποιώντας πολιτικές, θα πρέπει να ελέγξετε την πρόσβαση.
Πρόσβαση στην κονσόλα
Οι χρήστες σας μπορούν να χρησιμοποιήσουν το όνομα χρήστη και τον κωδικό πρόσβασης για να συνδεθούν στην Κονσόλα AWS. Ωστόσο, αυτή δεν είναι η κανονική σελίδα σύνδεσης κονσόλας που χρησιμοποιείται για τον κύριο λογαριασμό AWS.
Υπάρχει μια ειδική διεύθυνση URL που μπορείτε να χρησιμοποιήσετε, η οποία θα παρέχει μια φόρμα σύνδεσης μόνο για τον λογαριασμό σας στο Amazon AWS. Εδώ είναι η διεύθυνση URL που θα συνδεθεί στο S3 για τους χρήστες του IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
Το AWS-ACCOUNT-NUMBER είναι ο κανονικός σας αριθμός λογαριασμού AWS. Μπορείτε να το αποκτήσετε συνδέοντάς σας στην φόρμα εισόδου της Υπηρεσίας Web της Amazon. Συνδεθείτε και κάντε κλικ στην επιλογή Λογαριασμός | Δραστηριότητα λογαριασμού. Ο αριθμός λογαριασμού σας βρίσκεται στην επάνω δεξιά γωνία. Βεβαιωθείτε ότι έχετε αφαιρέσει τις παύλες. Η διεύθυνση URL θα φαίνεται κάπως https://123456789012.signin.aws.amazon.com/console/s3.
Χρησιμοποιώντας Κλειδιά Πρόσβασης
Μπορείτε να κατεβάσετε και να εγκαταστήσετε οποιοδήποτε από τα εργαλεία τρίτων που αναφέρονται ήδη σε αυτό το άρθρο. Καταχωρίστε το αναγνωριστικό κλειδιού πρόσβασης και το κλειδί μυστικής πρόσβασης ανά τεκμηρίωση του εργαλείου τρίτου μέρους.
Συνιστούμε ανεπιφύλακτα να δημιουργήσετε έναν αρχικό χρήστη και να τον δοκιμάσετε πλήρως ώστε να μπορούν να κάνουν ό, τι χρειάζονται για να κάνουν στο S3. Αφού επαληθεύσετε έναν από τους χρήστες σας, μπορείτε να προχωρήσετε στη ρύθμιση όλων των χρηστών του S3.
Πόροι
Εδώ είναι μερικοί πόροι για να σας δώσουμε μια καλύτερη κατανόηση της διαχείρισης ταυτότητας και πρόσβασης (IAM).
- Ξεκινώντας με το IAM
- Εργαλειοθήκη γραμμής εντολών IAM
- Amazon AWS Κονσόλα
- Γεννήτρια πολιτικής AWS
- Χρησιμοποιώντας την ταυτότητα AWS και τη διαχείριση της πρόσβασης
- Σημειώσεις έκδοσης IAM
- Φόρουμ συζητήσεων IAM
- IAM FAQs