Kubernetes’i turvalisuse abecedaar: autentimine, autoriseerimine, audit

Kubernetes’i turvalisuse abecedaar: autentimine, autoriseerimine, audit

Varem vĂ”i hiljem tekib iga sĂŒsteemi kasutamisel kĂŒsimus turvalisusest: autentimise, Ă”iguste jagamise, auditeerimise ja muude ĂŒlesannete tagamisest. Kubernetes'ele on juba loodud hulgaliselt lahendusi, mis vĂ”imaldavad saavutada vastavust standarditele isegi vĂ€ga nĂ”udlikes keskkondades... See materjal keskendub K8s sisseehitatud mehhanismide raames rakendatud turvalisuse pĂ”hiaspektidele. Esiteks on see kasulik neile, kes tutvuvad Kubernetes'ega, - kui alguspunkt kĂŒsimuste uurimiseks, mis on seotud turvalisusega.

Ahnikeerimine

Kubernetes'is on kaks kasutajatĂŒĂŒpi:

  • Teenusekontod — Kubernetes API poolt hallatavad kontod;
  • Kasutajad — "tavalised" kasutajad, keda haldavad vĂ€lised, sĂ”ltumatud teenused.

Peamine erinevus nende tĂŒĂŒpide vahel on see, et Teenusekontode jaoks eksisteerivad Kubernetes API-s spetsiaalsed objektid (neid nimetatakse ka Teenusekontodeks), mis on seotud nimede ruumiga ja autoriseerimisandmete kogumiga, mis on salvestatud klastris Secrets tĂŒĂŒpi objektidesse. Sellised kasutajad (Teenusekontod) on peamiselt mĂ”eldud Kubernetes API juurdepÀÀsuĂ”iguste haldamiseks nende protsesside jaoks, mis töötavad Kubernetes klastris.

Tavalised kasutajad ei oma kirjeid Kubernetes API-s: nende haldamine peab toimuma vÀliste mehhanismide kaudu. Nad on mÔeldud inimestele vÔi protsessidele, kes elavad klastrist vÀljaspool.

Iga API pĂ€ring on seotud kas Teenusekonto vĂ”i Kasutajaga vĂ”i loetakse anonĂŒĂŒmseks.

Kasutaja autentimisandmed sisaldavad:

  • Kasutajanimi — kasutajanimi (sĂ”ltub suurtest ja vĂ€ikestest tĂ€htedest!);
  • UID — masinloetav identifitseerimisnumber, mis on "tugevam ja ainulaadsem kui kasutajanimi";
  • RĂŒhmad — kasutaja kuuluvate rĂŒhmade nimekiri;
  • Extra — tĂ€iendavad vĂ€ljad, mida vĂ”ib autoriseerimismehhanismis kasutada.

Kubernetes saab kasutada mitmeid autentimismehhanisme: X509 sertifikaate, Bearer-tokens, autentimisproxies, HTTP Basic Auth. Nende mehhanismide abil saab rakendada mitmeid autoriseerimisskeeme: staatilisest paroolifailist kuni OpenID OAuth2-ni.

Lisaks on lubatud mitme autoriseerimisskeemi samaaegne kasutamine. Vaikimisi kasutatakse klastris:

  • teenusekonto mĂ€rke — Teenusekontode jaoks;
  • X509 — Kasutajate jaoks.

KĂŒsimus ServiceAccounts'i haldamise kohta ĂŒletab kĂ€esoleva artikli piire, ning neile, kes soovivad sellest teemast lĂ€hemalt tutvuda, soovitan alustada ametliku dokumentatsiooni lehelt. Me kĂ€sitleme detailsemalt X.509 sertifikaatide tööd.

Kasutajate sertifikaadid (X.509)

