
Në një moment ose tjetër, në funksionimin e çdo sistemi lind pyetja e sigurisë: sigurimi i autentifikimit, ndarja e të drejtave, auditimi dhe detyra të tjera. Për Kubernetes tashmë janë krijuar , të cilat lejojnë arritjen e përputhjes me standardet edhe në mjedise mjaft kërkuese... Ky material i dedikohet aspekteve bazë të sigurisë, të realizuara në kuadër të mekanizmave të integruar të K8s. Në radhë të parë, ai do të jetë i dobishëm për ata që fillojnë të njohin Kubernetes, si një pikë fillestare për studimin e pyetjeve që lidhen me sigurinë.
Autentikimi
Në Kubernetes ka dy lloje përdoruesish:
- LlogaritĂ« e ShĂ«rbimit â llogari tĂ« menaxhuara nga API i Kubernetes;
- dhe e fshij pĂ«rdoruesin â pĂ«rdorues "normalĂ«", tĂ« menaxhuar nga shĂ«rbime tĂ« jashtme dhe tĂ« pavarura.
Dallimi kryesor midis këtyre llojeve është se për Llogaritë e Shërbimit ekzistojnë objekte të veçanta në API e Kubernetes (ato quhen edhe) LlogaritëEShërbimit), të cilat janë të lidhura me hapësirën e emrave dhe një grup të dhënash të autorizimit, të ruajtura në klaster në objekte të tipit Secrets. Këta përdorues (Llogaritë e Shërbimit) janë të destinuar kryesisht për menaxhimin e të drejtave të aksesit në API e Kubernetes për procese që funksionojnë në klasterin Kubernetes.
Përdoruesit e zakonshëm nuk kanë regjistrime në API e Kubernetes: menaxhimi i tyre duhet të realizohet nga mekanizma të jashtëm. Ato janë të destinuara për njerëzit ose proceset që jetojnë jashtë klasterit.
Ădo kĂ«rkesĂ« nĂ« API lidhet ose me LlogarinĂ« e ShĂ«rbimit, ose me PĂ«rdoruesin, ose konsiderohet anonime.
Të dhënat autentikuese të përdoruesit përfshijnë:
- Username â emrin e pĂ«rdoruesit (varet nga rastit!);
- UID â njĂ« string i lexueshĂ«m nga makina pĂ«r identifikimin e pĂ«rdoruesit, i cili "Ă«shtĂ« mĂ« konsistent dhe unik se emri i pĂ«rdoruesit";
- Grupet â lista e grupeve ku i pĂ«rket pĂ«rdoruesi;
- ShtesĂ« â fusha tĂ« tjera qĂ« mund tĂ« pĂ«rdoren nga mekanizmi i autorizimit.
Kubernetes mund të përdorë një numër të madh mekanizmash autentikimi: certifikatat X509, Bearer-tokens, proxy autentikues, HTTP Basic Auth. Me këto mekanizma mund të realizohen një sërë skemash autorizimi: nga një skedar statik me fjalëkalime deri në OpenID OAuth2.
Për më tepër, lejohet përdorimi i disa skemave autorizimi njëkohësisht. Nga ana tjetër, në klaster përdoren si të parakohshmet:
- tokenet e llogarive tĂ« shĂ«rbimit â pĂ«r LlogaritĂ« e ShĂ«rbimit;
- X509 â pĂ«r PĂ«rdoruesit.
Pyetja për menaxhimin e ServiceAccounts kalon përtej kësaj artikulli, dhe për ata që duan të njihen më thellë me këtë çështje, rekomandoj të filloni nga . Ne do të shqyrtojmë më thellë çështjen e funksionimit të certifikatave X509.
Certifikatat për përdoruesit (X.509)
Mënyra e zakonshme e punës me certifikatat parashikon:
- gjenerimin e çelësit:
mkdir -p ~/mynewuser/.certs/ openssl genrsa -out ~/mynewuser.key 2048 - gjenerimin e kërkesës për certifikat:
openssl req -new -key ~/mynewuser.key -out ~/mynewuser.csr -subj "/CN=mynewuser/O=company" - përpunimin e kërkesës për certifikat duke përdorur çelësat e CA të klasterit Kubernetes, marrjen e certifikatës së përdoruesit (për të marrë certifikatën duhet të përdoret një llogari që ka akses në çelësin e qendrës së certifikimit të klasterit Kubernetes, i cili në mënyrë të paracaktuar ndodhet në
/etc/kubernetes/pki/ca.key):openssl x509 -req -in ~/mynewuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out ~/mynewuser.crt -days 500 - krijimin e skedarit të konfigurimit:
- përshkrimi i klasterit (specifikoni adresën dhe vendndodhjen e skedarit të certifikatës CA për instalimin specifik të klasterit):
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server=https://192.168.100.200:6443 - ose - si joopsioni i rekomanduar - nuk mund të specifikoni certifikatat rrënjësore (atëherë kubectl nuk do të verifikojë saktësinë e api-serverit të klasterit):
kubectl config set-cluster kubernetes --insecure-skip-tls-verify=true --server=https://192.168.100.200:6443 - shtimi i përdoruesit në skedarin e konfigurimit:
kubectl config set-credentials mynewuser --client-certificate=.certs/mynewuser.crt --client-key=.certs/mynewuser.key - shtimi i kontekstit:
kubectl config set-context mynewuser-context --cluster=kubernetes --namespace=target-namespace --user=mynewuser - caktimi i kontekstit si parazgjedhje:
kubectl config use-context mynewuser-context
- përshkrimi i klasterit (specifikoni adresën dhe vendndodhjen e skedarit të certifikatës CA për instalimin specifik të klasterit):
Pas veprimeve të mësipërme, në skedarin .kube/config do të krijohet një konfigurim i tillë:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://192.168.100.200:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
namespace: target-namespace
user: mynewuser
name: mynewuser-context
current-context: mynewuser-context
kind: Config
preferences: {}
users:
- name: mynewuser
user:
client-certificate: /home/mynewuser/.certs/mynewuser.crt
client-key: /home/mynewuser/.certs/mynewuser.keyPër të lehtësuar kalimin e konfigurimit midis llogarive dhe serverëve, është e dobishme të redaktohen vlerat e çelësave të mëposhtëm:
-
certificate-authority -
client-certificate -
client-key
PĂ«r kĂ«tĂ«, mund tĂ« kodoni skedarĂ«t e specifikuar me base64 dhe t'i shkruani nĂ« konfigurim, duke shtuar nĂ« emrat e çelĂ«save sufixin -data, dmth duke marrĂ« certificate-authority-data NĂ« mekanizmin e lidhjes sĂ« tabelave tĂ« jashtme Foreign Data Wrapper (postgres_fdw) Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r autentikimin e bazuar nĂ« certifikata. Kur pĂ«rdoret autentikimi SCRAM, klientĂ«ve u lejohet tĂ« kĂ«rkojnĂ« â
Certifikatat me kubeadm
Me lëshimin Puna me sertifikatat është bërë ndjeshëm më e lehtë falë versionit alfa të mbështetjes në . Për shembull, ja si mund të duket tani gjenerimi i skedarit të konfigurimit me çelësat e përdoruesit:
kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200 NB: Të kërkuara adresa e reklamimit mund të shikohet në konfigurimin e api-serverit, i cili ndodhet për default në /etc/kubernetes/manifests/kube-apiserver.yaml.
Konfigurationsi i rezultatit do të printohet në stdout. Ai duhet të ruhet në ~/.kube/config llogarinë e përdoruesit ose në skedarin që është treguar në variablin e ambientit KUBECONFIG.
Shkoni më në thellësi
Për ata që dëshirojnë të kuptojnë më mirë çështjet e përmendura:
- në lidhje me punën me certifikat për dokumentacionin zyrtar të Kubernetes;
- , në të cilin çështja e certifikatave trajtohet nga një këndvështrim praktik.
- për autentifikimin në Kubernetes.
Autorizimi
Llogaria e autorizuar për default nuk ka të drejta veprimi në klaster. Për të ofruar leje në Kubernetes, është zbatuar një mekanizëm autorizimi.
Derisa të versioni 1.6 në Kubernetes është përdorur një lloj autorizimi, i quajtur ABAC (Kontrolli i aksesit të bazuar në atributet). Detajet mbi të mund të gjenden në . Aktualisht, ky qasje konsiderohet e vjetruar (legacy), megjithatë ju ende mund ta përdorni atë në të njëjtën kohë me lloje të tjera autorizimi.
Qasja aktuale (dhe më e fleksibël) për ndarjen e të drejtave të aksesit në klaster quhet RBAC (). Ai u shpall i qëndrueshëm që nga versioni . RBAC zbatojnë një model të të drejtave, ku çdo gjë që nuk është lejuar është e ndaluar.
Për të aktivizuar RBAC, duhet të nisni Kubernetes api-server me parametrin --authorization-mode=RBAC. Parametrat vendosen në manifestin e konfigurimit të api-serverit, i cili për default ndodhet në /etc/kubernetes/manifests/kube-apiserver.yaml, në seksionin command. Megjithatë, RBAC për default është aktivizuar, prandaj ndoshta nuk është e nevojshme të shqetësoheni për këtë: mund ta verifikoni këtë në vlerën authorization-mode (në dokumentin e përmendur më parë kube-apiserver.yaml). Për ta thënë ndryshe, mes vlerave të tij mund të gjenden edhe lloje të tjera autorizimi (ndod, webhook, lejo gjithmonë), por trajtimi i tyre është jashtë përmbajtjes.
Të kujtoj, ne tashmë kemi publikuar me një tregim mjaft të detajuar mbi parimet dhe karakteristikat e punës me RBAC, prandaj tani do të kufizohem në një listë të shkurtër të bazave dhe shembujve.
Për menaxhimin e aksesit në Kubernetes nëpërmjet RBAC përdoren këto entitete të API-së:
-
RoldheClusterRoleâ role qĂ« shĂ«rbejnĂ« pĂ«r tĂ« pĂ«rshkruar tĂ« drejtat e aksesit: -
Rollejon të përshkruajë të drejtat brenda hapësirës së emrit; -
ClusterRoleâ brenda grupit, pĂ«rfshirĂ« objektet specifike tĂ« grupit si nyjet, urls non-resources (pra, tĂ« pa lidhura me burimet Kubernetes â pĂ«r shembull,/version,/logs,/api*); -
RoleBindingdheClusterRoleBindingâ shĂ«rben pĂ«r lidhjenRoldheClusterRoleme pĂ«rdoruesin, grupin e pĂ«rdoruesve ose ServiceAccount.
Entitetet Role dhe RoleBinding janë të kufizuara nga hapësira e emrit, domethënë, ato duhet të jenë brenda një hapësire emri. Megjithatë, RoleBinding mund të referohet në ClusterRole, që lejon krijimin e një grupi të tipareve të autorizimit dhe menaxhimin e qasjes me ndihmën e tyre.
Rolat përshkruajnë të drejtat përmes grupeve të rregullave që përmbajnë:
- grupet API â shiko pĂ«r apiGroups dhe daljen
kubectl api-resources; - burimet (resources:
pod,namespace,deploymentetj.); - veprimet (verbs:
set,përditësimetj.). - emrat e burimeve (
resourceNames) â pĂ«r rastin kur duhet tĂ« jepni qasje nĂ« njĂ« burim tĂ« caktuar dhe jo nĂ« tĂ« gjitha burimet e kĂ«tij lloji.
NjĂ« analizĂ« mĂ« tĂ« thellĂ« tĂ« autorizimit nĂ« Kubernetes mund tĂ« gjendet nĂ« faqen . NĂ« vend tĂ« kĂ«tij (nĂ« tĂ« vĂ«rtetĂ« â si njĂ« shtesĂ«) do tĂ« jap shembuj qĂ« ilustrojnĂ« funksionimin e tij.
Shembuj të entiteteve RBAC
I thjeshtĂ« Rol, qĂ« lejon tĂ« merrni listĂ«n dhe statusin e podâĂ«ve dhe tĂ« ndiqni ata nĂ« hapĂ«sirĂ«n e emrit target-namespace:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: target-namespace
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"] Shembulli ClusterRole, qĂ« lejon marrjen e listĂ«s dhe statusit tĂ« podâĂ«ve dhe ndjekjen e atyre nĂ« tĂ« gjithĂ« grupin:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
# seksioni "namespace" nuk ekziston, pasi ClusterRole përfshin të gjithë grupin
name: secret-reader
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "watch", "list"] Shembulli RoleBinding, qĂ« lejon pĂ«rdoruesin mynewuser "tĂ« lexojĂ«" podâĂ«t nĂ« hapĂ«sirĂ«n e emrit my-namespace:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: target-namespace
subjects:
- kind: User
name: mynewuser # emri i përdoruesit është i ndjeshëm ndaj regjistrit!
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role # kĂ«tu duhet tĂ« jetĂ« âRoleâ ose âClusterRoleâ
name: pod-reader # emri i Role, që ndodhet në të njëjtin namespace,
# ose emri i ClusterRole, përdorimi i së cilës
# duam të lejojmë për përdoruesin
apiGroup: rbac.authorization.k8s.ioAuditimi i ngjarjeve
Arkitektura e Kubernetes mund të paraqitet në mënyrë skematike si vijon:

