【K8s】专题十四(2):Kubernetes 安全机制之 Security Context

server/2024/10/20 3:30:23/

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

| 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 |


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【Linux】全面讲解 Shell 变量的那些事


目录

一、基本介绍

二、为 Pod 设置 Security Context

1、资源清单(示例)

2、配置示例说明

三、为 Container 设置 Security Context

 1、资源清单(示例)

2、配置示例说明


一、基本介绍

在 Kubernetes 中,Security Context(安全上下文)是一种重要的安全机制。

Security Context 通过定义 Pod 或 Pod 内容器的权限来控制容器的运行方式,从而限制不必要的访问、增强容器安全性。

Security Context 包括但不限于以下配置字段:

  • AllowPrivilegeEscalation:用于控制进程是否可以获得比其父进程更多的权限
  • appArmorProfile:用于定义容器使用的 AppArmor 选项,限制单个程序的功能
  • capabilities:用于控制运行容器时要添加或删除的功能
  • privileged:用于控制容器是否以特权模式运行
  • procMount:用于定义容器的 proc 挂载的类型
  • readOnlyRootFilesystem:用于控制容器是否以只读方式挂载根文件系统
  • runAsGroup:用于定义运行容器进程入口点的 GID
  • runAsNonRoot:用于控制容器是否以非 root 用户身份运行
  • runAsUser:用于定义运行容器进程入口点的 UID
  • seLinuxOptions:用于定义容器的 SELinux 上下文,为对象分配安全标签
  • seccompProfile:用于定义容器使用的 Seccomp 选项,过滤进程的系统调用

官方文档:Configure a Security Context for a Pod or Container | Kubernetes

API 文档:SecurityContext v1 core | Kubernetes API Reference Docs


二、为 Pod 设置 Security Context
1、资源清单(示例)
apiVersion: v1
kind: Pod
metadata:name: demo-security-context
spec:containers:- name: demo1image: busyboxcommand: [ "sh", "-c", "sleep 1h" ]containers:- name: demo2image: busyboxcommand: [ "sh", "-c", "sleep 1h" ]volumeMounts:- name: datamountPath: /data/demovolumes:- name: dataemptyDir: {}securityContext:runAsUser: 1000runAsGroup: 3000fsGroup: 2000supplementalGroups: [4000]

2、配置示例说明
  • runAsUser 字段:对于 Pod 内任意容器,其所有进程的用户(user) ID 为 1000
    • 如果省略 runAsUser 字段,则容器的用户 ID 为 0(root)
  • runAsGroup 字段:对于 Pod 内任意容器,其所有进程的主组(primary group) ID 为 3000
    • 容器中创建的任何文件将归属于用户 1000 和组 3000
    • 如果省略 runAsGroup 字段,则容器的主组 ID 为 0(root)
  • fsGroup 字段:对于 Pod 内任意容器,其所有进程是补充组(supplementary group) ID 2000 的一部分
    • /data/demo 卷以及在该卷中创建的任何文件将归属于组 2000
  • supplementalGroups 字段:对于 Pod 内任意容器,其所有进程是指定组(specified group) ID 4000 的一部分
    • 如果省略 supplementalGroups 字段,则表示为空


三、为 Container 设置 Security Context
 1、资源清单(示例)
apiVersion: v1
kind: Pod
metadata:name: demo-security-context
spec:containers:- name: demo1image: busyboxcommand: [ "sh", "-c", "sleep 1h" ]securityContext:privileged: true                        # 容器以特权模式运行capabilities:                           # 添加或删除功能add / drop:- SYS_TIME / SYS_PTRACE / SYS_ADMINallowPrivilegeEscalation: falsecontainers:- name: demo2image: busyboxcommand: [ "sh", "-c", "sleep 1h" ]volumeMounts:- name: datamountPath: /data/demovolumes:- name: dataemptyDir: {}

2、配置示例说明
  • Container Security Context 仅针对指定的 Container 生效
    • 示例中 demo1 容器配置的 Security Context 不会对 demo2 容器生效
  • Container Security Context 的优先级高于 Pod Security Context,Pod Security Context 下相同的配置会被覆盖 


http://www.ppmy.cn/server/133230.html

相关文章

SpringBoot +Vue3前后端分离项目入门基础实例四

项目说明 项项目名称使用框架说明后端项目springboot_vue_element_demoSpringBoot + MyBatis-plus + MySQL完成基本的增删改查操作API前端项目vue-projectVue3 + ElementUI plus + axios界面展示,调用后端API项目文档目录 SpringBoot +Vue3前后端分离项目入门基础实例一 Spri…

大模型生图安全疫苗注入赛道 - 赛题评测与优化策略(DataWhale组队学习)

引言 大家好,我是GISer Liu 😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月实践赛的大模型生图安全疫苗注入赛道。本文主要整理了本次赛事的赛题评测方法与提示词优化策略,并对模型的防御机制设计进行了代…

什么是DApp?DApp开发指南

一、什么是DApp? DApp(Decentralized Application),即去中心化应用,是一种基于区块链技术开发的应用程序,与传统的中心化应用不同,DApp不依赖单一服务器或管理主体,而是利用去中心化…

Spring Boot:中小型医院网站开发新趋势

4 系统设计 4.1 系统概要设计 本中小型医院网站采用B/S结构(Browser/Server,浏览器/服务器结构)和JAVA技术,MYSQL数据库存储数据,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1…

自监督行为识别-时空线索解耦(论文复现)

自监督行为识别-时空线索解耦(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 自监督行为识别-时空线索解耦(论文复现)引言论文概述核心创新点双向解耦编码器跨域对比损失的构建结构化数据增强项目部署准备工作数据准备生成数据训练&测试训练测试bug修改…

全院级、流程化的医院安全不良事件管理系统源码——等级医院评审工作的辅助工具

前言: 冰山理论”指出“每件严重不良事件背后可能隐藏着10件轻微的不良事件”“存在30件未造成伤害的差错可能存在600件引发意外的异常事件”没有一件不良事件应该被忽视! 一项研究也指出95%医生曾目睹错误的发生,61%的医务人员认为医疗错误…

001 Hadoop安装、Spring整合测试

Hadoop安装、整合测试 文章目录 Hadoop安装、整合测试1.简介1.优点2.组成 2.安装1.安装jdk(如已安装可跳过)2.安装hadoop1.安装2. 修改配置文件core-site.xml3. 修改配置文件hdfs-site.xml4.启动hadoop5.启动yarn6.执行jps查看7.相关端口及配置位置8.访问…

Web开发动画与性能优化

帧率说明 帧率(Frames Per Second, FPS)指的是每秒钟渲染的帧数。通常情况下,60FPS【每秒60帧】被认为是流畅动画的标准。这意味着每帧的渲染时间需要控制在16.67毫秒以内。帧率越高,动画越流畅;反之,帧率…