Sobes.tech
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"]