Pod必备知识: SecurityContexts

简介: Security Context主要用于限制容器的行为,从而保障系统和其他容器的安全。这一块的能力不是 Kubernetes 或者容器 runtime 本身的能力,而是 Kubernetes 和 runtime 通过用户的配置,最后下传到内核里,再通过内核的机制让 SecurityContext 来生效。所以这里介绍的内容,会比较简单或者说比较抽象一点。1.容器级别的Security Context:仅对指定容器生效2.Pod级别的Security Context:对指定Pod中的所有容器生效3.Pod Security Policies(PSP):对集群内所有Pod生效

所属技术领域:

Pod

|名词定义|

Security Context主要用于限制容器的行为,从而保障系统和其他容器的安全。这一块的能力不是 Kubernetes 或者容器 runtime 本身的能力,而是 Kubernetes 和 runtime 通过用户的配置,最后下传到内核里,再通过内核的机制让 SecurityContext 来生效。所以这里介绍的内容,会比较简单或者说比较抽象一点。
1.容器级别的Security Context:仅对指定容器生效
2.Pod级别的Security Context:对指定Pod中的所有容器生效
3.Pod Security Policies(PSP):对集群内所有Pod生效

|技术特点|

 权限和访问控制设置项:
1.Discretionary Access Control:根据用户id和组id来控制文件访问权限
2.SELinux:通过SELinux的策略配置控制用户,进程等对文件等访问控制
3.Privileged:容器是否为特权行为模式
4.Linux Capabilities:给特定进程配置privileged能力
5.AppArmor:控制可执行文件的访问控制权限(读写文件/目录,网络端口读写等)
6.Seccomp:控制进程可以操作的系统调用
7.AllowPrivilegeEscalation:控制一个进程是否能有比其父进程获取更多的权限
最后其实都是落到内核来控制它的一些权限。
图片.png

上图是对 pod 级别和容器级别配置 SecurityContext 的一个例子,如果大家对这些内容有更多的需求,可以根据这些信息去搜索更深入的资料来学习。
 securityContext的设置
kubernetes中有个字段叫securityContext,即安全上下文,它用于定义Pod或Container的权限和访问控制设置。其设置包括:

Discretionary Access Control: 根据用户ID(UID)和组ID(GID)来限制其访问资源(如:文件)的权限
针对pod设置:

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:

runAsUser: 1000
fsGroup: 2000

volumes:

  • name: sec-ctx-vol
    emptyDir: {}
    containers:
  • name: sec-ctx-demo
    image: gcr.io/google-samples/node-hello:1.0
    volumeMounts:

    • name: sec-ctx-vol
      mountPath: /data/demo

    securityContext:
    allowPrivilegeEscalation: false
    针对container设置:

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-2
spec:
securityContext:

runAsUser: 1000

containers:

  • name: sec-ctx-demo-2
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:

    runAsUser: 2000
    allowPrivilegeEscalation: false

    Security Enhanced Linux (SELinux): 给容器指定SELinux labels

...
securityContext:
seLinuxOptions:

level: "s0:c123,c456"

Running as privileged or unprivileged:以privileged或unprivileged权限运行
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-4
spec:
containers:

  • name: sec-ctx-4
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:

    privileged: true

    Linux Capabilities: 给某个特定的进程privileged权限,而不用给root用户所有的privileged权限

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-4
spec:
containers:

  • name: sec-ctx-4
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:

    capabilities:
      add: ["NET_ADMIN", "SYS_TIME"]

    AppArmor: 使用程序文件来限制单个程序的权限

Seccomp: 限制一个进程访问文件描述符的权限

AllowPrivilegeEscalation: 控制一个进程是否能比其父进程获取更多的权限,AllowPrivilegeEscalation的值是bool值,如果一个容器以privileged权限运行或具有CAP_SYS_ADMIN权限,则AllowPrivilegeEscalation的值将总是true。

apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-2
spec:
securityContext:

runAsUser: 1000

containers:

  • name: sec-ctx-demo-2
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:

    runAsUser: 2000
    allowPrivilegeEscalation: false

    注意:要开启容器的privileged权限,需要提前在kube-apiserver和kubelet启动时添加参数--allow-privileged=true,默认已添加。

|资料来源|

技术特点:https://www.cnblogs.com/sunsky303/p/11090540.html

