VK Cloud logo

Қауіпсіздік саясаттары

Kubernetes кластеры — бұл көптеген ресурстарды өрістетуге болатын күрделі жүйе. Мұндай жүйемен жұмыс істеу кезінде туындайтын типтік тәуекелдер:

  • тым кең қол жеткізу құқықтарын беру;
  • шабуылдарға осал, шамадан тыс көп қуат тұтынатын немесе корпоративтік саясаттарға сәйкес келмейтін ресурстарды өрістету.

Осы тәуекелдерді азайту үшін Cloud Containers сервисінде кластерге қол жеткізу құқықтарын шектеуді қолдаудан бөлек, қауіпсіздік саясаттары да іске асырылған.

Қауіпсіздік саясаттарымен жұмыс істеуге арналған Kubernetes кластерлерінің мүмкіндіктері:

Әдепкі бойынша қауіпсіздік саясаттары

Cloud Containers сервисіндегі Kubernetes кластерлерінде әдепкі қауіпсіздік саясаттары қолданылады, олар кластерді бірнеше кең таралған осалдықтан базалық деңгейде қорғайды:

Әдепкі қауіпсіздік саясаты
Сәйкес Gatekeeper ресурстары
Шектеу және шектеу қалыбы: k8spsphostfilesystem
Шектеу және шектеу қалыбы: k8spsphostnamespace

Бұл саясаттар Gatekeeper-дің алдын ала бапталған қалыптары мен шектеулері көмегімен іске асырылады.

Әдепкі қауіпсіздік саясаттарын өзгертуге немесе жоюға болмайды, олар әрқашан қосулы болады. Егер кластерлеріңіз үшін әдепкі қауіпсіздік саясаттарын өзгертуге қатысты сұрақтарыңыз болса, техникалық қолдау қызметіне хабарласыңыз.

Қауіпсіздік саясаттарымен жеке кабинет арқылы жұмыс істеу

Кең таралған қауіпсіздік саясаттарын жеке кабинет арқылы баптай аласыз. Кластерде қажетті Gatekeeper шектеулері мен шектеу қалыптарының жинағы автоматты түрде жасалады.

Бұл ретте, әдепкі бойынша қауіпсіздік саясаттарын кластермен синхрондау қосулы болады, синхрондауды өшіруге болмайды. Бұл кластердегі Gatekeeper ресурстарына мынадай түрде әсер етеді:

  • Егер кластерден жеке кабинетте қосылған саясатқа сәйкес келетін шектеу немесе қалып жойылса, олар қалпына келтіріледі.
  • Егер кластерде жеке кабинетте қосылған қандай да бір саясатқа сәйкес келмейтін, қолмен жасалған шектеулер болса, олар жойылады.

Үшінші тараптың қауіпсіздік саясаттарымен жұмыс істеу мысалдарын Gatekeeper пайдалану бөлімінен қараңыз.

Жеке кабинет арқылы саясаттармен жұмыс істегенде, жеке кабинетте бапталған кез келген саясаттарға сәйкес келетін жекелеген шектеулерді немесе қалыптарды өзгерту ұсынылмайды: саясаттардың дұрыс жұмыс істемеуі немесе болмауы кластер қауіпсіздігін төмендетуі мүмкін.

Қолжетімді қауіпсіздік саясаттары және олардың баптаулары

Саясаттардың бір бөлігінде баптаулар жоқ, олар үшін тек атаулар кеңістігін таңдауға болады.

NodePort-ты бұғаттау

NodePort түріндегі сервистерді (services) пайдалануға тыйым салады.

NodePort түріндегі сервистерді пайдалану желілік қауіпсіздікті қамтамасыз ету құралдарын айналып өтіп, басқа подтардың немесе түйіндердің трафигін ұстап қалуға мүмкіндік береді.

Wildcard Ingress-ті бұғаттау

Ingress ресурсы үшін Ingress маршрутизациялау ережесіндегі spec.rules.host параметрінің бар-жоғын тексереді. Параметр мәні ретінде мыналарға тыйым салады:

  • бос жолға;
  • мәндегі wildcard * таңбасына.

Көрсетілген spec.rules.host мәндері бар Ingress ресурстарын пайдалану, сервистердің өздеріне қолжетімділік болмаса да, басқа сервистердің трафигін ұстап қалуға мүмкіндік береді.

Service Account жаңартуын бұғаттау

Жұмыс жүктемесі (workload) үшін сервистік аккаунтты жаңартуға тыйым салады. Тыйым салу үшін ерекшеліктер бапталған топтар мен пайдаланушыларға бұл шектеу қолданылмайды.