Klassikaline sertifikaatidega töötamise viis eeldab:

  • vĂ”tme genereerimist:
    mkdir -p ~/mynewuser/.certs/
    openssl genrsa -out ~/mynewuser/.certs/mynewuser.key 2048
  • sertifikaadi taotluse genereerimist:
    openssl req -new -key ~/mynewuser/.certs/mynewuser.key -out ~/mynewuser/.certs/mynewuser.csr -subj "/CN=mynewuser/O=company"
  • sertifikaadi taotluse töötlemist Kubernetes klastrite CA vĂ”tmete abil, kasutaja sertifikaadi saamist (sertifikaadi saamiseks tuleb kasutada kontot, millel on juurdepÀÀs Kubernetes klastrite sertifitseerimiskeskuse vĂ”tmele, mis asub vaikimisi /etc/kubernetes/pki/ca.key):
    openssl x509 -req -in ~/mynewuser/.certs/mynewuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out ~/mynewuser/.certs/mynewuser.crt -days 500
  • konfiguratsiooni faili loomist:
    • klastri kirjeldust (mÀÀra CA sertifikaadi aadress ja asukoht konkreetse klastri installatsiooni kohta):
      kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server=https://192.168.100.200:6443
    • vĂ”i — nagu eisoovitatav variant — ei pruugi öelda juure sertifikaadi (siis kubectl ei kontrolli klastrite api-serveri Ă”igust):
      kubectl config set-cluster kubernetes --insecure-skip-tls-verify=true --server=https://192.168.100.200:6443
    • kasutaja lisamine konfigureerimisfaili:
      kubectl config set-credentials mynewuser --client-certificate=.certs/mynewuser.crt  --client-key=.certs/mynewuser.key
    • konteksti lisamine:
      kubectl config set-context mynewuser-context --cluster=kubernetes --namespace=target-namespace --user=mynewuser
    • vaikimisi konteksti mÀÀramine:
      kubectl config use-context mynewuser-context

PĂ€rast ĂŒlaltoodud toiminguid luuakse failis .kube/config konfiguratsioon jĂ€rgmisel kujul:

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.key

Konfiguratsiooni lihtsustamiseks konto ja serverite vahel on kasulik redigeerida jÀrgmiste vÔtmete vÀÀrtusi:

  • certificate-authority
  • client-certificate
  • client-key

Selleks saab nimetatud failid kodeerida base64 ja kirjutada need konfiguratsiooni, lisades vÔtme nimedele suffiksi -data, st pakkuda certificate-authority-data jne.

Sertifikaadid kubeadm'iga

Kubernetes 1.15 vĂ€ljaandega Kubernetes 1.15 Töötamine sertifikaatidega on muutunud oluliselt lihtsamaks tĂ€nu alpha-versioonile selle toe. utiliidile kubeadm.NĂ€iteks, nii vĂ”iks nĂŒĂŒd vĂ€lja nĂ€ha ĐșĐŸĐœŃ„ĐžĐłŃƒŃ€Đ°Ń†ĐžĐŸĐœĐœŃ‹Đč фаĐčĐ» koos kasutaja vĂ”tmetega:

kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200

NB: NÔutud advertise address. Saate seda vaadata api-serveri konfiguraatsioonis, mis asub vaikimisi aadressil /etc/kubernetes/manifests/kube-apiserver.yaml.

Tulemuslik konfiguraatsioon kuvatakse stdout-s. See tuleb salvestada ~/.kube/config kasutaja kontole vÔi faili, mille olete mÀÀranud keskkonnamuutujas. KUBECONFIG.

Kaevama sĂŒgavamale

Neile, kes soovivad neid kĂŒsimusi pĂ”hjalikumalt uurida:

Autoriseerimine

Vaikimisi ei oma autoriseeritud konto Ôigusi klastris tegutsemiseks. Kubernetes'is on rakendatud autoriseerimise mehhanism Ôiguste mÀÀramiseks.

Kuni versioonini 1.6 kasutati Kubernetes'is autoriseerimise tĂŒĂŒpi, mida nimetatakse ABAC (Attribute-based access control). Üksikasjad selle kohta leiate ametlikust dokumentatsioonistSiiski peetakse seda lĂ€henemist vananenuks (legacy), kuid saate seda ikkagi kasutada koos teiste autoriseerimise tĂŒĂŒpidena.

Praegu aktsepteeritud (ja paindlikum) viis Ôiguste jagamiseks klastrisse nimetatakse RBAC (Role-based access control.) See kuulutati stabiilseks alates versioonist Kubernetes 1.8.RBAC rakendab Ôiguste mudelit, kus kÔik, mis ei ole selgesÔnaliselt lubatud, on keelatud.
RBAC'i lubamiseks, peate kĂ€ivitama Kubernetes api-serveri koos parameetriga --authorization-mode=RBAC.Parameetrid seotakse manti jaga konfigureerimisega, mis asub vaikimisi aadressil /etc/kubernetes/manifests/kube-apiserver.yaml, jaotises kĂ€sk. Siiski on RBAC vaikimisi juba lubatud, mistĂ”ttu ei tasu selle pĂ€rast Ă€revust tunda: selle olemasolu saab kontrollida vÀÀrtusest authorization-mode (juba mainitud kube-apiserver.yaml.). Muide, selle vÀÀrtuste hulgas vĂ”ivad olla ka teised autoriseerimise tĂŒĂŒbid (node, webhook, always allow), kuid nende kĂ€sitlemine jÀÀb kĂ€esoleva materjali teemast vĂ€ljapoole.

