OpenShift Security - 用 RHACS 为应用自动生成 NetworkPolicy

news2024/9/22 5:55:40

《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》
说明:本文已经在 OpenShift 4.12 + RHACS 3.73.1 环境中验证

文章目录

  • 什么是 NP-Guard
  • 用 NP-Guard 自动生成 NetworkPolicy
  • 参考

什么是 NP-Guard

NP-Guard 是 IBM 发起的一个开源项目,用来自动创建 Kubernetes (K8s) 的 network policy 以提高云原生应用网络安全。在 RHACS 3.73.1 中内置了 NP-Guard 的核心功能,使用 RHACS 的客户端可以对本地目录中的 Service, ConfigMap, Pod, Deployment, ReplicaSet, Job, DaemonSet, 和 StatefulSet 的 manifest 进行自动分析,并生成最小范围的 NetworkPolicy 配置。

用 NP-Guard 自动生成 NetworkPolicy

  1. 先下载 3.73.1 以后版本的 RHACS 客户端 roxctl
$ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.1/bin/Linux/roxctl
$ chmod +x roxctl
  1. 下载测试资源,然后再创建 frontend.yaml 和 backend.yaml 中的资源。
$ git clone https://github.com/stackrox/stackrox.git
$ oc new-project np-demo
$ oc apply -f stackrox/tests/roxctl/bats-tests/test-data/np-guard/scenario-minimal-service/frontend.yaml
$ oc apply -f stackrox/tests/roxctl/bats-tests/test-data/np-guard/scenario-minimal-service/backend.yaml
  1. 在 RHACS 的 Network Graph 中确认此时的 frontend 和 backend 是没有 NetworkPolicy 的。
    在这里插入图片描述
  2. 运行命令分析上面 2 个文件,并在 np.yaml 文件中生成 NetworkPlolicy。
$ roxctl generate netpol stackrox/tests/roxctl/bats-tests/test-data/np-guard/scenario-minimal-service --output-file=np.yaml
$ more np.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  creationTimestamp: null
  name: backend-netpol
spec:
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 9090
      protocol: TCP
  podSelector:
    matchLabels:
      app: backendservice
  policyTypes:
  - Ingress
  - Egress
status: {}

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  creationTimestamp: null
  name: frontend-netpol
spec:
  egress:
  - ports:
    - port: 9090
      protocol: TCP
    to:
    - podSelector:
        matchLabels:
          app: backendservice
  - ports:
    - port: 53
      protocol: UDP
  ingress:
  - ports:
    - port: 8080
      protocol: TCP
  podSelector:
    matchLabels:
      app: frontend
  policyTypes:
  - Ingress
  - Egress
status: {}

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  creationTimestamp: null
  name: default-deny-in-namespace
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress
status: {}
  1. 运行命创建 NetworkPolicy。
$ oc apply -f np.yaml
  1. 在 RHACS 的 Network Graph 中确认此时的 frontend 和 backend 已经有 NetworkPolicy 了,并且是允许从 frontend 访问 backend。
    在这里插入图片描述

参考

https://github.com/np-guard/cluster-topology-analyzer/tree/main/tests

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WindowsTerminal 安装 oh-my-posh

文章目录1 前言2 安装过程3 Posh Themes 自定义主题参考1 前言 在Linux中,有非常好用的oh-my-zsh,最近使用WindowsTerminal时想想有没有和oh-my-zsh相同好用的插件呢,答案是:oh-my-posh 2 安装过程 进入最新版PowerShell&#…

干货 | 解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)

1. 常见痛点App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题:一是 App 启动…

【代码题】链表面试题

目录 1.链表分割 2.相交链表 3.环形链表 4.环形链表 II 1.链表分割 点击进入该题 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的…

国内注册Steam账号的快捷方法

本文介绍在国内注册Steam账号的快速、简便方法。 目前,在国内注册新的Steam账号变得越来越麻烦;尤其在最近,无论是无休止的谷歌人机身份验证,还是无法收到的验证邮件,都使得新建一个Steam账号与原来相比变得更加困难。…

[Linux_]make/Makefile

[Linux_]make/Makefile 心有所向,日复一日,必有精进专栏:《Linux_》作者:沂沐沐目录 [Linux]make/Makefile 前言 一、Mikefile 二、如何写Mikefile文件 三、原理 四、项目清理 报错:missing separator 前言 一个工…

Linux 命令

