Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Nota. transl.: Auctor articuli, Reuven Harrison, plus XX annos experientiae in progressione programmatis habet, et hodie est CTO et co-conditor Tufin, societas quae solutiones administrationis securitatis consiliorum gignit. Dum considerat Kubernetes retiaculis agendis sicut instrumentum satis validum pro retis segmentationis in botro, etiam credit non tam faciles esse in praxi ad efficiendum. Haec materia (satis voluminosa) intendit emendare speciales conscientiam huius constitutionis et eos adiuvat necessarias configurationes creare.

Hodie multae societates Kubernetes magis magisque eligunt ut suas applicationes currant. Studium in hoc programmate tam altus est ut quidam Kubernetes vocant "novam systema operandi ad centrum datorum". Paulatim Kubernetes (vel k8s) incoepit percipi partem criticam negotii, quae requirit ordinationem processuum negotiorum maturarum, incluso securitate retis.

Ad securitatem professionales qui cum Kubernetes laborant, revelatio realis potest esse consilium tribunal tribunalis: omnia permittite.

Hic dux adiuvabit ut structuram internam machinarum retis intelligas; quomodo a regulis firewalls regularibus differant. Etiam foveas aliquas operiet et suasiones ad securas applicationes in Kubernetes adiuvandas praebebit.

Kubernetes network policies

Consilium retis Kubernetes mechanismum sinit te administrare commercium applicationum in suggestu ad stratum retis (tertium in exemplar OSI). Politiae retis nonnullae notae ignium recentium recentium carent, ut OSI Layer 7 coercitionem et deprehensionem comminationis, sed praebent fundamentalem gradum securitatis retis quod bonum principium est.

Retiacula consilia communicationis socialis inter siliquas potestates

Labora in Kubernetes trans siliquas distributa sunt, quae ex uno vel pluribus vasis simul explicantur. Kubernetes vasculum IP inscriptionem ex aliis siliquis pervias attribuit. Kubernetes initis retis accessum ius pro siliquis coetibus eodem modo constituunt quo coetus securitatis in nube adhibitae sunt ad accessum ad instantiarum virtualium machinarum moderandas.

Definiens Network Politiae

Sicut aliae opes Kubernetes, rationes retis in YAML specificatae sunt. In exemplum infra, applicatio balance aditum postgres:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: balance
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

