Middle+
Ποιες πρακτικές γνωρίζετε για την αύξηση της ασφάλειας της εφαρμογής στο Kubernetes;
sobes.tech AI
Απάντηση από AI
- Χρήση πολιτικών δικτύου για τον έλεγχο της κυκλοφορίας μεταξύ των pods.
- Εφαρμογή ποσοστώσεων πόρων και εύρους ορίων για τον περιορισμό της κατανάλωσης πόρων από τα pods.
- Απενεργοποίηση λειτουργίας προνομιακής πρόσβασης για κοντέινερ.
- Ελαχιστοποίηση των προνομίων που αποδίδονται στους λογαριασμούς υπηρεσιών.
- Χρήση μυστικών για την αποθήκευση ευαίσθητων δεδομένων.
- Τακτικός σαρώσεις εικόνων κοντέινερ για ευπάθειες.
- Εφαρμογή περιορισμών ασφαλείας (SCC) στο OpenShift ή πολιτικών ασφαλείας pod (PSP) (παρωχημένες) / πρότυπα ασφαλείας pod σε καθαρό Kubernetes.
- Χρήση εργαλείων για τον έλεγχο του κλάστερ, όπως Kubesec ή OpenSCAP.
- Εφαρμογή της αρχής των ελάχιστων προνομίων σε επίπεδο κλάστερ και εφαρμογών.
- Διαχωρισμός pods και χώρων ονομάτων.
- Χρήση αμεταβλητότητας για τις αναπτύξεις.
Παράδειγμα χρήσης πολιτικής δικτύου:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-backend
spec:
podSelector:
matchLabels:
app: backend # Εφαρμόζεται μόνο σε pods με αυτήν την ετικέτα
ingress:
- from:
- podSelector:
matchLabels:
app: frontend # Επιτρέπει εισερχόμενη κυκλοφορία μόνο από pods frontend
ports:
- protocol: TCP
port: 8080 # Επιτρέπει κυκλοφορία μόνο σε αυτήν την πόρτα
Παράδειγμα χρήσης του Security Context:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000 # Εκτέλεση κοντέινερ ως χρήστης με ID 1000
runAsGroup: 3000 # Εκτέλεση κοντέινερ ως ομάδα με ID 3000
fsGroup: 2000 # Το σύστημα αρχείων ανήκει στην ομάδα 2000
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
allowPrivilegeEscalation: false # Απαγόρευση ανόδου προνομίων
readOnlyRootFilesystem: true # Κάντε το ριζικό σύστημα αρχείων μόνο για ανάγνωση