Жұмыс жүктемесі үшін сервистік аккаунтты ауыстыру мүмкіндігі ештеңемен шектелмесе, бұл кластерде өкілеттіктердің артуына әкелуі мүмкін.

Контейнер ресурстарының сұраулары

Контейнерлер үшін есептеу ресурстарын сұрауды міндетті етеді: CPU — requests.cpu параметрінде, жад — requests.memory параметрінде. Осы параметрлер мәндерінің бапталған шектерден аспауын тексереді.

Шамадан тыс жоғары сұраулары бар контейнер жасау, егер лимиттер орнатылмаса, ресурстардың таусылуына әкелуі мүмкін.

Контейнер ресурстарының лимиттері

Контейнерлер үшін есептеу ресурстары лимиттерін көрсетуді міндетті етеді: CPU — limits.cpu параметрінде, жад — limits.memory параметрінде. Осы параметрлер мәндерінің бапталған шектерден аспауын тексереді.

Лимиттері тым жоғары контейнер жасау есептеу ресурстарының таусылуына әкелуі мүмкін.

SHA-хеші бар образдарды іске қосу

SHA-хеш (digest) көрсетілмеген контейнер образдарын пайдалануға тыйым салады.

Егер image параметрінің мәнінде SHA-хеш көрсетілмесе, образдың бір ғана нұсқасы қолданылатынына кепілдік берілмейді. Хештердің орнына тегтер пайдаланылған жағдайда, подтардың бір бөлігі ескі образды, ал екіншісі жаңа образды пайдаланатын жағдай туындауы мүмкін, дегенмен образ тегтері бірдей болып қалады.

Рұқсат етілген репозиторийлер

Баптауларда сенімді деп көрсетілмеген репозиторий префикстері бар контейнер образдарын пайдалануға тыйым салады.

Сенімсіз репозиторийлерден алынған образдарды пайдалану кластер қауіпсіздігін төмендетуі мүмкін. Мысалы, мұндай образдарға зиянды код енгізілген болуы мүмкін.

host-filesystem шектеуі

Контейнерлерде hostPath түріндегі томдарды (volumes) пайдалануға тыйым салады. Мұндай томдарды монтаждау Kubernetes кластері түйінінің директориясын монтаждаумен тең. Ерекшеліктер бапталған директорияларға бұл тыйым қолданылмайды.

Шектеусіз hostPath пайдалану контейнерге под орындалатын кластер түйінінің файлдық жүйесіне толық қолжетімділік береді. Бұл кластер туралы сезімтал ақпараттың ашылуына, артықшылықтардың кеңеюіне және басқа да мәселелерге әкелуі мүмкін.

host-namespaces шектеуі

hostIPC: true және hostPID: true параметрлері арқылы Kubernetes кластері түйінінің процестеріне және процестер арасындағы байланыс (IPC) құралдарына қолжетімділік алуға тыйым салады.

Осы параметрлермен іске қосылған под мынадай мүмкіндіктерге ие болады:

  • Хостта іске қосылған барлық процестерді көру.
  • Подтан жіберілген kill пәрмені арқылы хосттағы кез келген процесті мәжбүрлі түрде тоқтату.
  • Хосттағы әрбір под немесе процесс үшін /proc/[PID]/environ файлынан орта айнымалыларын оқу.
  • Өзара байланысу үшін IPC пайдаланатын процестердің деректеріне қолжетімділік.

Бұл — өте кең мүмкіндіктер, олар осалдықтарға теңестіріледі. Олар процестермен айла-шарғы жасауға, сезімтал орта айнымалыларын ашуға және басқа осалдықтарды пайдалануға мүмкіндік береді.

Репликалар санын шектеу

Kubernetes deployment-тері үшін бапталған ауқымға кірмейтін репликалар санын орнатуға тыйым салады.

Егер репликалар санына төменгі шектеу болмаса, репликациясы бапталмаған қолданбаларды өрістетуге болады, бұл істен шығуға төзімділікті төмендетеді. Егер репликалар санына жоғарғы шектеу болмаса, кластерді шамадан тыс масштабтауға немесе оның ресурстарын мүлде тауысып қоюға болады. Мысалы, кластер артық репликаларды орналастыру үшін көрсетілген шекке дейін автоматты түрде масштабталуы мүмкін, бірақ бұл ретте жаңа жұмыс жүктемесін орналастыруға бос түйіндер қалмайды.