Muide, oleme juba avaldanud artiklit piisavalt detailselt juttu RBAC'iga töötamise pĂ”himĂ”tetest ja eripĂ€radest, seega piirduksin edaspidi pĂ”himĂ”tete ja nĂ€idete lĂŒhikese loetlemisega.

Kubernetes'is juurdepÀÀsu haldamiseks RBAC kaudu kasutatakse jĂ€rgmisi API ĂŒksusi:

  • Role ja ClusterRole — rollid, mis kirjeldavad juurdepÀÀsuĂ”igusi:
  • Role aitab kirjeldada Ă”igusi nimiruumide raames;
  • ClusterRole — klastris, sealhulgas klastrispetsiifilised objektid nagu sĂ”lmed, non-resources urls (st mitte-Kubernetes'i ressurssidega seotud — nĂ€iteks, /version, /logs, /api*);
  • RoleBinding ja ClusterRoleBinding — teenib sidumise jaoks Role ja ClusterRole kasutajale, kasutajagruppidele vĂ”i ServiceAccount'ile.

Rolli ja RolliSidumise entiteedid on piiratud nimiruumiga, st peavad jÀÀma ĂŒhe nimiruumi piiresse. Kuid RolliSidumine vĂ”ib viidata ClusterRole'le, mis vĂ”imaldab luua tĂŒĂŒpiliste Ă”iguste komplekti ja hallata juurdepÀÀsu nende kaudu.

Rollid kirjeldavad Ôigusi reeglite kogumite abil, mis sisaldavad:

  • API rĂŒhmad - vt. ametlikku dokumentatsiooni apiGroups ja vĂ€ljundit kubectl api-resources;
  • ressursid (ressursid: pod, namespace, deployment jne);
  • tegusĂ”nad (tegusĂ”nad: set, update jne.).
  • ressursside nimed (resourceNames) — juhul, kui on vaja anda juurdepÀÀs mĂ”nele konkreetsele ressursile, mitte kĂ”igile selle tĂŒĂŒbi ressurssidele.

Kubernetes'i autoriseerimise pĂ”hjalikku analĂŒĂŒsi leiate lehelt ametlikust dokumentatsioonist. Selle asemel (ja tĂ€psemalt — selle lisandina) toome nĂ€ited, mis illustreerivad selle toimimist.

RBAC entiteetide nÀited

Lihtne Role, mis vÔimaldab saada loend ja olek pod'ide ning jÀlgida neid nimiruumis 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"]

NÀide ClusterRole, mis vÔimaldab saada loend ja olek pod'ide ning jÀlgida neid kogu klastris:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  # sektsioon "namespace" puudub, kuna ClusterRole katab kogu klastri
  name: secret-reader
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "watch", "list"]

NÀide RoleBinding, mis vÔimaldab kasutajal mynewuser «lugeda» pod'e nimiruumis my-namespace:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: target-namespace
subjects:
- kind: User
  name: mynewuser # kasutajanimi on juhtumists sÔltuv!
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role # siin peab olema “Role” vĂ”i “ClusterRole”
  name: pod-reader # rolli nimi, mis asub samas nimiruumis,
                   # vÔi ClusterRole'i nimi, mille kasutamist
                   # tahame kasutajale lubada
  apiGroup: rbac.authorization.k8s.io

SĂŒndmuste audit

Kubernetes'i arhitektuuri vÔib skeemiliselt esitada jÀrgmiselt:

Kubernetes’i turvalisuse abecedaar: autentimine, autoriseerimine, audit

Kubernetes'i vÔtmeelement, mis vastutab pÀringute töötlemise eest, on api-server. KÔik operatsioonid klastriga toimuvad selle kaudu. TÀiendava teabe saamiseks nende sisemehanismide kohta lugege artiklit «Mis toimub Kuberneteses, kui kÀivitame kubectl run?».

SĂŒsteemi auditeerimine on huvitav funktsioon Kuberneteses, mis on vaikimisi vĂ€lja lĂŒlitatud. See vĂ”imaldab logida kĂ”ik pĂ€ringud Kubernetes API-le. Nagu kergesti arvata vĂ”ib, toimub kĂ”ik tegevused, mis on seotud klastri oleku kontrolli ja muutmisega, lĂ€bi selle API. Hea ĂŒlevaate selle vĂ”imalustest saab (nagu tavaliselt) leida ametlikust dokumentatsioonist K8s. Edasi pĂŒĂŒan ma teemat vĂ€ljendada lihtsamate sĂ”nadega.