最基础的命令 1.我是谁 我用什么账号登录 whoami 2.我在那 在那个目录下 pwd 3.环顾四周 1.ll展示详细信息 2.ls 展示文件名称 4.cd 想去那 改变目录 cd 回家 cd ./ 定位到当前目录 cd../ 上级目录 cd../../上两级目录。 5.切换用户 su 从普通用户切换到root用户的…

C#应用程序配置文件(XML序列化) - 开源研究系列文章

上次写了一个C#线程池及管理器的博文( C#开发的线程池和管理器 - 开源研究系列文章 ),收到了不小的浏览量,在此感谢各位网友的支持。这次将另一个功能放出来单独讲解:C#应用程序的配置文件,使用的是XML文件保存程序的配置信息&…

数据结构(栈、队列、链表)

文章目录前言数据结构(栈、队列、链表)1、栈2、队列3、链表3.1、单向链表结构3.2、双向链表结构前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&…

多边形点集排序

一、问题描述已知多边形点集P {P1, P2, ... , PN},其排列顺序是杂乱,依次连接这N个点,无法形成确定的多边形,需要对点集P进行排序后,再绘制多边形。二、排序规则点集排序过程中,关键在于如何定义点的大小关…

STC32G 时钟系统

文章目录时钟系统代码配置总结时钟系统 系统时钟有4个时钟源可供选择: 内部高精度IRC内部32KHzIRC(精度较低)外部晶振内部PLL输出时钟 主要关心的是两个指标:SYSclk和HSCLK SYSclk是系统的时钟,决定了指令执行速度…

Android 深入系统完全讲解(三)

系统调用 操作系统提供了一些方法,让用户层可以调用,而为了安全起见,这些方法调用,都是在内核空间。于是,用户调用的时候,就会有个动作,叫做陷入内核。 当用户调用系统方法的时候,系…

【k8s-device plugin】如何编写 k8s device plugin

参考 Device Plugin 入门笔记(一) Device Plugin 入门笔记(二) 从零开始入门 K8s:GPU 管理和 Device Plugin 工作机制 Kubernetes开发知识–device-plugin的实现 https://github.com/oceanweave/cola-device-plugi…

基于springboot的智慧物业管理系统的设计与实现(前后端分离)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

mysql 中间件 mycat2 的详细安装及配置步骤

下载 首先打开mycat官网:MyCat2 右上角下载里面有个文件下载服务,点进去发现无法访问 这里需要配置一下host,把下面内容复制到host文件中。host文件位置在C:\Windows\System32\drivers\etc 210.51.26.184 mycat.org.cn www.mycat.org.cn …

第五篇 - 数组的劫持

一,前言 上篇,主要介绍了 Vue 数据初始化流程中,对象属性的深层劫持是如何实现的 核心思路就是递归,主要流程如下; 1.通过 data isFunction(data) ? data.call(vm) : data;处理后的 data 一定是对象类型 2.通过 d…

如何定位Bug——Qt

1. 前言 在写程序的过程中,不可避免出现各种Bug,如何快速的定位到Bug的位置,是程序员必备的技能之一。 2. 几种方法 2.1. 逻辑分析 根据程序所出的问题,分析问题可能所在的几个位置,通过逻辑分析找出Bug&…

从 Nginx Ingress 窥探云原生网关选型

作者: 魁予 现今有越来越多的企业开始采纳云原生理念进行应用架构转型。而 K8s 和微服务是云原生的两大支柱,随着云原生浪潮而被广泛应用。 对多数应用而言,提供对外服务的使命并不会改变,相比于原来的单体应用,微服…

VUE3中,使用.env.development和.env.production

在实际项目开发过程中,可能开发环境和生产(测试)环境不一样,经常需要修改配置常量,才能满足对应的环境,才能使软件运行起来。在vue3中可以使用2个文件进行区分。 .env.development:开发环境 .…

Mysql存储引擎 初级(自用笔记)

内容来自于(https://www.bilibili.com/video/BV1Kr4y1i7ru?p58&vd_source3cf72bb393b8cc11b96c6d4bfbcbd890) 1.存储引擎 1.1Mysql体系结构 1.2什么是存储引擎呢? 存储引擎就是存储数据,建立索引,更新,查询数据等技术的实现方式. 存储引擎是基于表的,而不是基于数据库的…

魔兽世界开服教程wow服务器框架Trinirycore构建

首先明杰先给各位普及一下TrinityCore是什么TrinityCore 是c实现MMORPG框架来自MaNGOS,大型网络对象服务,随着时间的推移,该项目代码广泛的优化,改善和清理代码。需要准备的架设工具:端(版本)、…