(Nota. transl.Hoc tortor, sicut omnes sequentes similes, non utens instrumentis indigenis Kubernetes, sed instrumento Tufin Orca utens, quod evolvit societatis auctoris articuli primi et quod in fine materiae memoratur.

Ut definias consilium retis vestri, praecipua scientia YAML opus erit. Haec lingua in incisis fundatur (per spatia magis quam tabs specificata). Indentatum pertinet ad elementum proximum indentatum supra ipsum. Album elementum novum incipit a hyphen, omnia alia elementa habent formam key-valorem.

Descriptis consilium in YAML, utere kubectlcreare in botro;

kubectl create -f policy.yaml

Network Policy Specification

Consilium retis Kubernetes specificationis continet quattuor elementa:

  1. podSelector: siliquae definitae ad hoc consilium affectae (scutae) - requiruntur;
  2. policyTypes: indicat rationes quae in hoc continentur: ingressu et/vel egressu - ad libitum, sed expresse commendo eam in omnibus casibus;
  3. ingress: Definiens licet ineuntes traffic ad scopum siliquas - ad libitum;
  4. egress: Definiens licet egressus negotiationis de scopum siliquas libitum est.

Exemplum ex loco Kubernetarum (reposui role on app), ostendit quomodo omnia quattuor elementa adhibeantur:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:    # <<<
    matchLabels:
      app: db
  policyTypes:    # <<<
  - Ingress
  - Egress
  ingress:        # <<<
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:         # <<<
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals
Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Quaeso nota omnia quattuor elementa includi non habent. Sit amet nisi podSelectoralii parametri ad libitum adhiberi possunt.

Si omittis policyTypesconsilium autem sic interpretabitur;

  • Defalta, ponitur quod latus ingressus definit. Si consilium explicite non enuntiat, ratio ponet omnia negotiatio prohibita esse.
  • Mores in latere egressu determinabuntur per praesentiam vel absentiam moduli exitus congruentis.

Ad vitare errata commendo semper facere expresso policyTypes.

Secundum praedictam logicam, si parametri ingress et / vel egress omisi, consilium negocii omnes negabit (cf. "Stripping Rule" below).

Default consilium est: Sinite

Si nulla consilia definiuntur, Kubernetes omnia negotiatio per defaltam admittit. Siliquae omnes notitias inter se permutare libere possunt. Hoc potest videri counterinuitivum ex perspectiva securitatis, sed memento Kubernetes ab tinctionibus initio destinatum ad applicationem interoperabilitatis efficere. Politiae retis postea additae sunt.

spatiis nominalibus

Spatia nomina sunt Kubernetes mechanismum collaborationis. Distinguuntur inter se ambitus logicos segregandi, communicatio autem spatiorum per defaltam permittitur.

Ut plerique Kubernetes componentes, consilia retiacula in certo spatio nominali vivunt. In obstructionum metadata specificare potes quod spatium ad consilium pertinet:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: my-namespace  # <<<
spec:
...

Si spatium nominandi in metadata expresse non specificatur, systema spatio nominali in kubectl determinato utetur (per defaltam namespace=default):

kubectl apply -n my-namespace -f namespace.yaml

censeo specificare spatio expressisnisi consilium scribis quod multa nomina simul pelunt.

primaria elementum podSelector in consilio siliquas eliget ex spatio nominali ad quod consilium pertinet (negatur accessus siliquarum ab alio spatio nominali).

Similiter podSelectors in introitu et egressu caudices tantum siliquas ex propriis spatiis eligere potest, nisi forte eas cum iungas namespaceSelector (de hoc in sectione "Columinis spatiis et siliquis" disseretur).

Policy Nominando Rules

Nomina politiae singularia sunt in eodem spatio nominali. Duae rationes eodem nomine in eodem spatio esse non possunt, sed eodem nomine in diversis spatiis esse possunt. Hoc utile est, cum idem consilium reapplicare voles per multa spatia.

Nominandi modos mihi maxime placet. Constat de nomine spatii coniungendi cum siliquis scopo. Exempli gratia:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres  # <<<
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Labels

Morem pittacorum ad res Kubernetes affigere potes, ut siliquas et nomina spatiis. Labels (labels - tags) instar tags in nube sunt. Kubernetes retis consiliis uti pittacia eligere siliquaead quod applicant;

podSelector:
  matchLabels:
    role: db

... or spatiis nominalibusad quod applicant. Hoc exemplum omne siliquae in spatiis nominalibus eligat cum pittaciis respondentibus:

namespaceSelector:
  matchLabels:
    project: myproject

Cautio una: cum usura namespaceSelector fac spatiis nominalibus es eligere rectam quae pittacium. Scias constructum in spatiis ut default ΠΈ kube-system, per defaltam non continent pittaciam.

Pittacium ad spatium sic addere potes:

kubectl label namespace default namespace=default

Eodem tempore, spatio nominali in sectione metadata nomen spatii ad ipsam referre debet, non pittacium;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default   # <<<
spec:
...

Fontem et destinationem

Firewall consilia regulae cum fontibus et destinationibus constant. Politiae retis Kubernetes definiuntur pro scopo - statuto siliquae cui applicant - regulas deinde constituunt in ingressu et/vel egressu negotiationis. In exemplo nostro, scopus consilii erit siliquarum omnium in spatio nominali default cum pittacium cum clavis app et significatio db:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: db   # <<<
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals
Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Subsection ingress hoc consilio, ineuntes mercaturam in scopulo siliquas aperit. Aliis verbis, ingressus fons et scopus est congruens destinatio. Item exitus est destinatio et scopus est principium eius.

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Hoc est equivalent ad duo praecepta firewall: Ingress β†’ Target; Finis β†’ Egress.

Egressus et DNS (magna!)

Limitando exitu negotiationis, sedulo DNS - Kubernetes hoc munere utitur ad officia describenda ad IP inscriptiones. Exempli gratia, hoc consilium non operatur quod applicationem non permisit balance aditum DNS:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  policyTypes:
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Illud figere potes aditum ad DNS ministerium aperiendo;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:               # <<<
    ports:            # <<<
    - protocol: UDP   # <<<
      port: 53        # <<<
  policyTypes:
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Ultimum elementum to vacua est, et ideo indirecte eligit omnes siliquae in omnibus spatiis nominalibuspermittens balance DNS mittere quaero convenientem Kubernetes ministerium (plerumque currit in spatio kube-system).

Aditus opera, tamen nimis permissive et insecureeo quod permittit dns queries extra botrum ordinari.

In tribus gradibus continuis emendare potes.

1. Concede DNS queries solum in Botrus per addendo namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector: {} # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

2. Sine DNS queries in spatio nominali solum kube-system.

Hoc facere debes pittacium nomine spatii addere kube-system: kubectl label namespace kube-system namespace=kube-system - et scribe illud in consilio utendo namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
  - to:
    - namespaceSelector:         # <<<
        matchLabels:             # <<<
          namespace: kube-system # <<<
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

3. Paranoides populus etiam longius ire potest ac DNS circumscribere queries ad DNS specificum servitium in kube-system. Sectio "de spatiis spatiis ET siliquis" narrabit quomodo id assequi possit.

Alia optio est DNS in gradu nominandi solvendi. Hoc in casu cuique operae aperiri non oportebit;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.dns
  namespace: default
spec:
  podSelector: {} # <<<
  egress:
  - to:
    - namespaceSelector: {}
    ports:
    - protocol: UDP
      port: 53
  policyTypes:
  - Egress

inanis podSelector siliquas in omnibus nominibus eligat.

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Primum par et regulae ordinem

In firewalls conventionales, actio (Permitte vel negare) in cursorio statuitur prima regula quae satisfacit. In Kubernetes, ordo lobortis non refert.

Defalta, cum nullae rationes constituuntur, communicationes inter siliquas permittuntur et informationes libere permutare possunt. Cum inceptas rationes elaborare, unumquodque vasculum saltem unum ex illis affectus separet secundum disiunctionem (logicam OR) omnium consiliorum quae id elegerunt. Siliquae nullae affectus apertae manent.

Mores huius regulae nudatione utens mutare potes.

Regulam nudare (" Negare ")

Firewall consilia typice negant mercaturam aliquam quae expresse non licet.

Non est negare actio in Kubernetesattamen effectus similis rationi regulari (permissive) effici potest, eligendo coetus inanem globi fontium siliquae (ingressus);

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Hoc consilium omne legumen eligit in spatio nominali et folia indeterminata ingreditur, negando omnes mercaturam ineuntes.

Simili modo omnia negotiatio exitu ex spatio nominali restringere potes:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-egress
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

quod ullis additis consiliis permittens negotiatio siliquae in spatio nominali praeponendam hanc regulam (similis addere regulam permittit antequam regulam negatam in configuratione firewall).

Patitur omnia (Any-Any-Sinite)

Ut omnia consilia permittas, necesse est consilium superius negare cum elemento inani supplere ingress:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
  namespace: default
spec:
  podSelector: {}
  ingress: # <<<
  - {}     # <<<
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Permittit accessum a omnes siliquae in omnibus spatiis spatiis (et omnibus IP) cuilibet vasculi in spatio nominali default. Mores huius modi defaltam habent, ut plerumque ulterius definiri non oportet. Aliquando tamen necesse est ut aliquas permissiones specificas specificas ad tempus egritudinis problema egritudinis indigeas.

Regula coarctari potest ut tantum aditus pateat specifica paro of siliquae (app:balance) In spatio nominali default:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all-to-balance
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: balance
  ingress: 
  - {}
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Hoc consilium permittit omnes introitus et exitus mercaturae, etiam accessus ad aliquem extra botrum IP;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-all
spec:
  podSelector: {}
  ingress:
  - {}
  egress:
  - {}
  policyTypes:
  - Ingress
  - Egress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals
Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Combining Multiple Politiae

Politiae componuntur utens logicalibus OR tribus gradibus; Singulae podagrae licentiae sunt iuxta disiunctionem omnium consiliorum quae ipsum afficiunt;

1. in agris from ΠΈ to Tria genera elementorum definiri possunt (quae omnia utens OR componuntur);

  • namespaceSelector β€” Totum nomen spatii deligit;
  • podSelector - siliquas eligit;
  • ipBlock β€” deligit subnet.

Numerus autem elementorum (etiam identicum) in ordine from/to non finitum. Omnes hae logicae OR componentur.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

2. intra consilium sectionem ingress potest habere multa elementa from (Composita ratione VEL). Similiter section egress ut includit multa elementa to (conjunctis etiam per disjunctionem);

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
  - from:
    - podSelector:
        matchLabels:
          app: admin
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

3. Aliae rationes etiam cum logico OR coniunctae sunt

Coniungens autem ea una limitatio SΡ“RΡ”R Β° F Β· R P Β° ' Christophorus Cooney: Kubernetes non solum consilia cum diversis iungunt policyTypes (Ingress aut Egress). Politiae definiendi ingressu (vel egressu) scribent se invicem.

Relatione inter spatiis nominalibus

Defalta communicatio inter spatiorum nomina permittitur. Hoc mutari potest utendo consilio negantis qui negotiationem exitu vel/vel in spatio nominali ineuntes restringunt (vide "Stripping Rule" supra).

Cum accessum ad spatio nominali (vide "Stripping Rule" supra), exceptionem facere potes ad negandum consilium praebendo nexus ex certo spatio nominali utendo namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: # <<<
        matchLabels:
          namespace: default
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Quam ob rem omnes siliquae in spatio nominali default erit aditus ad siliquas postgres in spatio nominali database. Sed quid si aditum aperire vis? postgres nisi specifica legumen in spatio nominali default?

Filter in spatiis et siliquis

Kubernetes version 1.11 et altius permittit vos operatores coniungere namespaceSelector ΠΈ podSelector utens ratione ET. Spectat sic:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          namespace: default
      podSelector: # <<<
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Cur hoc interpretatur AND pro vulgari OR?

nota quod podSelector non incipere a hyphen. In YAML id quod podSelector et stans in conspectu eius namespaceSelector ad idem album elementum. Coniunguntur ergo cum logicis ET.

Addit hyphen ante podSelector proveniet in cessum novi elementi electronici, quod cum priore componetur namespaceSelector OR uti logica.

Eligere siliquas cum specifica label in omnibus spatiis nominalibus, intra blank namespaceSelector:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: database.postgres
  namespace: database
spec:
  podSelector:
    matchLabels:
      app: postgres
  ingress:
  - from:
    - namespaceSelector: {}
      podSelector:
        matchLabels:
          app: admin
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Multiplices labels ascendet cum I

Regulae pro firewall cum obiectis multiplicibus (militibus, reticulis, coetibus) utentes logicalibus OR componuntur. Haec regula operabitur si fons par fasciculum Host_1 VEL Host_2:

| Source | Destination | Service | Action |
| ----------------------------------------|
| Host_1 | Subnet_A    | HTTPS   | Allow  |
| Host_2 |             |         |        |
| ----------------------------------------|

e contra, in Kubernetes variae pittaciorum in podSelector aut namespaceSelector Coniunguntur cum logicalibus ET. Exempli gratia, regula haec siliquas eliget quae utrumque titulum habent, role=db И version=v2:

podSelector:
  matchLabels:
    role: db
    version: v2

Eadem ratio est omnium operariorum genera: selectores consiliorum, selectores legumen, selectores nominandi.

Subnets et IP oratio (IPBlocks)

Firewalls VLANs, IP inscriptionibus utuntur, et subnets ad retis segmentum.

In Kubernetes, IP inscriptiones automatice siliquae assignantur et saepe mutare possunt, ideo pittacia siliquas et nomina spatiis in retis agendis desumunt.

Subnets (ipBlocks) adhibentur cum administrandi ineuntes (ingressus) vel exitus (exitus) extra (North-South) hospites. Exempli gratia, hoc consilium omnibus siliquis de spatiis aperit default accessum ad Google DNS servitium:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-dns
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 8.8.8.8/32
    ports:
    - protocol: UDP
      port: 53

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Vasculum vacuum electrix in hoc exemplo significat "eligo omnia siliqua in spatio nominali."

Hoc consilium tantum aditum 8.8.8.8; aditus ad alios IP prohibetur. Ita essentialiter accessum obstruxisti ad ministerium internum Kubernetes DNS. Si vis aperire, hoc expresse indica.

plerumque ipBlocks ΠΈ podSelectors inter se exclusiva sunt, cum inscriptiones IP siliquae internae non adhibentur ipBlocks. indicando internus IP siliquae, etiam nexus cum his inscriptionibus e siliquis / permittes. In praxi, nescis qua IP oratio utatur, quare siliquas seligere non debent.

Ut praeter exemplum, hoc consilium omnia IPS includit et ideo aditum ad omnes alias siliquas permittit:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Aditum solum ad IPS externa aperire potes, exclusis inscriptionibus siliquis IP internis. Exempli gratia, si subnet vasculum tuum 10.16.0.0/14 est;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-any
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
        except:
        - 10.16.0.0/14

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Portuum et protocols

Siliquae audi unum portum de more. Hoc significat quod numeros portum in consiliis agendis simpliciter non specificare et omnia ut defaltam relinquere potes. Commendatur tamen ut quam maxime restrictiva consilia, in quibusdam casibus portubus adhuc specificare possis;

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
      - port: 443      # <<<
        protocol: TCP  # <<<
      - port: 80       # <<<
        protocol: TCP  # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Nota quod electrix ports de omnibus elementis in obstructionum to aut fromquae continet. Portus specificare diversis pro diversis elementis, scissura ingress aut egress in plures ordines sunt to aut from et in unoquoque tuo portubus mandare:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default.postgres
  namespace: default
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: indexer
    ports:             # <<<
     - port: 443       # <<<
       protocol: TCP   # <<<
  - from:
    - podSelector:
        matchLabels:
          app: admin
    ports:             # <<<
     - port: 80        # <<<
       protocol: TCP   # <<<
  podSelector:
    matchLabels:
      app: postgres
  policyTypes:
  - Ingress

Introductio ad Kubernetes Network Politiae pro Securitatis Professionals

Default portum operandi;

  • Si portum definitionem omnino praetermittes (ports) hoc est omnes protocolla et omnes portus;
  • Si omittis definitionem protocolli (protocol) hoc significat TCP;
  • Si portum definitionem omittis (port) hoc est omnes portus.

Optime: Noli confidere in valoribus default, specificare quod explicite debes.

Quaeso nota quod vasculis portibus, non servitiis portibus utendum (more in sequenti paragrapho).

Politiae siliquae vel officia sunt definita?

Typice siliquae in Kubernetes accessere inter se per ministerium - virtualis oneris librari qui mercaturam redigit ad siliquas quae ministerium efficiunt. Putares retis consiliis aditum ad officia moderari, sed hoc non ita est. Kubernetes retiaculis agendis in pod portibus operantur, non servitii portibus.

Exempli gratia, si servitium portum 80 audit, sed negotiationem ad portum 8080 sui siliquae reducere debet, prorsus 8080 in retis consilium denotare debes.

Talis machinalis suboptima considerari debet: si structura interna servitii (portus quorum siliquae audiunt) mutationes, consilia retis renovanda erunt.

Novae architecturae accessus per ipsum Mesh de Istio vide infra - approx. transl. hoc tibi concedit problema ut cope.

Estne necessarium ut subcriptio tam Ingress quam Egress?

Brevis responsio sic est, ut vasculum A cum vasculo B communicet, necesse est ut exitum connexionis creare (hoc enim opus est consilium egressum configurare), et vasculum B nexum advenientem accipere possit. for this, accordingly, you need an ingres policy). policy).

