当前位置: 首页 > news >正文

Kubernetes学习笔记-保障集群内节点和网络安全(3)限制pod使用安全相关的特性20220828

前面讲了如何在部署pod时在任一宿主节点上做任何想做的事,比如部署一个特权模式的pod,但是需要一个机制阻止用户使用其中的部分功能,集群管理人员可以通过创建PodSecurityPolicy资源来限制对以上以上提到的安全相关特性使用
1、PodSecurityPolicy资源介绍
PodSecurityPolicy是一种集群级别(无命名空间)的资源,它定义了用户能否在pod中使用各种安全相关的特性。维护PodSecueityPolicy资源配置策略的工作由集成在api服务器中的PodSecurityPolicy准入控制插件完成
注意:你的集群中不一定启用了PodSecurityPolicy准入控制插件。在运行之前确保它已被启动
当向api服务器发送pod资源时,PodSecurityPolicy准入控制插件会将这个pod与已经配置的PodSecurityPolixy进行校验。如果这个pod符合集群中已有安全策略,它会被接收并存入etcd;否则它会立即被拒绝。这个插件也会根据安全策略中配置的默认值对pos进行修改

了解PodSecurityPolicy可以做的事
一个PodSecurityPolicy资源可以定义以下事项:

  • 是否允许pos使用宿主节点的PID、IPC、网络命名空间
  • pod允许绑定的宿主节点端口
  • 容器运行时允许使用的用户ID
  • 是否允许拥有特权模式容器的pod
  • 允许添加哪些内核功能,默认添加哪些内核功能,总是禁用哪些内核功能
  • 允许容器使用哪些SELinux选项
  • 容器是否允许使用可写的根文件系统
  • 允许容器在哪些文件系统组下运行
  • 允许pod使用哪些类型的存储卷

2、了解runASUser、fsGroup和supplemenntalGroup
如果需要限制容器可以使用的用户和用户组id,可以设置MustRunAS,并指定允许使用的ID范围
使用MustRunAs规则
需要在PodSecurityPolicy资源中设置
如果pod spec试图将其中任一字段设置为指定范围之外的值,可以通过删除之前的PodSecurityContextPolicy,并创建一个新的yaml来实现
注意:修改策略对已经存在的pod无效,因为PodSecurityPolicy资源仅在创建和升级pod时起作用
在runAsUser字段中使用mustRunAsNonRoot规则
runAsUser字段还可以使用一种规则:mustRunAsNonRoot。它将阻止用户部署以root用户运行的容器。在此情况下,spec容器中必须指定runAsUser字段,并且不能为0(0为root用户的id),或容器镜像本身指定一个非0的用户id运行。
3)配置允许、默认添加、禁止使用的内核功能
容器可以运行在特权模式下,也可以对每个容器添加或禁用linux内核功能来定义更细粒度的权限配置。以下三个字段会影响容器可以使用的内核功能:
allowedCapabilities
defaultAddCapabilities
requiredDropXapabilities
指定容器中可以添加的内核功能
allowedCapabilities字段用于指定spec容器的securityContrxt.capabilities中可以添加哪些内核功能。
4、限制pod可以使用的存储卷类型
 

相关文章:

  • [免费专栏] Android安全之利用ADT获取内存中的敏感信息
  • 网络编程必读经典书籍
  • TDengine-解决集群搭建过程中启动失败问题
  • STM32 GPIO工作原理
  • ros入门(九)----ros navigation
  • 数学建模神经网络应用,构建神经网络模型方法
  • 小程序模板报价_小程序模板价格_小程序模板使用多少钱
  • 校园跑腿小程序市场需要和功能分析!
  • 上半年业绩韧性增强,两大核心业务成第二增长点,商汤用硬科技冲刺AI长跑
  • MySQL 数据库(DBMS)安装教程图文详解
  • UTONMOS:元宇宙链游之风、燎原之势
  • 测试面试 | 一道大厂算法面试真题,你能答上来吗?(附答案)
  • 哺乳动物组织和培养细胞提取蛋白—Abbkine ExKine总蛋白提取试剂盒
  • springboot项目打包部署到阿里云windows服务器全过程记录
  • 网络编程与HTTP协议
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CentOS 7 修改主机名
  • CentOS从零开始部署Nodejs项目
  • JavaScript创建对象的四种方式
  • java正则表式的使用
  • Sass 快速入门教程
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 后端_MYSQL
  • 精彩代码 vue.js
  • 聊聊hikari连接池的leakDetectionThreshold
  • 人脸识别最新开发经验demo
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 在Mac OS X上安装 Ruby运行环境
  • Spring第一个helloWorld
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 选择阿里云数据库HBase版十大理由
  • 组复制官方翻译九、Group Replication Technical Details
  • #控制台大学课堂点名问题_课堂随机点名
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (function(){})()的分步解析
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (接口封装)
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net生成的类,跨工程调用显示注释
  • @EnableAsync和@Async开始异步任务支持
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • []sim300 GPRS数据收发程序
  • [04]Web前端进阶—JS伪数组
  • [1] 平面(Plane)图形的生成算法
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BZOJ1053][HAOI2007]反素数ant