Komponenti kyç i Kubernetes, pĂ«rgjegjĂ«s pĂ«r pĂ«rpunimin e kĂ«rkesave, â api-server. TĂ« gjitha operacionet mbi grupin kalojnĂ« pĂ«rmes tij. MĂ« shumĂ« rreth kĂ«tyre mekanizmave tĂ« brendshĂ«m mund tĂ« lexoni nĂ« artikullin "».
Auditi i sistemit është një funksionalitet interesant në Kubernetes, i cili është i çaktivizuar si parazgjedhje. Ai lejon regjistrimin e të gjitha kërkesave për API-në e Kubernetes. Si lehtë mund të kuptohet, përmes këtij API po kryhen të gjitha veprimet që lidhen me kontrollin dhe ndryshimin e gjendjes së klasterit. Një përshkrim i mirë i mundësive të tij mund të gjendet (si zakonisht) në K8s. Më tej do të përpiqem ta shpjegoj temën në një gjuhë më të thjeshtë.
Pra, Për të aktivizuar auditin, na nevojitet të kalojmë tri parametra të detyrueshëm në container-in në api-server, për më shumë detaje mbi të cilët do të flasim më poshtë:
-
--audit-policy-file=/etc/kubernetes/policies/audit-policy.yaml -
--audit-log-path=/var/log/kube-audit/audit.log -
--audit-log-format=json
Përveç këtyre tre parametrave të domosdoshëm, ekzistojnë shumë cilësime të tjera në lidhje me auditimin: nga rotacioni i regjistrimeve deri te përshkrimet e webhook-ëve. Një shembull i parametrave të rotacionit të regjistrimeve:
-
--audit-log-maxbackup=10 -
--audit-log-maxsize=100 -
--audit-log-maxage=7
Por nuk do tĂ« ngelemi mĂ« shumĂ« mbi ta â mund tĂ« gjeni tĂ« gjitha detajet nĂ« .
Siç u përmend më parë, të gjitha parametrat vendosen në manifestin me konfigurimin e api-server (si parazgjedhje /etc/kubernetes/manifests/kube-apiserver.yaml), në seksionin command. Le të kthehemi te 3 parametrat e detyrueshëm dhe t'i shqyrtojmë ata:
-
audit-policy-fileâ rruga deri te skedari YAML me pĂ«rshkrimin e politikĂ«s sĂ« auditimit. PĂ«rmbajtjes sĂ« tij do t'i kthehemi, por pĂ«r momentin do tĂ« theksoj se skedari duhet tĂ« jetĂ« nĂ« dispozicion pĂ«r lexim nga procesi i api-server. Prandaj, Ă«shtĂ« e nevojshme ta montoni atĂ« brenda container-it, pĂ«r kĂ«tĂ« mund tĂ« shtoni kodin e mĂ«poshtĂ«m nĂ« seksionet pĂ«rkatĂ«se tĂ« konfigurimit:volumeMounts: - mountPath: /etc/kubernetes/policies name: policies readOnly: true volumes: - hostPath: path: /etc/kubernetes/policies type: DirectoryOrCreate name: policies -
audit-log-pathâ rruga deri te skedari i regjistrimit. Rruga gjithashtu duhet tĂ« jetĂ« nĂ« dispozicion nga procesi i api-server, prandaj po ashtu e pĂ«rshkruajmĂ« montimin e tij:volumeMounts: - mountPath: /var/log/kube-audit name: logs readOnly: false volumes: - hostPath: path: /var/log/kube-audit type: DirectoryOrCreate name: logs -
audit-log-formatâ formati i regjistrimit tĂ« auditimit. Si parazgjedhje, ky Ă«shtĂ«json., por Ă«shtĂ« i disponueshĂ«m edhe formati i vjetĂ«r tekstual (legacy).
Politika e auditimit
Tani për skedarin e përmendur me përshkrimin e politikës së regjistrimit. Koncepti i parë të cilin e quajmë audit policy është level, niveli i regjistrimit. Ato mund të jenë si më poshtë:
-
AsnjĂ«â mos regjistro; -
Metadataâ regjistro metadatat e kĂ«rkesĂ«s: pĂ«rdoruesi, koha e kĂ«rkesĂ«s, burimi i synuar (pod, namespace etj.), tipi i veprimit (verb) etj.; -
Requestâ regjistro metadatat dhe trupin e kĂ«rkesĂ«s; -
RequestResponseâ regjistro metadatat, trupin e kĂ«rkesĂ«s dhe trupin e pĂ«rgjigjes.
Nivelet e fundit (Request dhe RequestResponse) nuk regjistrojnë kërkesa që nuk i qasen burimeve (që bëjnë referencë te URL-të e ashtuquajtura non-resources).
Gjithashtu, të gjithë kërkesat kalojnë përmes disa fazave:
-
RequestReceivedâ faza kur kĂ«rkesa Ă«shtĂ« pranuar nga procesori dhe ende nuk Ă«shtĂ« dĂ«rguar mĂ« tej nĂ« zinxhirin e procesorĂ«ve; -
ResponseStartedâ titujt e pĂ«rgjigjes janĂ« dĂ«rguar, por pĂ«rpara dĂ«rgimit tĂ« trupit tĂ« pĂ«rgjigjes. Gjenerohet pĂ«r kĂ«rkesa tĂ« gjata (p.sh.,watch); -
ResponseCompleteâ trupi i pĂ«rgjigjes Ă«shtĂ« dĂ«rguar, nuk do tĂ« dĂ«rgohen mĂ« informata; -
Panicâ ngjarjet gjenerohen kur zbulohet njĂ« situatĂ« e jashtĂ«zakonshme.
Për të kaluar ndonjë fazë, mund të përdorim omitStages.
Në skedarin e politikës mund të përshkruajmë disa seksione me nivele të ndryshme regjistrimi. Rregulli i parë i përshtatshëm, i gjetur në përshkrimin e politikës, do të zbatohet.
Demon kubelet ndjek ndryshimin e manifestit me konfigurimin e api-server dhe, kur e detecton, rindez kontejnerin me api-server. Por ka një detaj të rëndësishëm: ndryshimet në skedarin e politikës do të injorohen. Pas ndryshimeve në skedarin e politikës, kërkohet që të rindezësh manualisht api-serverin. Duke qenë se api-serveri është nisur si , ekipi kubectl delete nuk do të çojë në rindezjen e tij. Do të duhet ta bësh manualisht docker stop në kube-master-at, ku është ndryshuar politika e auditi:
docker stop $(docker ps | grep k8s_kube-apiserver | awk '{print $1}')Kur aktivizohet auditi, është e rëndësishme të mbash mend se ngarkesa në kube-apiserver rritet. Në veçanti, rritet konsumimi i memories për ruajtjen e konteksteve të kërkesave. Regjistrimi në log fillon vetëm pas dërgimit të titujve të përgjigjes. Gjithashtu, ngarkesa varet nga konfigurimi i politikës së auditi.
Shembuj të politikave
Le të shqyrtojmë strukturën e skedarëve të politikës me shembuj.
Ja një skedar i thjeshtë policy, për të regjistruar gjithçka në nivelin e Metadata:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata Në politikë mund të specifikosh një listë përdoruesish (dhe e fshij përdoruesin dhe LlogaritëEShërbimit) dhe grupe përdoruesish. Për shembull, kështu ne do të injorojmë përdoruesit sistemikë, por do të regjistrojmë gjithçka tjetër në nivelin Request:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: None
userGroups:
- "system:serviceaccounts"
- "system:nodes"
users:
- "system:anonymous"
- "system:apiserver"
- "system:kube-controller-manager"
- "system:kube-scheduler"
- level: RequestKa gjithashtu mundësinë për të përshkruar objektivat:
- hapësirat emrash (
namespaces); - veprimet (verbs:
merr,përditësim,fshijdhe të tjera); - burimet (resources, në veçanti:
pod,configmapsetj.) dhe grupe resursesh (apiGroups).
Keni parasysh! Burimet dhe grupet e burimeve (grupet API, dmth. apiGroups), si dhe versionet e tyre të instaluara në klaster, mund të merren duke përdorur komandat:
kubectl api-resources
kubectl api-versionsPolitika e auditimit në vazhdim jepet si një demonstruese e praktikave më të mira në :
apiVersion: audit.k8s.io/v1beta1
kind: Policy
# Mos loguar fazën RequestReceived
omitStages:
- "RequestReceived"
rules:
# Mos loguar ngjarje që konsiderohen të parëndësishme dhe jo të rrezikshme:
- level: None
users: ["system:kube-proxy"]
verbs: ["watch"]
resources:
- group: "" # ky është grupi api me emër të zbrazët, i cili përfshin
# burimet themelore tĂ« Kubernetes, tĂ« quajtura âcoreâ
resources: ["endpoints", "services"]
- level: None
users: ["system:unsecured"]
namespaces: ["kube-system"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["configmaps"]
- level: None
users: ["kubelet"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
userGroups: ["system:nodes"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["nodes"]
- level: None
users:
- system:kube-controller-manager
- system:kube-scheduler
- system:serviceaccount:kube-system:endpoint-controller
verbs: ["get", "update"]
namespaces: ["kube-system"]
resources:
- group: "" # core
resources: ["endpoints"]
- level: None
users: ["system:apiserver"]
verbs: ["get"]
resources:
- group: "" # core
resources: ["namespaces"]
# Mos loguar qasjet në URL të lexueshme:
- level: None
nonResourceURLs:
- /healthz*
- /version
- /swagger*
# Mos loguar mesazhet qĂ« i pĂ«rkasin llojit tĂ« burimeve ângjarjeâ:
- level: None
resources:
- group: "" # core
resources: ["events"]
# Burimet si Secret, ConfigMap dhe TokenReview mund të përmbajnë të dhëna sekrete,
# prandaj regjistrojmë vetëm metadatat e kërkesave të lidhura
- level: Metadata
resources:
- group: "" # core
resources: ["secrets", "configmaps"]
- group: authentication.k8s.io
resources: ["tokenreviews"]
# Veprimet si get, list dhe watch mund të jenë të ngarkuara me burime; mos i regjistro
- level: Request
verbs: ["get", "list", "watch"]
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
# Niveli standard i regjistrimit për burimet e zakonshme API
- level: RequestResponse
resources:
- group: "" # core
- group: "admissionregistration.k8s.io"
- group: "apps"
- group: "authentication.k8s.io"
- group: "authorization.k8s.io"
- group: "autoscaling"
- group: "batch"
- group: "certificates.k8s.io"
- group: "extensions"
- group: "networking.k8s.io"
- group: "policy"
- group: "rbac.authorization.k8s.io"
- group: "settings.k8s.io"
- group: "storage.k8s.io"
# Niveli standard i regjistrimit për të gjitha kërkesat e tjera
- level: MetadataNjĂ« tjetĂ«r shembull i mirĂ« i politikĂ«s sĂ« auditimit â .
Për reagimin e shpejtë ndaj ngjarjeve të auditimit ekziston mundësia të përshkruash webhook. Ky çështje trajtohet në , do ta lë përtej këtij artikulli.
Përfundime
Artikulli ofron njĂ« pĂ«rmbledhje tĂ« mekanizmave tĂ« sigurisĂ« themelore nĂ« klasterĂ«t Kubernetes, tĂ« cilĂ«t lejojnĂ« krijimin e llogarive tĂ« personalizuara pĂ«r pĂ«rdoruesit, ndarjen e tĂ« drejtave tĂ« tyre dhe regjistrimin e veprimeve tĂ« tyre. Shpresoj se do t'u vie nĂ« ndihmĂ« atyre qĂ« pĂ«rballen me kĂ«to pyetje nĂ« teori ose tashmĂ« nĂ« praktikĂ«. Sugjeroj gjithashtu tĂ« shqyrtoni listĂ«n e materialeve tĂ« tjera mbi temĂ«n e sigurisĂ« nĂ« Kubernetes, qĂ« Ă«shtĂ« pĂ«rfshirĂ« nĂ« âP.S.â â ndoshta, ndĂ«r to do tĂ« gjeni detaje tĂ« nevojshme pĂ«r problemet tuaja aktuale.
P.S.
Lexoni gjithashtu në blogun tonë:
- «»;
- «»;
- «»;
- «»;
- «».
Burimi: habr.com