Tamen in usu, consilio defectui confidere potes ut nexus in una vel utraque parte permittant.

Si quidam pod-fons eligetur vel exitus-politicians, restrictiones imponendas determinabitur eorum disjunctio. Hoc in casu, nexum cum vasculo expresse permittere debes -addressee. Si vasculum nullo consilio electum est, eius exitus negotiatio per defaltam conceditur.

Similiter sors leguminis estaddressee, lectus vel aditum-politicians, disjunctio constituta. Hoc in casu, expresse permittere debes eam mercaturam ex fonte vasculi recipere. Si legumen nullo consilio delectum est, omnes mercaturam ingrediuntur, quae defaltam fecerit.

Vide Stateful seu Stateless infra.

Acta publica omnia

Gubernatores retis Kubernetes negotiationis log non possunt. Inde difficile est diiudicare utrum consilium ex animo laborat et securitatem analysi valde implicat.

Imperium negotiationis ad externa officia

Kubernetes agendi retis non sinunt te in sectionibus egressum nomen dominii plene idonei denotare. Quae res ad significantem incommodum ducit cum negotiatio ad loca externa restringere conatur quae certam IP oratio non habet (ut aws.com).

Consilium Moderare

Firewalls te monent vel etiam consilium malum accipere nolunt. Kubernetes etiam nonnihil verificationem facit. Cum consilium retis per kubectl ponens, Kubernetes enuntiare potest falsum esse et illud nolle accipere. In aliis casibus, Kubernetes consilium capiet et illud per singula absentis implebit. Videri possunt utens imperio;

