Kubernetes SecurityContext(s)
Last updated
Last updated
Όταν καθορίζετε το περιβάλλον ασφάλειας ενός Pod, μπορείτε να χρησιμοποιήσετε διάφορα χαρακτηριστικά. Από την άποψη της ασφάλειας, θα πρέπει να λάβετε υπόψη:
Να έχετε το runASNonRoot ως True
Να ρυθμίσετε το runAsUser
Εάν είναι δυνατόν, να εξετάσετε τον περιορισμό των δικαιωμάτων με την χρήση των seLinuxOptions και seccompProfile
Να ΜΗΝ δίνετε πρόσβαση στην ομάδα προνομίων μέσω των runAsGroup και supplementaryGroups
Αυτό το περιβάλλον ορίζεται μέσα στο ορισμό των containers. Από την άποψη της ασφάλειας, θα πρέπει να λάβετε υπόψη τα εξής:
allowPrivilegeEscalation σε False
Να μην προσθέτετε ευαίσθητες δυνατότητες (και να αφαιρείτε αυτές που δεν χρειάζεστε)
privileged σε False
Εάν είναι δυνατόν, ορίστε το readOnlyFilesystem ως True
Ορίστε το runAsNonRoot σε True και ορίστε ένα runAsUser
Εάν είναι δυνατόν, εξετάστε τον περιορισμό των δικαιωμάτων με την χρήση των seLinuxOptions και seccompProfile
ΜΗΝ δίνετε πρόσβαση στην ομάδα με runAsGroup
Σημειώστε ότι οι παράμετροι που ορίζονται τόσο στο SecurityContext όσο και στο PodSecurityContext, η τιμή που καθορίζεται στο SecurityContext έχει προτεραιότητα.
fsGroup ακέραιος
Μια ειδική επιπλέον ομάδα που ισχύει για όλα τα containers σε ένα pod. Ορισμένοι τύποι όγκων επιτρέπουν στον Kubelet να αλλάξει την κυριότητα αυτού του όγκου ώστε να ανήκει στο pod: 1. Το GID θα είναι το FSGroup 2. Το bit setgid είναι ενεργοποιημένο (τα νέα αρχεία που δημιουργούνται στον όγκο θα ανήκουν στο FSGroup) 3. Τα bits άδειας πρόσβασης OR'd με rw-rw---- Εάν δεν έχει οριστεί, ο Kubelet δεν θα τροποποιήσει την κυριότητα και τις άδειες πρόσβασης κανενός όγκου
fsGroupChangePolicy συμβολοσειρά
Αυτό καθορίζει τη συμπεριφορά της αλλαγής κυριότητας και άδειας πρόσβασης του όγκου πριν από την εκθέση του εντός του Pod.
runAsGroup ακέραιος
Το GID για την εκτέλεση του entrypoint της διεργασίας του container. Χρησιμοποιεί την προεπιλογή του runtime εάν δεν έχει οριστεί. Μπορεί επίσης να οριστεί στο SecurityContext.
runAsNonRoot λογική τιμή
Υποδεικνύει ότι το container πρέπει να εκτελείται ως μη-ριζικός χρήστης. Εάν είναι true, ο Kubelet θα επικυρώσει την εικόνα κατά την εκτέλεση για να διασφαλίσει ότι δεν εκτελείται με UID 0 (root) και θα αποτύχει να ξεκινήσει το container εάν είναι.
runAsUser ακέραιος
Το UID για την εκτέλεση του entrypoint της διεργασίας του container. Προεπιλέγεται το χρήστης που καθορίζεται στα μεταδεδομένα τ
## Περιβάλλον Ασφαλείας (SecurityContext)
allowPrivilegeEscalation boolean
Το allowPrivilegeEscalation ελέγχει εάν ένα διεργασία μπορεί να αποκτήσει περισσότερα προνόμια από τη γονική της διεργασία. Αυτό το boolean ελέγχει απευθείας εάν η σημαία no_new_privs θα οριστεί στη διεργασία του container. Το allowPrivilegeEscalation είναι πάντα true όταν το container τρέχει ως Privileged ή έχει το CAP_SYS_ADMIN.
capabilities Capabilities Περισσότερες πληροφορίες για τις δυνατότητες
Οι δυνατότητες που προστίθενται/αφαιρούνται κατά την εκτέλεση των containers. Προεπιλογή είναι το σύνολο προεπιλεγμένων δυνατοτήτων.
privileged boolean
Εκτέλεση του container σε privileged mode. Οι διεργασίες σε privileged containers είναι ουσιαστικά ισοδύναμες με το root στον host. Προεπιλογή είναι το false.
procMount string
Το procMount υποδηλώνει τον τύπο του proc mount που θα χρησιμοποιηθεί για τα containers. Η προεπιλογή είναι το DefaultProcMount, το οποίο χρησιμοποιεί τις προεπιλεγμένες ρυθμίσεις του container runtime για τα readonly paths και τα masked paths.
readOnlyRootFilesystem boolean
Εάν αυτό το container έχει ένα read-only root filesystem. Η προεπιλογή είναι το false.
runAsGroup integer
Το GID για την εκτέλεση του entrypoint της διεργασίας του container. Χρησιμοποιεί την προεπιλογή του runtime εάν δεν έχει οριστεί.
runAsNonRoot boolean
Υποδεικνύει ότι το container πρέπει να εκτελείται ως μη-ριζικός χρήστης. Εάν είναι true, το Kubelet θα ελέγξει την εικόνα κατά την εκτέλεση για να διασφαλίσει ότι δεν εκτελείται με UID 0 (root) και θα αποτύχει να ξεκινήσει το container εάν αυτό συμβαίνει.
runAsUser integer
Το UID για την εκτέλεση του entrypoint της διεργασίας του container. Προεπιλογή είναι ο χρήστης που καθορίζεται στα μεταδεδομένα της εικόνας, εάν δεν έχει οριστεί.
seLinuxOptions SELinuxOptions Περισσότερες πληροφορίες