相关文章
|
Windows
Coze开源软件Windows客户端-coze_desk
Coze开源软件Windows客户端-coze_desk
2957 0
|
机器学习/深度学习 自动驾驶 计算机视觉
目标检测落地必备Trick | 结构化知识蒸馏让RetinaNet再涨4个点
目标检测落地必备Trick | 结构化知识蒸馏让RetinaNet再涨4个点
941 0
|
JSON 定位技术 API
腾讯位置 - 逆地址解析(结尾附视频)
腾讯位置 - 逆地址解析(结尾附视频)
2445 0
|
6月前
|
人工智能 自然语言处理 安全
保姆级零门槛|阿里云部署OpenClaw+智谱GLM-5大模型配置,新手10分钟上手(含避坑指南)
2026年,AI智能体技术迎来爆发式迭代,OpenClaw(曾用名Clawdbot、Moltbot)作为轻量化开源AI自动化助手,凭借“自然语言驱动、多工具协同、零编程门槛”的核心优势,成为个人与轻量团队解锁自动化办公、代码开发、多场景任务处理的首选工具。它无需复杂操作,仅需输入口语化指令,就能自动完成文档整理、网页抓取、代码生成、定时任务、跨平台同步等重复性工作,堪称“7×24小时不下线的私人AI助理”,彻底解放双手、提升效率。
2350 4
|
6月前
|
人工智能 IDE 开发工具
OpenClaw(大龙虾)阿里云及本地部署性能飞跃指南:+65.4%提速核心教程揭秘!
2026年,OpenClaw(社区昵称“大龙虾”)凭借65.4%的性能暴涨震撼开源社区。这个由Peter Steinberger在2024年用1小时敲出原型的项目,如今已成长为17.5万星标的开源生态(GitHub增速最快项目之一),彻底打破IDE枷锁,让AI代理接管软件开发生命周期。其性能飙升的核心源于三大底层技术突破,而想要真正解锁这份潜力,正确的部署是第一步。
3712 4
OpenClaw(大龙虾)阿里云及本地部署性能飞跃指南:+65.4%提速核心教程揭秘!
|
6月前
|
人工智能 自然语言处理 API
OpenClaw(Clawdbot)阿里云极简部署+智谱GLM-5接入:从0到1搭建AI助手保姆级教程
OpenClaw(曾用名Clawdbot)是一款轻量化、可扩展的AI智能体执行框架,支持自然语言指令驱动、多模型灵活切换与全场景任务自动化。对于新手而言,阿里云凭借专属应用镜像、一键部署与稳定运行的特性,成为部署OpenClaw的最优选择,无需复杂环境配置,即可快速搭建7×24小时在线的AI服务,并接入智谱GLM-5大模型,实现高效文本处理、长上下文理解与多模态交互。
1808 0
|
6月前
|
人工智能 安全 API
🦞 给"AI龙虾"穿上盔甲:OpenClaw安装风险全解析与防护指南
本文深度剖析2026年爆火AI框架OpenClaw的五大安全风险(权限过高、公网暴露、数据泄露、恶意插件、指令注入),并提供六大可落地防护策略,涵盖最小权限、网络收敛、加密脱敏、插件验真、人工确认与容器化部署,助力用户安全高效使用。
|
6月前
|
人工智能 自然语言处理 Linux
保姆级零门槛教程!OpenClaw(Clawdbot)阿里云/本地部署接入大模型智谱GLM-5指南
OpenClaw(曾用名Clawdbot、Moltbot)作为开源AI智能体工具,核心优势在于可将自然语言指令转化为实际系统操作,涵盖文件管理、终端命令执行、浏览器自动化、多工具集成等功能,摆脱了普通聊天机器人“只说不做”的局限。2026年,智谱GLM-5大模型正式发布,作为GLM系列的第五代核心产品,其凭借千亿级参数、多模态能力、200k超长上下文以及推理提速40%的优势,与OpenClaw协同后,可大幅强化自然语言理解、复杂任务规划与多模态交互能力,让新手也能快速实现办公自动化、开发辅助、多模态处理等场景落地。
4354 5
|
人工智能 Linux 定位技术
使用 Godot 开发游戏的通用流程
使用 Godot 开发游戏的通用流程
|
JavaScript 前端开发 UED
Vue 表情包输入组件的实现代码:支持自定义表情库、快捷键发送和输入框联动的聊天表情解决方案
本文详细介绍了在 Vue 项目中实现一个功能完善、交互友好的表情包输入组件的方法,并提供了具体的应用实例。组件设计包含表情分类展示、响应式布局、与输入框的交互及样式定制等功能。通过核心技术实现,如将表情插入输入框光标位置和点击外部关闭选择器,确保用户体验流畅。同时探讨了性能优化策略,如懒加载和虚拟滚动,以及扩展性方案,如自定义主题和国际化支持。最终,展示了如何在聊天界面中集成该组件,为用户提供丰富的表情输入体验。
1012 8