kubernetes get networkpolicy <policy-name> -o yaml

Meminerint Kubernetes systema sanationis infallibiles esse et nonnullas errorum species falli posse.

supplicium

Kubernetes ipsum consilia retis non efficiunt, sed tantum est API porta quae delegat onus imperii ad systema subjectum vocato Networking Interface continens (CNI). Politiae in botro Kubernetes ordinandi sine opportunitate CNI idem est ac consilia creandi in servo administratione firewall quin postea eas in sclopetis inaugurari. Hoc usque ad te est ut honestam habeas CNI vel, in suggestis Kubernetes, in nube hosted. (Videre potes list of providers hic β€” proxime. trans)., da consilia retis quae tibi CNI ponet.

Nota Kubernetes te non monere si consilium retis sine opportuni adiutori CNI proponas.

Stateless or stateless?

Omnes Kubernetes CNIs quos offendimus, status sunt (exempli gratia, Calico Linux conntrack utitur). Hoc vasculum permittit ut responsa recipiat in nexu TCP, quo initiatus est, quin eam restituat. Quamquam non sum nescius quendam modum Kubernetes qui statui praestiterit.

Provecta securitatis Policy Management

Hic viae sunt aliquot ad meliorem cogendi securitatem in Kubernetes:

  1. Ministerium architecturae Mesh vasis lateralibus utitur ad singula telemetria ac negotiationes moderandas in gradu servitii. Exemplum possumus accipere Istio.
  2. Nonnulli venditores CNI suas instrumenta suas extenderunt ad agendi modum retis Kubernetes transeundi.
  3. Tufin Orca Gubernationem retis Kubernetes visibilitatem et automationem praebet.

Sarcina Tufin Orca Kubernetes rationes retis administrat (et fons eenshotsscrae supra).

additional Information

conclusio,

Gubernationes retis Kubernetes bonam instrumentorum segmentorum ligaturas offerunt, sed intuitiva non sunt et multas subtilitates habent. Propter hanc multiplicitatem, credo, multae rationes glomerati exsistentes buggy sunt. Possibiles solutiones huius problematis includere definitiones automantes consilium aut alia instrumenta segmentationis utens.

Hoc dux spero adiuvat quaestiones nonnullas explicandas et quaestiones solvendas, quas forte occurrant.

PS ab translator

Lege etiam in nostro diario:

Source: www.habr.com