Middle
Ինչու է считվում վատ պրակտիկա Kubernetes-ում որպես root օգտվողի կերպով կոնտեյներ գործարկելնը։
sobes.tech AI
Պատասխան AI-ից
Կոնտեյներների գործարկումը root օգտվողից Kubernetes-ում բարձրացնում է անվտանգության ռիսկերը:
- Բարձր իրավունքների մակարդակ: Կոնտեյների խափանման դեպքում հանցագործը ստանում է root իրավունքներ կոնտեյնում: Սա կարող է թույլ տալ իրավունքների բարձրացում հոստ համակարգում կամ հասանելիություն ստանալ այլ ռեսուրսների վրա:
- Հասանելիություն հոստ ֆայլային համակարգին: Անհրաժեշտ սահմանափակումների բացակայության դեպքում, կոնտեյների ներսում root պրոցեսը կարող է ունենալ հասանելիություն հանգույցի ֆայլային համակարգին, ինչը մեծացնում է անօրինական փոփոխությունների կամ տվյալների արտահոսքի հավանականությունը:
- Կոդի թերություններ: Root օգտվողը կոնտեյնում կարող է օգտագործել Linux-ի թերությունները՝ դուրս գալու կոնտեյներից և հյուրընկալ համակարգի վերահսկողություն ստանալու համար:
- Հաշվետվության բարդություն: Root օգտվողի գործողությունները հետևելը ավելի բարդ է, ինչը դժվարացնում է անվտանգության միջադեպերի հայտնաբերումն ու հետաքննությունը:
- Ավտոնոմ իրավունքների ժառանգություն: Եթե այլ պրոցեսներ սկսվեն հիմնական օգտվողից, նրանք նույնպես կունենան բարձր իրավունքներ:
Առաջարկվում է հետևել նվազագույն իրավունքների սկզբունքին՝ գործարկելով կոնտեյներները ոչ-իրավունքային օգտվողից: Սա կարող է կարգավորվել պոդի մանIFEST-ում securityContext-ի միջոցով:
securityContext:
runAsUser: 1000 # Օգտագործելով ոչ-իրավունքային օգտվող՝ ID 1000
runAsGroup: 3000 # Խմբի անդամություն՝ ID 3000
allowPrivilegeEscalation: false # Իրավունքների բարձրացման արգելք
readOnlyRootFilesystem: true # Կոնտեյների հիմնական ֆայլային համակարգի գրանցման արգելք
Նաեւ կարելի է օգտագործել՝
- Pod Security Policies / Pod Security Admission: Պոլիսների կիրառման համար:
- AppArmor / SELinux: Ավելացված մեկուսացման համար:
- Օգտագործել կոնտեյներային պատկերներ՝ հստակ նշելով ոչ-իրավունքային օգտվողը:
Dockerfile-ում՝USERհրահանգով:
# Օրինակ Dockerfile՝ օգտվողի նշումով
FROM ubuntu:latest
# Նոր ոչ-իրավունքային օգտվող ստեղծել
RUN useradd -ms /bin/bash myuser
# Փոխել ստեղծված օգտվողին
USER myuser
CMD ["/bin/bash"]