【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
相关推荐
知已难寻7 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Alluxio14 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
Sayai18 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
Elastic 中国社区官方博客19 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜19 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨20 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven20 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘20 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚20 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
爱和冰阔落21 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php