• 第一章 CIS 安全基准-网络访问控制


    • 网络策略应用场景
    • 网络策略概述
    • 网络访问控制5个案例

    网络访问控制:应用场景

    默认情况下,Kubernetes 集群网络没任何网络限制,Pod 可以与任何其他 Pod 通信,在某些场景下就需要进行网络控制,
    减少网络攻击面,提高安全性,这就会用到网络策略。
    网络策略(Network Policy):是一个K8s资源,用于限制Pod出入流量,提供Pod级别和Namespace级别网络访问控制。
    网络策略的应用场景:
    • 应用程序间的访问控制,例如项目A不能访问项目B的Pod
    • 开发环境命名空间不能访问测试环境命名空间Pod
    • 当Pod暴露到外部时,需要做Pod白名单
    • 多租户网络环境隔离

    网络访问控制:网络策略概述

    在这里插入图片描述

    网络访问控制:网络策略概述

    在这里插入图片描述

    网络访问控制案例

    案例1:拒绝命名空间下所有Pod入、出站流量

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: deny-all
    namespace: test
    spec:
    podSelector: {} # 匹配本命名空间所有pod
    policyTypes: 
    - Ingress
    - Egress
    # ingress和egress没有指定规则,则不允许任何流量进出pod
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    案例2:拒绝其他命名空间Pod访问

    需求:test命名空间下所有pod可以互相访问,也可以访问其他
    命名空间Pod,但其他命名空间不能访问test命名空间Pod。

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: deny-all-namespaces 
    namespace: test
    spec:
    podSelector: {} 
    policyTypes:
    - Ingress
    ingress:
    - from:
    - podSelector: {} # 匹配本命名空间所有pod
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    案例3:允许其他命名空间Pod访问指定应用

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: allow-all-namespaces 
    namespace: test
    spec:
    podSelector: 
    matchLabels:
    app: web
    policyTypes:
    - Ingress
    ingress:
    - from:
    - namespaceSelector: {} # 匹配所有命名空间的pod
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    案例4:同一个命名空间下应用之间限制访问

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: app-to-app
    namespace: test
    spec:
    podSelector:
    matchLabels:
    run: web
    policyTypes:
    - Ingress
    ingress:
    - from:
    - podSelector:
    matchLabels:
    run: client1
    ports:
    - protocol: TCP
    port: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    案例5:只允许指定命名空间中的应用访问

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: dev-web
    namespace: dev
    spec:
    podSelector:
    matchLabels:
    env: dev
    policyTypes:
    - Ingress
    ingress:
    # 满足允许prod命名空间中的pod访问
    - from:
    - namespaceSelector:
    matchLabels:
    env: prod
    # 允许pod标签为app=client1的pod访问,所有命名空间
    - from:
    - namespaceSelector: {}
    podSelector:
    matchLabels:
    app: client1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    Worthington酶促细胞收获&细胞粘附和收获
    小H靶场学习笔记:DC-1
    网络安全检测与防范 测试题(二)
    图卷积神经网络 | Python实现基于GCN-GRU图卷积门控循环单元网络模型
    如何限制内网网速
    2022HNCTF-web -- 部分
    设计模式-相关内容
    新-新古典综合给出的正统答案-中国视角下的宏观经济
    io多路复用:select、poll和epoll
    c++中的多态
  • 原文地址:https://blog.csdn.net/qq_26489043/article/details/127684041