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

Συγκρίνετε τι μπορεί να περιέχει κάθε αντίγραφο πριν αποφασίσετε τι θα αφαιρέσετε.

Το μοντέλο που παράγεται είναι άλλο έγγραφο

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

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

Τα μυστικά βρίσκονται σε περισσότερα σημεία από το πεδίο του κλειδιού

Ξεκινήστε από το προφανές: ιδιωτικά κλειδιά, προ-κοινοποιημένα κλειδιά, διακριτικά, κωδικοί πρόσβασης και διευθύνσεις URL σύνδεσης που ενσωματώνουν διαπιστευτήρια. Μετά κοιτάξτε όλα όσα δείχνει το αρχείο, γιατί μια αναφορά δεν είναι απόκρυψη. Ένα αρχείο περιβάλλοντος που προσαρτάται στην υπηρεσία, ένα αρχείο διαμόρφωσης που δεσμεύεται από τον κεντρικό υπολογιστή, μια ετικέτα που φέρει διακριτικό και ένα όρισμα εντολής που περιλαμβάνει κωδικό πρόσβασης ταξιδεύουν όλα με την ανάπτυξη ακόμη και όταν το YAML φαίνεται καθαρό. Ένα κλειδί που επικολλήθηκε σε μεταβλητή με καθησυχαστικό όνομα παραμένει κλειδί.

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

Μια δήλωση μυστικού δεν είναι το μυστικό

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

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

Κρατήστε το σχήμα ώστε το αρχείο να διαγιγνώσκει ακόμη

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

docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml

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

Αν το υλικό εκτέθηκε, αντικαταστήστε το

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

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

Σχετικά άρθρα