Ασφάλεια

    Διαχειριστής μυστικών στο cloud: τι είναι, πώς τον επιλέγετε και τι δεν καλύπτει

    Τι αποθηκεύει και προστατεύει ένας διαχειριστής μυστικών στο cloud, πώς διαλέγετε ανάμεσα σε AWS, Google, Azure, Vault, πώς τον εγκαθιστάτε, τι κενό αφήνει.

    LinkPilot Team · Οι άνθρωποι που φτιάχνουν και λειτουργούν το LinkPilot στην TetraCore, LLC · Σχετικά με το LinkPilot

    Κάθε ομάδα φτάνει κάποια στιγμή στο σημείο όπου τα διαπιστευτήρια βρίσκονται σε υπερβολικά πολλά σημεία: ένα .env σε κάθε laptop, ένα καρφιτσωμένο μήνυμα στο Slack, ένα υπολογιστικό φύλλο με όνομα «logins», μια μεταβλητή CI που όρισε κάποιος πριν από δύο χρόνια. Ένας διαχειριστής μυστικών στο cloud (cloud secret manager) υπάρχει για να τα συγκεντρώσει όλα αυτά σε ένα σημείο, κρυπτογραφημένο, με έλεγχο πρόσβασης και καταγραφή.

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

    Τι κάνει ένας διαχειριστής μυστικών στο cloud

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

    • Κρυπτογραφημένη αποθήκευση για τα αποθηκευμένα δεδομένα, με κλειδιά που φυλάσσονται στην υπηρεσία διαχείρισης κλειδιών του παρόχου, και TLS κατά τη μεταφορά.
    • Πρόσβαση με βάση την ταυτότητα: κάθε μυστικό έχει μια πολιτική που ορίζει ποιοι χρήστες, ρόλοι ή φόρτοι εργασίας μπορούν να το διαβάσουν, να το γράψουν ή να το αλλάξουν. Μια εφαρμογή ταυτοποιείται με τη δική της ταυτότητα, όχι με έναν κύριο κωδικό πρόσβασης.
    • Καταγραφή ενεργειών για κάθε ανάγνωση, εγγραφή και εναλλαγή, με το ποιος, τι και πότε.
    • Εκδόσεις και εναλλαγή (rotation): μια νέα τιμή μπορεί να προετοιμαστεί, οι εφαρμογές να περάσουν σε αυτή και η παλιά έκδοση να αποσυρθεί. Πολλοί διαχειριστές αλλάζουν αυτόματα τα διαπιστευτήρια των βάσεων δεδομένων.
    • Ανάκτηση κατά την εκτέλεση: η εφαρμογή παίρνει το μυστικό όταν ξεκινά ή όταν το χρειάζεται, οπότε η τιμή δεν γράφεται ποτέ σε κώδικα, images ή αρχεία ρυθμίσεων.

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

    Πώς επιλέγετε

    Η απόφαση συνήθως εξαρτάται από το πού τρέχουν οι φόρτοι εργασίας σας και σε πόσα cloud βρίσκεστε.

    ΕπιλογήΤαιριάζει σεΠροσοχή σε
    AWS Secrets Manager / Parameter StoreΦόρτους εργασίας που είναι ήδη στο AWS, με ταυτότητες IAM παντούΧρέωση ανά μυστικό στο Secrets Manager. Το Parameter Store είναι φθηνότερο για απλές τιμές
    Google Secret ManagerΈργα GCP, φόρτους εργασίας σε Cloud Run και GKEΕπιλογές περιφερειακής αναπαραγωγής
    Azure Key VaultΦόρτους εργασίας στο Azure, ανάγκες κύκλου ζωής πιστοποιητικώνΞεχωριστά vault ανά περιβάλλον, για να μένουν απλές οι πολιτικές
    HashiCorp VaultΠολλά cloud ή εγκατάσταση on-prem, δυναμικά διαπιστευτήρια μικρής διάρκειαςΌτι το λειτουργείτε εσείς, εκτός αν χρησιμοποιείτε τη φιλοξενούμενη έκδοση
    Doppler, Infisical, 1Password Secrets AutomationΜικρές ομάδες που θέλουν εύχρηστο για προγραμματιστές συγχρονισμό με πολλές πλατφόρμεςΈναν ακόμη πάροχο στην αλυσίδα εμπιστοσύνης

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

    Εγκατάσταση χωρίς έργο έξι μηνών

    1. Κάντε απογραφή και ορίστε υπεύθυνους. Καταγράψτε κάθε μυστικό, πού βρίσκεται, τι το χρησιμοποιεί και ποιος είναι υπεύθυνος. Ο υπεύθυνος αποφασίζει την πολιτική εναλλαγής και τη λίστα πρόσβασης.
    2. Ορίστε πρώτα τις ταυτότητες. Δημιουργήστε τους ρόλους ή τους λογαριασμούς υπηρεσίας για κάθε φόρτο εργασίας και περιβάλλον πριν μεταφέρετε έστω και μία τιμή. Όλο το νόημα βρίσκεται στις πολιτικές πρόσβασης που λένε «αυτή η υπηρεσία, αυτό το περιβάλλον, μόνο ανάγνωση».
    3. Μεταφέρετε με σειρά κινδύνου. Πρώτα τους κωδικούς πρόσβασης των βάσεων δεδομένων παραγωγής και τα κλειδιά πληρωμών, μετά τα κλειδιά API τρίτων και στο τέλος όλα τα υπόλοιπα. Αφαιρέστε κάθε τιμή από τον κώδικα, τις μεταβλητές CI και τα αρχεία ρυθμίσεων καθώς τη μεταφέρετε, και αλλάξτε την κατά τη μεταφορά, γιατί η παλιά τιμή έχει ήδη αντιγραφεί εδώ και εκεί.
    4. Αλλάξτε τον τρόπο που οι εφαρμογές διαβάζουν τα μυστικά. Αντικαταστήστε τις τιμές γραμμένες μέσα στον κώδικα και τα αρχεία περιβάλλοντος με μια κλήση στο SDK του διαχειριστή κατά την εκκίνηση, ή περάστε τις μέσω της εγγενούς ενσωμάτωσης της πλατφόρμας.
    5. Ενεργοποιήστε την εναλλαγή για ό,τι μπορεί ο διαχειριστής να αλλάξει μόνος του, και γράψτε μια συνάρτηση εναλλαγής ή ένα runbook για τα υπόλοιπα.
    6. Ορίστε ειδοποιήσεις για το ασυνήθιστο. Μια ανάγνωση μυστικού από νέα ταυτότητα, μια απότομη αύξηση στις αναγνώσεις ή μια ανάγνωση από περιοχή όπου δεν κάνετε ανάπτυξη αξίζει άμεση ειδοποίηση.

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

    Το κενό που δεν καλύπτει ένας διαχειριστής μυστικών

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

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

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

    Μια σύντομη λίστα ελέγχου

    • Κάθε μυστικό έχει υπεύθυνο, πολιτική πρόσβασης και κανόνα εναλλαγής.
    • Οι φόρτοι εργασίας ταυτοποιούνται με τη δική τους ταυτότητα, ποτέ με κοινόχρηστο κλειδί.
    • Μετά τη μετάβαση, κανένα μυστικό δεν υπάρχει σε κώδικα, images, μεταβλητές CI ή συνομιλίες.
    • Οι αναγνώσεις καταγράφονται κάπου όπου κάποιος πραγματικά κοιτάζει.
    • Οι άνθρωποι έξω από το σύστημα ταυτοτήτων λαμβάνουν μυστικά μέσω συνδέσμου μίας χρήσης, όχι μέσα σε μήνυμα.

    Κάντε αυτά τα πέντε και ο διαχειριστής μυστικών παύει να είναι απλώς ένα προϊόν που αγοράσατε: γίνεται ο λόγος που τα διαπιστευτήρια σταμάτησαν να διαρρέουν.

    Εργαλεία για αυτό το άρθρο

    Συχνές ερωτήσεις

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

    Κρυπτογραφείται στο πρόγραμμα περιήγησής σας, εμφανίζεται μία φορά και μετά καταστρέφεται. Χωρίς λογαριασμό.

    Δημιουργία μυστικού συνδέσμου

    Διαβάστε επίσης

    Ασφάλεια

    AWS access key και secret key: δημιουργία, χρήση, εναλλαγή και ασφαλής αποστολή

    Access key ID και secret access key του AWS: γιατί το secret εμφανίζεται μία φορά, πώς κάνετε εναλλαγή, τι κάνετε σε διαρροή, πώς το στέλνετε με ασφάλεια.

    Ασφάλεια

    Πώς στέλνετε διαπιστευτήρια SSH με σύνδεσμο που λήγει

    Προτιμήστε το δημόσιο κλειδί του παραλήπτη. Αν πρέπει να σταλεί ιδιωτικό κλειδί ή κωδικός, στείλτε σύνδεσμο μίας χρήσης με λήξη και τα υπόλοιπα χωριστά.

    Ασφάλεια

    Πώς στέλνετε στοιχεία σύνδεσης με ασφάλεια χωρίς email

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