Τι είναι τα μυστικά του GitHub και πώς τα χρησιμοποιείτε;

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

Τι είναι τα μυστικά του GitHub;

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

Αυτό είναι χρήσιμο σε πολλές περιπτώσεις όπου ο κώδικας μπορεί να είναι δημόσιος, αλλά η δέσμη ενεργειών Actions πρέπει να γίνει έλεγχος ταυτότητας με κάποια υπηρεσία τρίτου μέρους. Για παράδειγμα, εάν φιλοξενείτε δυαδικά αρχεία σε κάδους Amazon S3, θα χρειαστεί να δώσετε στο σενάριο το διακριτικό πρόσβασης για εγγραφή στο χώρο αποθήκευσης AWS. Φυσικά, δεν θέλετε να δώσετε σε κανέναν που βλέπει το αποθετήριο την άδεια να αντικαταστήσει τα περιεχόμενα του κάδου. Η χρήση μυστικού περιορίζει την πρόσβαση και προστατεύει επίσης το κλειδί από τυχαία διαρροή.

  • Τα μυστικά αποθετηρίου ισχύουν για ένα μόνο αποθετήριο. Θα χρειαστεί να τις ορίσετε από τον πίνακα ρυθμίσεων του αποθετηρίου, στον οποίο, στη συνέχεια, έχετε πρόσβαση όπως οι μεταβλητές περιβάλλοντος στις εκδόσεις GitHub Actions.
  • Τα μυστικά των οργανισμών GitHub θα ισχύουν σε όλα τα αποθετήρια εντός αυτού του οργανισμού, παρέχοντας έναν εύκολο τρόπο κεντρικής διαχείρισης κλειδιών. Έχουν οριστεί από τις ρυθμίσεις του οργανισμού.
  • Τα περιβαλλοντικά μυστικά ισχύουν για συγκεκριμένα

    Περιβάλλοντα GitHub

    μέσα στο repo, όπως

    develop

    και

    production

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

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

Μπορείτε να αποθηκεύσετε έως και 1.000 μυστικά οργανισμού, 100 μυστικά αποθετηρίου και 100 μυστικά περιβάλλοντος. Ωστόσο, τα μυστικά περιορίζονται σε μέγεθος 64 Kb

υπάρχουν λύσεις

σε αυτόν τον περιορισμό. Μπορείτε επίσης να αποθηκεύσετε δυαδικά δεδομένα ως κωδικοποιημένες συμβολοσειρές Base64.

Είναι ακόμα δυνατό να διαρρεύσουν από το σενάριο Actions εάν, για παράδειγμα, τα εκτυπώσατε στην κονσόλα με μια εντολή όπως

echo

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

echo

.

Χρήση του GitHub Secrets

Για να ορίσετε ένα μυστικό σε όλο το χώρο αποθήκευσης, θα πρέπει να μεταβείτε στον πίνακα ρυθμίσεων για το αποθετήριο και να κάνετε κλικ στα Μυστικά > Ενέργειες. Μπορείτε επίσης να ορίσετε μυστικά για το GitHub Codespace και το Dependabot, εάν τα χρησιμοποιείτε.

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

Η σύμβαση ονομασίας για τα μυστικά ονόματα είναι κεφαλαία με κάτω παύλες, αλλιώς γνωστή ως “Screaming Snake case”, αλλά αυτό δεν επιβάλλεται με τίποτα.

Στη συνέχεια, στο σενάριο Ενέργειες, μπορείτε να το αναφέρετε διαφεύγοντας από αυτό ως μεταβλητή YAML, όπως:

${{ secrets.SECRET_NAME }}

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

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

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

Τα μυστικά της οργάνωσης

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

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

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


HowToGeek.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.