Nii, auditeerimise aktiveerimiseks, peame edastama konteinerile api-serverisse kolm kohustuslikku parameetrit, millest lÀhemalt rÀÀgin allpool:

  • --audit-policy-file=\/etc\/kubernetes\/policies\/audit-policy.yaml
  • --audit-log-path=\/var\/log\/kube-audit\/audit.log
  • --audit-log-format=json

Lisaks nendele kolmele vajalikule parameetrile on olemas palju lisaseadeid, mis puudutavad auditeerimist: logide pööramine kuni webhookide seadistamiseni. NÀide logide pööramise parameetritest:

  • --audit-log-maxbackup=10
  • --audit-log-maxsize=100
  • --audit-log-maxage=7

Aga ei hakka nendel pikemalt peatuma — kĂ”ik detailid on leitavad kube-apiserveri dokumentatsioonis.

Nagu juba mainitud, kÔik parameetrid mÀÀratakse api-serveri konfiguratsiooni manifestis (vaikimisi /etc/kubernetes/manifests/kube-apiserver.yaml), sektsioonis kÀsk. Naaseme kolme kohustusliku parameetri juurde ja vaatame neid lÀhemalt:

  1. audit-policy-file — tee YAML-failini, kus on kirjas auditeerimise poliitika. Selle sisusse me veel tagasi tuleme, kuid praegu mainin, et fail peab olema api-serveri protsessile ligipÀÀsetav. SeetĂ”ttu tuleb see konteinerisse mountida, nii et saame lisada jĂ€rgmise koodi vastavatesse seadistuse osadesse:
      volumeMounts:
        - mountPath: \/etc\/kubernetes\/policies
          name: policies
          readOnly: true
      volumes:
      - hostPath:
          path: \/etc\/kubernetes\/policies
          type: DirectoryOrCreate
        name: policies
  2. audit-log-path — tee logifailini. Tee peab samuti olema api-serveri protsessile ligipÀÀsetav, seega kirjeldame selle mountimist sarnaselt:
      volumeMounts:
        - mountPath: \/var\/log\/kube-audit
          name: logs
          readOnly: false
      volumes:
      - hostPath:
          path: \/var\/log\/kube-audit
          type: DirectoryOrCreate
        name: logs
  3. audit-log-format — auditi logi formaat. Vaikimisi on see json, kuid saadaval on ka vananenud tekstiformaadis (legacy).

Auditeerimise poliitika

NĂŒĂŒd rÀÀkides mainitud failist, kus on kirjas logimise poliitika. Esimene mĂ”isted audit policy — see on level, logimise tase. Need vĂ”ivad olla jĂ€rgmised:

  • None — mitte logida;
  • Metadata — logida pĂ€ringu metainformatsiooni: kasutaja, pĂ€ringu aeg, sihtressurss (pod, namespace jne), tegevuse tĂŒĂŒp (verb) jne;
  • PĂ€ring — logida metainformatsioon ja pĂ€ringu keha;
  • RequestResponse — logida metaandmeid, pĂ€ringu sisu ja vastuse sisu.

Viimane kaks taset (PÀring ja RequestResponse) ei logi pÀringuid, mis ei suunanud ressursse (nÀiteks nn non-resources urls).

KÔik pÀringud lÀbivad samuti mitu etappi:

  • RequestReceived — etapp, mil pĂ€ring on töötleja poolt saadud ja ei ole veel edasi antud töötleja ahelas;
  • ResponseStarted — vastuse pealkirjad on saadetud, kuid enne vastuse sisu saatmist. Genereeritakse pikaajaliste pĂ€ringute jaoks (nĂ€iteks, watch);
  • ResponseComplete — vastuse sisu on saadetud, rohkem teavet ei saadeta;
  • Panic — sĂŒndmused genereeritakse, kui tuvastatakse erandolukord.

MÔningate etappide vahelejÀtmiseks saab kasutada omitStages.

Poliitika failis saame kirjeldada mitmeid sektsioone erinevate logimise tasemetega. Rakendatakse esimest sobivat reeglit, mis leiti poliitika kirjeldusest.

