Gatekeeper орнату
Gatekeeper — жасалатын, өзгертілетін және жойылатын Kubernetes ресурстарының саясаттарға сәйкестігін тексеру үшін Kubernetes API мен Open Policy Agent (OPA) саясаттар қозғалтқышының арасына ендірілетін контроллер. Gatekeeper туралы толығырақ ақпарат Kubernetes анықтамалығында және Gatekeeper ресми құжаттамасында берілген.
-
Егер утилита әлі орнатылмаған болса, Helm орнатыңыз.
-
Командаларды орындаңыз:
Windows (PowerShell)Linux (bash)/macOS (zsh)helm repo add gatekeeper https://open-policy-agent.github.io/gatekeeper/charts; `helm install gatekeeper/gatekeeper --name-template=gatekeeper --namespace opa-gatekeeper --create-namespace
Келесі команданы орындап, Gatekeeper подтары жасалғанына және жұмыс істеп тұрғанына көз жеткізіңіз:
kubectl -n opa-gatekeeper get pods
Команда шығысында gatekeeper-audit-... және gatekeeper-controller-manager-... подтары Running күйінде болуы керек.
Шығыс мысалы:
NAME READY STATUS RESTARTS AGEgatekeeper-audit-... 1/1 Running 0 ...gatekeeper-controller-manager-... 1/1 Running 0 ...
Cloud Containers сервисіндегі Kubernetes кластерлерінде әдепкі қауіпсіздік саясаттары әрекет етеді, олар кластерді бірнеше кең таралған осалдықтан базалық деңгейде қорғайды. 1.20 немесе одан төмен нұсқадағы кластерлерді қорғау үшін осы саясаттарға сәйкес келетін Gatekeeper шектеулері мен шектеу үлгілерін өзіңіз жасаңыз.
Бұл саясат hostIPC: true және hostPID: true параметрлері арқылы Kubernetes кластері түйінінің процесстеріне және процесаралық байланыс (IPC) құралдарына қол жеткізуге тыйым салады. Толығырақ саясат сипаттамасынан оқыңыз.
Бұл саясатты кластерде баптау үшін:
-
Gatekeeper ресурстары үшін манифесттер жасаңыз:
-
Жасалған манифесттерді қолданыңыз:
kubectl apply -f host-namespaces-template.yaml -f host-namespaces-constraint.yaml -
(Опционалды) Шектеудің жұмысын тексеріңіз:
-
Саясатқа сәйкес келмейтін под манифестін жасаңыз:
-
Осы манифестті қолданып көріңіз:
kubectl apply -f pod_namespace.yaml
Жасалатын под үшін саясаттың бұзылғаны туралы ұқсас хабарлама шығарылады:
Error from server ([...] Sharing the host namespace is not allowed: nginx-host-namespace-disallowed): error when creating "pod_namespace.yaml": admission webhook "validation.gatekeeper.sh" denied the request: [...] Sharing the host namespace is not allowed: nginx-host-namespace-disallowedСаясатты бұзған под жасалмайды.
-
-
Gatekeeper-ді жою үшін команданы орындаңыз:
helm delete gatekeeper --namespace opa-gatekeeper -
Gatekeeper үшін жасалған CRD-объектілерін жою үшін команданы орындаңыз:
kubectl delete crd -l gatekeeper.sh/system=yes