【CKS最新模拟真题】NetworkPolicy限制对元数据服务器的访问

文章目录


参考地址

网络策略 https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/

网络策略字段 https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/policy-resources/network-policy-v1/


一、TASK

Solve this question on: ssh cks3477

There is a metadata service available at http://192.168.100.21:32000 on which Nodes can reach sensitive data, like cloud credentials for initialisation. By default, all Pods in the cluster also have access to this endpoint. The DevSecOps team has asked you to restrict access to this metadata server.

In Namespace metadata-access:

Create a NetworkPolicy named metadata-deny which prevents egress to 192.168.100.21 for all Pods but still allows access to everything else

Create a NetworkPolicy named metadata-allow which allows Pods having label role: metadata-accessor to access endpoint 192.168.100.21

There are existing Pods in the target Namespace with which you can test your policies, but don't change their labels.

中译

在以下位置解决此问题:ssh cks3477

有一个元数据服务可用http://192.168.100.21:32000, 节点可以通过该服务访问敏感数据,例如用于初始化的云凭证。默认情况下,集群中的所有 Pod 也可以访问此终端节点。DevSecOps 团队已要求您限制对此元数据服务器的访问。
1、在 命名空间metadata-access中 :

创建一个 名为metadata-deny 的 NetworkPolicy,该策略可以防止该空间下所有 Pod 访问元数据地址 egress to 192.168.100.21 ,但仍然允许访问其他所有内容
2、创建一个 名为 NetworkPolicy,允许 具有 label role: metadata-accessor 的 Pod 访问 到元数据服务器endpoint 192.168.100.21

目标 Namespace 中存在现有的 Pod,您可以使用这些 Pod 来测试您的策略,但不要更改它们的标签。

二、问题解决过程

1.问题一解题

过程如下(示例):

yaml 复制代码
#按要求连接对应的集群
candidate@terminal:~$ ssh cks3477

#切换到root用户下,防止普通用户操作写入文件没权限
candidate@cks3477:~$  sudo -i

candidate@cks3477:~# vim netDeny.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: metadata-deny
  namespace: metadata-access
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 0.0.0.0/0
        except:
        - 192.168.100.21/32
        
candidate@cks3477:~# kubectl apply -f netDeny.yaml

2.读入数据

过程如下(示例):

yaml 复制代码
#按要求连接对应的集群
candidate@terminal:~$ ssh cks3477

#切换到root用户下,防止普通用户操作写入文件没权限
candidate@cks3477:~$  sudo -i

candidate@cks3477:~# vim netAllow.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: metadata-allow
  namespace: metadata-accessor
spec:
  podSelector:
    matchLabels:
      role: metadata-accessor
  policyTypes:
  - Egress
  egress:
  - to:
    - ipBlock:
        cidr: 192.168.100.21/32
        
candidate@cks3477:~# kubectl apply -f netAllow.yaml
相关推荐
云计算磊哥@29 分钟前
运维开发宝典030-MySQL06数据库运维阶段总结
运维·数据库·运维开发
鼎讯信通34 分钟前
性能可拓展+功能一体化 走近 TXMN-BLG1 信号模拟设备
运维·能源·信息与通信
Coisinier41 分钟前
RHCE中shell脚本基础(磁盘剩余空间监控,Web 服务状态检查,curl 访问 Web 服务并返回状态)
linux·运维·服务器·前端·nginx·操作系统
lion_zjg1 小时前
Nextcloud + Collabora CODE 离线包部署安装
运维·服务器
睡不醒男孩0308231 小时前
生产环境故障销账:PostgreSQL 突发连接数暴涨与死锁,如何利用 CLup 秒级定位与解锁?
运维·数据库
java_cj2 小时前
从kubectl学Visitor模式:如何优雅处理多态数据结构的遍历
云原生·golang·k8s·访问者模式
志栋智能2 小时前
从固定周期到动态触发:超自动化巡检的智能调度
运维·网络·自动化
中云DDoS CC防护蔡蔡2 小时前
游戏杀手- ACCN
运维·服务器·经验分享·网络安全·ddos
睡不醒男孩0308232 小时前
PostgreSQL 数据库运维转型:从传统模式到 CLup 平台的 25 个核心 FAQ
运维·数据库·postgresql
无限进步_2 小时前
【Linux】系统级文件I/O与文件描述符深度剖析
linux·运维·服务器