Demon kubelet jĂ€lgib api-serveri konfiguratsiooni manifesti muutusi ja tuvastades, kĂ€ivitab ta api-serveri konteineri uuesti. Kuid on oluline ĂŒks detail: poliitika faili muutusi ignoreeritakse. PĂ€rast muudatuste tegemist poliitika failis tuleb api-server spetsiaalselt uuesti kĂ€ivitada. Kuna api-server on kĂ€ivitunud kui static pod, kĂ€sk kubectl delete ei pĂ”hjusta selle taaskĂ€ivitamist. Tuleb manuaalselt teha docker stop kube-master’ides, kus auditi poliitika on muudetud:

docker stop $(docker ps | grep k8s_kube-apiserver | awk '{print $1}')

Auditi lubamisel on oluline meeles pidada, et kube-apiserveri koormus tÔuseb. Eriti suureneb mÀlu tarbimine pÀringute konteksti hoidmiseks. Logimine algab alles pÀrast vastuse pealkirja saatmist. Samuti sÔltub koormus auditi poliitika konfiguratsioonist.

Poliitikate nÀited

KÀsitleme poliitika failide struktuuri nÀidete kaudu.

Siin on lihtne fail policy, et logida kÔike tasemel Metadata:

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata

Poliitikas saab mÀÀrata kasutajate (Kasutajad ja Teenusekontodeks) ja kasutajagruppide nimekirja. NĂ€iteks, nii ignoreerime sĂŒsteemi kasutajaid, kuid logime kĂ”ik muu tasemel PĂ€ring:

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: Request

Samuti on vÔimalik kirjeldada sihtkohti:

  • nimetuse ruume (namespaces);
  • tegusĂ”nad (tegusĂ”nad: get, update, delete ja muud);
  • ressursid (ressursid, nimelt: pod, configmaps jne.) ja ressursside gruppe (apiGroups).

Pange tĂ€hele! Ressursid ja ressursigrupid (API rĂŒhmad, st apiGroups) ning nende versioonid, mis on klastrisse installitud, on saadaval jĂ€rgmiste kĂ€skude abil:

kubectl api-resources
kubectl api-versions

JÀrgnevat auditi poliitikat tuuakse kui parimate praktikate nÀide Alibaba Cloud dokumentatsioonis:

apiVersion: audit.k8s.io/v1beta1
kind: Policy
# Ära logi RequestReceived etappi
omitStages:
  - "RequestReceived"
rules:
  # Ära logi juhtumeid, mida peetakse vĂ€heoluliseks ja mitte ohtlikuks:
  - level: None
    users: ["system:kube-proxy"]
    verbs: ["watch"]
    resources:
      - group: "" # see on api rĂŒhm tĂŒhja nimega, mis kuulub
                  # Kubernetes'i pÔhivara, mida nimetatakse "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"]
  # Ära logi lugemise ainult URL-esid:
  - level: None
    nonResourceURLs:
      - /healthz*
      - /version
      - /swagger*
  # Ära logi sĂ”numeid, mis kuuluvad "sĂŒndmuste" ressursside tĂŒĂŒbile:
  - level: None
    resources:
      - group: "" # core
        resources: ["events"]
  # Salajased andmed, ConfigMap ja TokenReview ressursid vÔivad sisaldada
  # salajasi andmeid, seega logime ainult nende taotluste metainfoid
  - level: Metadata
    resources:
      - group: "" # core
        resources: ["secrets", "configmaps"]
      - group: authentication.k8s.io
        resources: ["tokenreviews"]
  # Get, list ja watch toimingud vÔivad olla ressursimahukad; ei logi neid
  - 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"
  # Vaikimisi logimise tase API standardressursside jaoks
  - 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"
  # Vaikimisi logimise tase kÔikide teiste taotluste jaoks
  - level: Metadata

Teine hea nĂ€ide audit poliitikast — profiil, mida kasutatakse GCE-s.

AuditisĂŒndmustele kiiresti reageerimiseks on vĂ”imalus kirjeldada webhook. See teema on avatud ametlikust dokumentatsioonist, jĂ€tan selle artikli raames kĂ€sitlemata.

Summary

Artiklis antakse ĂŒlevaade Kubernetes klastrite pĂ”hjalike turvainstrumentide mehhanismidest, mis vĂ”imaldavad luua isikupĂ€rastatud kontosid kasutajatele, jagada nende Ă”igusi ning registreerida nende tegevusi. Loodan, et see on kasulik neile, kes on silmitsi selliste kĂŒsimustega teoorias vĂ”i juba praktikaliselt. Soovitan tutvuda ka muu turvalisuse temaatikaga seotud materjalide nimekirjaga, mis on toodud "P.S."-s — vĂ”ib-olla leiate sealt vajalikud ĂŒksikasjad teile olulistes probleemides.

P.S.

Lugege ka meie blogist:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster